Apple Pay
Permite a los clientes hacer pagos en forma segura con Apple Pay en su iPhone, iPad o Apple Watch.
La mayoría de los productos y funcionalidades de Stripe admiten Apple Pay. Los usuarios de Stripe pueden aceptar Apple Pay en aplicaciones para iOS en iOS 9 o posterior y en la web con Safari a partir de iOS 10 o macOS Sierra. No se cobran comisiones adicionales por procesar pagos con Apple Pay y las tarifas son las mismas que para las demás transacciones con tarjeta.
Apple Pay está a disposición de los titulares de tarjeta de bancos que lo aceptan en países admitidos. Para obtener más información, consulta la documentación de Apple sobre los bancos participantes.
Flujo de pago
A continuación, se presenta una demostración del flujo de pago de Apple Pay desde la página del proceso de compra:
Using Stripe and Apple Pay versus in-app purchases
Para la venta de bienes tangibles, servicios y otros productos determinados, en tu aplicación se puede aceptar Apple Pay o cualquier otro método de pago admitido por Stripe. Esos pagos se procesan mediante Stripe, y solo tienes que pagar las comisiones de procesamiento que Stripe establece. Sin embargo, para la compra de productos y contenidos digitales y otros artículos determinados, se deben usar las compras dentro de la aplicación de Apple. Esos pagos son procesados por Apple y están sujetos a sus comisiones de transacción.
Para obtener más información sobre qué ventas deben utilizar las compras dentro de la aplicación, consulta las de Apple Pautas de revisión de la App Store.
Aceptar Apple Pay
Stripe ofrece diversos métodos para agregar Apple Pay como método de pago. Para obtener detalles de la integración, selecciona el método que prefieras:
Con el SDK para iOS de Stripe, puedes aceptar pagos con Apple Pay y pagos tradicionales con tarjeta de crédito. Antes de comenzar, tienes que estar inscrito en el Programa de Desarrolladores de Apple. A continuación, sigue estos pasos:
- Configurar Stripe
- Inscribirse para obtener un ID de comerciante Apple
- Crear un nuevo certificado de Apple Pay
- Integrarse con Xcode
- Verificar si se acepta Apple Pay
- Crear la solicitud de pago
- Presentar la hoja de pago
- Enviar el pago a Stripe
Configurar StripeLado del servidorLado del cliente
Primero, necesitas una cuenta de Stripe. Inscríbete ahora.
Lado del servidor
Esta integración necesita puntos de conexión en tu servidor que se comuniquen con la API de Stripe. Usa las bibliotecas oficiales para acceder a la API de Stripe desde tu servidor:
Lado del cliente
The Stripe iOS SDK is open source, fully documented, and compatible with apps supporting iOS 13 or above.
Nota
For details on the latest SDK release and past versions, see the Releases page on GitHub. To receive notifications when a new release is published, watch releases for the repository.
Configura el SDK con tu clave publicable de Stripe al iniciar la aplicación. Esto permite que tu aplicación haga solicitudes a la API de Stripe.
Inscribirse para obtener un ID de comerciante Apple
Obtén un ID de comerciante Apple solicitando un nuevo identificador en el sitio web de desarrolladores de Apple.
Fill out the form with a description and identifier. Your description is for your own records and you can modify it in the future. Stripe recommends using the name of your app as the identifier (for example, merchant.
).
Crear un nuevo certificado de Apple Pay
Crea un certificado para que tu aplicación cifre los datos de pago.
Ve a Configuración de certificados de iOS en el Dashboard, haz clic en Agregar nueva aplicación y sigue la guía.
Descarga un archivo de solicitud de firma de certificado (CSR) para obtener un certificado seguro de Apple que te permita utilizar Apple Pay.
Se debe usar un archivo CSR para emitir exactamente un certificado. Si cambias tu ID de comerciante de Apple, debes ir a la Configuración de certificados de iOS en el Dashboard para obtener una nueva CSR y un nuevo certificado.
Integrarse con Xcode
Agrega la funcionalidad Apple Pay a tu aplicación. En Xcode, abre la configuración del proyecto, selecciona la pestaña Firma y funcionalidades y agrega la funcionalidad Apple Pay. En este paso, quizá se te solicite iniciar sesión en tu cuenta de desarrollador. Selecciona el ID de comerciante que creaste antes, y tu aplicación estará lista para aceptar Apple Pay.
Habilitar la funcionalidad Apple Pay en Xcode
Verificar si se acepta Apple Pay
Nota
La clase PaymentSheet se encargará de hacer el resto.
Antes de mostrar Apple Pay como opción de pago en tu aplicación, determina si el dispositivo del usuario acepta Apple Pay y si tiene una tarjeta añadida en su billetera:
Crear la solicitud de pago
Cuando el usuario toque el botón Apple Pay, llama a StripeAPI paymentRequestWithMerchantIdentifier:country:currency: para crear una PKPaymentRequest.
Luego, configura la PKPaymentRequest
para que se vean el nombre de tu empresa y el total. También puedes recopilar información como los datos de facturación o de envío.
Consulta la documentación de Apple a fin de recibir toda la guía necesaria para personalizar la solicitud de pago.
Presentar la hoja de pago
Crea una instancia STPApplePayContext con la PKPaymentRequest
y úsala para presentar la hoja de Apple Pay:
Enviar el pago a Stripe
Lado del servidor
Crea un punto de conexión que genere un PaymentIntent con un atributo iamount y currency. Decide cuánto cobrar siempre del lado del servidor, un entorno de confianza, no del lado del cliente. Esto impide que clientes malintencionados puedan elegir sus propios precios.
Lado del cliente
Resolución de problemas
Si estás viendo errores de la API de Stripe al intentar crear tokens, lo más probable es que tengas un problema con tu certificado de Apple Pay. Deberás generar un nuevo certificado y subirlo a Stripe, como se describe en esta página. Asegúrate de usar una solicitud de firma de certificado (CSR) obtenida de tu Dashboard y no una que hayas generado tú. Xcode a menudo almacena en caché incorrectamente los certificados antiguos, por lo que además de generar un nuevo certificado, Stripe también recomienda crear un nuevo ID de comerciante de Apple.
Si recibes el error:
No has agregado tu cuenta de comerciante de Apple a Stripe
es probable que tu aplicación esté enviando datos encriptados con un CSR/Certificado anterior (que no sea de Stripe). Asegúrate de que todos los certificados generados por CSR que no sean de Stripe se revoquen en tu ID de comerciante de Apple. Si esto no resuelve el problema, elimina el ID del comerciante en tu cuenta de Apple y vuelve a crearlo. Luego, crea un nuevo certificado basado en la misma CSR (proporcionada por Stripe) que se utilizó anteriormente. No es necesario que cargues este nuevo certificado en Stripe. Cuando termines, activa y desactiva las Credenciales de Apple Pay en tu aplicación para asegurarte de que se actualicen correctamente.
App Clips
El módulo StripeApplePay
es un SDK simplificado de Stripe que está optimizado para usarlo en un App Clip. Sigue los pasos descritos más arriba para agregar el módulo StripeApplePay
al destino del App Clip.
Nota
El módulo StripeApplePay
solo se admite en Swift. Los usuarios de Objective-C deben importar STPApplePayContext
desde el módulo Stripe
.
Migración desde STPApplePayContext
Si ya eres usuario de STPApplePayContext
y quieres cambiar al SDK simplificado de Apple Pay, sigue estos pasos:
- En las dependencias del destino del App Clip, reemplaza el módulo
Stripe
por elStripeApplePay
. - En el código, reemplaza
import Stripe
porimport StripeApplePay
. - Reemplaza el uso de
STPApplePayContextDelegate
con el nuevo protocoloApplePayContextDelegate
. - Modifica tu implementación de
applePayContext(_
de forma que acepte:didCreatePaymentMethod:completion:) StripeAPI.
.PaymentMethod - Cambia tu implementación de
applePayContext(_
para aceptar un:didCompleteWith:error:) STPApplePayContext.
.PaymentStatus
import Stripe class CheckoutViewController: UIViewController, STPApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: STPPaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPPaymentStatus, error: Error?) { // ... } }
import StripeApplePay class CheckoutViewController: UIViewController, ApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { // ... } }
Pagos recurrentes
En iOS 16 o una versión posterior, puedes adoptar tokens de comercio si estableces las propiedades recurringPaymentRequest
o automaticReloadPaymentRequest
en PKPaymentRequest
.
Para obtener más información sobre cómo usar los pagos recurrentes con Apple Pay, consulta Documentación de PassKit de Apple.
Seguimiento de pedidos
Para adoptar el seguimiento de pedidos en iOS 16 o posterior, implementa la función applePayContext(context:willCompleteWithResult:handler:) en tu ApplePayContextDelegate
. Stripe llama a tu implementación después de que se complete el pago, pero antes de que iOS descarte la hoja de Apple Pay.
En tu implementación:
- Obtén los detalles del pedido de su servidor para el pedido finalizado.
- Agrega estos datos al PKPaymentAuthorizationResult proporcionado.
- Llama al controlador de finalización proporcionado en la cola principal.
Para obtener más información sobre el seguimiento de pedidos, consulta la Documentación sobre pedidos de billetera de Apple.
Cómo probar Apple Pay
Los datos de las tarjetas de prueba de Stripe no se pueden guardar en la cartera para iOS. En vez de eso, Stripe reconoce si estás usando tus claves API de prueba y devuelve un token de tarjeta de prueba correcto que puedes usar. Esto te permite hacer pruebas de pagos con tarjeta en modo activo sin cobrarle a la tarjeta.