Apple Pay en Xamarin.iOS

En esta guía se explora la configuración del entorno de Xamarin.iOS para su uso con Apple Pay para pagar bienes físicos, como comida, entretenimiento y subscripciones a través de la aplicación. Incluye información sobre los identificadores, certificados y derechos necesarios.

Apple Pay se introdujo junto con iOS 8, lo que permite a los usuarios pagar por bienes físicos como comida, entretenimiento y pertenencias a través de sus dispositivos iOS. Está disponible en iPhone 6 y iPhone 6 Plus, y también se puede emparejar con Apple Watch para compras en la tienda. Cuando se usa en un iPhone, usa Touch ID como una manera de confirmar y autorizar transacciones a la tarjeta de crédito o débito de un usuario.

Requisitos

Apple Pay solo está disponible en iOS 8 y versiones posteriores y, por tanto, requiere un mínimo de Xcode 6.

Los siguientes elementos también son necesarios para integrar Apple Pay en la aplicación:

  • Plataforma de procesador de pagos
  • Identificador de comerciante
  • Un certificado de Apple Pay
  • Derechos de Apple Pay

En este documento se examinarán estos elementos con más detalle.

Diferencias entre Apple Pay e IAP

La principal diferencia entre Apple Pay y la Compra desde la aplicación (IAP) radica en los productos que se venden. Los Productos físicos se venden a través de Apple Pay; comida, alojamiento y entretenimiento físico (como entradas de cine) son todos ejemplos de esto. Por el contrario, IAP vende productos virtuales, como contenido premium o adicional, y suscripciones (por ejemplo, meses adicionales de un servicio de streaming o vidas extra en un juego).

Los marcos utilizados también son una diferencia clave; PassKit se usa para Apple Pay, mientras que StoreKit proporciona la API de marco para IAP.

Con Apple Pay, Apple afirma que "[No] cobra a los usuarios, comerciantes o desarrolladores que usen Apple Pay para Pagos". En comparación, IAP tiene un cargo del 30 % por cada transacción. Además, con Apple Pay, la transacción no pasa por Apple en absoluto, sino que pasa por una plataforma de pago.

Uso de una plataforma de procesador de pagos

Una de las partes fundamentales de Apple Pay es el procesamiento de pagos. Aunque es posible hacerlo usted mismo, requiere un conocimiento significativo de la criptografía, como se detalla en la Guía de procesamiento de pagos de Apple. Por otro lado, las plataformas de procesamiento de pagos controlan estas operaciones, lo que le permite concentrarse en compilar la aplicación.

Entre las dos opciones se incluyen:

Aprovisionamiento para Apple Pay

La configuración de una aplicación para usar Apple Pay requiere la configuración en el Portal para desarrolladores de Apple y dentro de la aplicación. Hay una serie de pasos que deben seguirse para aprovisionar correctamente la aplicación para Apple Pay:

  1. Cree un identificador de comerciante:
    • Siga los pasos del procedimiento descrito aquí
  2. Cree un identificador de aplicación con la capacidad de Apple Pay y agregue el identificador de comerciante a este:
    • Siga los pasos del procedimiento descrito aquí
  3. Genere un certificado para el identificador de comerciante:
    • Siga los pasos del procedimiento descrito aquí
  4. Genere un perfil de aprovisionamiento con el identificador de aplicación recién creado:
    • Siga los pasos del procedimiento descrito aquí
  5. Agregue derechos de Apple Pay:
    • Seleccione el derecho de Apple Pay como se detalla aquí o agregue manualmente el par clave-valor al archivo desde aquí

Trabajar con Apple Pay

Apple ha realizado varias mejoras en Apple Pay en iOS 10 que permiten al usuario realizar pagos seguros de sitios web y a través de la interacción con Siri y Maps.

Con iOS 10, se han agregado varias API nuevas que funcionan con iOS y watchOS para admitir redes de pago dinámicas y un nuevo entorno de prueba de espacio aislado.

Integración del sitio web de Apple Pay

Nuevo en iOS 10, el desarrollador puede incorporar Apple Pay directamente a sus sitios web mediante ApplePay JS. Los usuarios que exploran el sitio web con Safari en iOS o macOS pueden realizar pagos con Apple Pay validando la transacción en su iPhone o Apple Watch. Para obtener más información, consulte Referencia del marco JP de ApplePay.

Mejoras del marco de PassKit

En iOS 10, el marco PassKit se ha ampliado para admitir Apple Pay fuera de UIKit y para permitir que los emisores de tarjetas presenten sus propias tarjetas desde sus aplicaciones.

Compatibilidad con Apple Pay fuera de UIKit

Mediante PKPaymentAuthorizationController y PKPaymentAuthorixationControllerDelegate, una aplicación puede admitir la misma funcionalidad proporcionada por PKPaymentAuthorizationViewController sin usar UIKit. Aunque esta nueva API es necesaria para admitir Apple Pay en Apple Watch (y también en intenciones específicas), es opcional en otras situaciones (como las aplicaciones existentes). Sin embargo, Apple sugiere pasar a la nueva API tan pronto como sea posible para proporcionar soporte amplio con Apple Pay en todas las aplicaciones del desarrollador con una sola base de código. Para obtener más información acerca de las intenciones y la integración de Siri, consulte nuestra documentación Introducción a SiriKit.

Presentación de tarjetas de emisor desde aplicaciones

Con iOS 10, se han agregado nuevas características al marco PassKit que permiten a los emisores de tarjetas presentar sus tarjetas de pago desde sus propias aplicaciones. El desarrollador puede agregar un UIButton PKPaymentButtonTypeInStore a la interfaz de usuario de la aplicación que mostrará un botón Apple Pay para una tarjeta.

El método PresentPaymentPass de la clase PKPassLibrary también se puede usar para mostrar la tarjeta mediante programación.

Nuevo soporte de red de pago

Nueva en iOS 10, una aplicación puede admitir automáticamente una nueva red de pago cuando esté disponible sin que el desarrollador tenga que modificar, volver a compilar la aplicación y volver a enviarla a App Store.

El nuevo método AvailableNetworks de la clase PKPaymentNetwork permite a una aplicación detectar las redes disponibles en el dispositivo del usuario en tiempo de ejecución. Además, la propiedad SupportedNetworks se ha expandido para tomar el nombre del proveedor de pagos como argumento. Con estos métodos, una aplicación puede admitir automáticamente cualquier red que admita el proveedor de pagos.

Para obtener más información, consulte nuestra Configuración de Apple Pay y la Guía de Apple Pay de Apple.

Nuevo entorno de pruebas

Con iOS 10, Apple introdujo un nuevo entorno de prueba que permite al desarrollador aprovisionar tarjetas de pago de prueba directamente en un dispositivo iOS. A continuación, este nuevo entorno de prueba devuelve datos de pago de prueba cifrados a la aplicación.

Para habilitar el nuevo entorno de prueba, haga lo siguiente:

  1. Crear una nueva cuenta de iCloud de prueba en iTunes Connect.
  2. Inicie sesión en el dispositivo iOS con la nueva cuenta de prueba.
  3. Establezca la región deseada para probar la aplicación.
  4. Use una de las tarjetas de pago de prueba de la Guía de Apple Pay para realizar pagos.

Importante

Al cambiar las cuentas de iCloud, el dispositivo cambiará automáticamente al nuevo entorno de prueba. Sin embargo, Apple todavía requiere que la aplicación se pruebe con tarjetas reales en un entorno de producción antes de enviar a iTunes App Store.

Resumen

En este artículo, hemos explorado los diferentes elementos necesarios para usar Apple Pay dentro de la aplicación. Hemos visto cómo crear un identificador de comerciante y cómo se usa en Entitlements.plist, que debe modificarse manualmente.