Ir a contenido
Crea una cuenta
o
Inicia sesión
Logotipo de Stripe Docs
/
Pregúntale a la IA
Crear una cuenta
Iniciar sesión
Empieza ahora
Pagos
Automatización contable
Plataformas y marketplaces
Gestión del dinero
Herramientas para desarrolladores
Empieza ahora
Pagos
Automatización contable
Empieza ahora
Pagos
Automatización contable
Plataformas y marketplaces
Gestión del dinero
Resumen
Acerca de Stripe Payments
Actualiza tu integración
Análisis de pagos
Pagos electrónicos
ResumenEncuentra tu caso de usoPagos administrados
Usa Payment Links
Crea una página del proceso de compra
Desarrolla una integración avanzada
Desarrolla una integración en la aplicación
Métodos de pago
Agrega métodos de pago
    Resumen
    Opciones de integración de métodos de pago
    Gestiona los métodos de pago predeterminados en el Dashboard
    Tipos de método de pago
    Tarjetas
    Débitos bancarios
    Redireccionamientos bancarios
    Transferencias bancarias
    Transferencias de crédito (API Sources)
    Compra ahora, paga después
    Pagos en tiempo real
    Vales
    Billeteras
      Alipay
      Amazon Pay
      Apple Pay
        Prácticas recomendadas
        Cartes Bancaires con Apple Pay
        Transacciones recurrentes con Apple Pay
        Tokens de comerciante de Apple Pay
        Transferencia de responsabilidad, disputas y reembolsos de Apple Pay
      Cash App Pay
      Google Pay
      GrabPay
      Link
      MB WAY
      MobilePay
      PayPal
      PayPay
      Revolut Pay
      Satispay
      Secure Remote Commerce
      Vipps
      WeChat Pay
    Habilita métodos de pago locales por país
    Métodos de pago personalizados
Gestiona los métodos de pago
Finalización de compra más rápida con Link
Interfaces de pago
Payment Links
Checkout
Elements para la web
Elements en la aplicación
Escenarios de pago
Flujos de pago personalizados
Capacidad adquirente flexible
Orquestación
Pagos en persona
Terminal
Otros productos de Stripe
Financial Connections
Criptomonedas
Climate
InicioPagosAdd payment methodsWallets

Apple Pay

Permite a los clientes hacer pagos en forma segura con Apple Pay en su iPhone, iPad o Apple Watch.

Copiar página

Dispositivos compatibles

Consulta la documentación sobre compatibilidad de Apple para saber cuáles con los dispositivos compatibles con Apple Pay.

Apple Pay es compatible con la mayoría de los productos y funciones de Stripe. Los usuarios de Stripe pueden aceptar Apple Pay en aplicaciones iOS en iOS 9 y versiones posteriores, y en la web en Safari a partir de iOS 10 o macOS Sierra. No hay comisiones adicionales por procesar pagos con Apple Pay, y las tarifas son las mismas que para otras 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.

  • Ubicaciones de los clientes

    En todo el mundo, excepto India

  • Moneda de pago

    Ver monedas de pago aceptadas

  • Confirmación del pago

    Iniciada por el cliente

  • Familia de métodos de pago

    Cartera

  • Pagos recurrentes

    Sí (excepto México)

  • Plazo de transferencia

    Se aplica el plazo de transferencia estándar

  • Soporte de Connect

    Si

  • Soporte para disputas

    Sí

  • Compatibilidad de la captura manual

    Si

  • Reembolsos/reembolsos parciales

    Sí/Sí

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:

Animación de flujo de pagos de Apple Pay que muestra la página de confirmación de compra de Stripe, el botón de Apple Pay y el cuadro de diálogo de confirmación en modo de prueba.

Usar Stripe y Apple Pay frente a comprar en la aplicación

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:

  1. Configurar Stripe
  2. Inscribirse para obtener un ID de comerciante Apple
  3. Crear un nuevo certificado de Apple Pay
  4. Integrarse con Xcode
  5. Verificar si se acepta Apple Pay
  6. Crear la solicitud de pago
  7. Presentar la hoja de pago
  8. Enviar el pago a Stripe

Configurar Stripe
Lado del servidor
Lado 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:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Lado del cliente

The Stripe iOS SDK is open source, fully documented, and compatible with apps supporting iOS 13 or above.

Para instalar el SDK, sigue estos pasos:

  1. In Xcode, select File > Add Package Dependencies… and enter https://github.com/stripe/stripe-ios-spm as the repository URL.
  2. Selecciona el número de versión más reciente en nuestra página de versiones.
  3. Add the StripeApplePay product to the target of your app.

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.

AppDelegate.swift
Swift
import UIKit import StripeApplePay @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { StripeAPI.defaultPublishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
// do any other necessary launch configuration return true } }

Nota

Use your test keys while you test and develop, and your live mode keys when you publish your app.

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.

Completa el formulario con una descripción y el identificador. La descripción es para tus registros y se puede modificar en el futuro. Stripe recomienda usar el nombre de tu aplicación como identificador (por ejemplo, merchant.com.{{YOUR_APP_NAME}}).

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:

CheckoutViewController.swift
Swift
import StripeApplePay import PassKit class CheckoutViewController: UIViewController, ApplePayContextDelegate { let applePayButton: PKPaymentButton = PKPaymentButton(paymentButtonType: .plain, paymentButtonStyle: .black) override func viewDidLoad() { super.viewDidLoad() // Only offer Apple Pay if the customer can pay with it applePayButton.isHidden = !StripeAPI.deviceSupportsApplePay() applePayButton.addTarget(self, action: #selector(handleApplePayButtonTapped), for: .touchUpInside) } // ...continued in next step }

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.

CheckoutViewController.swift
Swift
func handleApplePayButtonTapped() { let merchantIdentifier = "merchant.com.your_app_name" let paymentRequest = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: "US", currency: "USD") // Configure the line items on the payment request paymentRequest.paymentSummaryItems = [ // The final line should represent your company; // it'll be prepended with the word "Pay" (that is, "Pay iHats, Inc $50") PKPaymentSummaryItem(label: "iHats, Inc", amount: 50.00), ] // ...continued in next step }

Presentar la hoja de pago

Crea una instancia STPApplePayContext con la PKPaymentRequest y úsala para presentar la hoja de Apple Pay:

CheckoutViewController.swift
Swift
func handleApplePayButtonTapped() { // ...continued from previous step // Initialize an STPApplePayContext instance if let applePayContext = STPApplePayContext(paymentRequest: paymentRequest, delegate: self) { // Present Apple Pay payment sheet applePayContext.presentApplePay(on: self) } else { // There is a problem with your Apple Pay configuration } }

Apple requiere que los gestos del usuario activen el cuadro de diálogo de Apple Pay (por ejemplo, hacer clic en un botón o interactuar con el formulario). Asegúrate de que la programación cumpla con los siguientes aspectos:

  • Invoca la hoja de pago directamente con un evento de activación de usuario.
  • Agrega la programación para la hoja de pago en la parte superior del controlador de eventos de gestos del usuario o cerca de él, antes de cualquier programación asincrónica o de ejecución prolongada.
  • Establece un límite de tiempo razonable para llamar a confirmPayment después de que el usuario haga el gesto.

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.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd"

Lado del cliente

Implementa applePayContext(_:didCreatePaymentMethod:completion:) para llamar al bloque de finalización con el secreto de cliente del PaymentIntent recuperado del punto de conexión creado antes.

Después de llamar al bloque de finalización, STPApplePayContext completa el pago, descarta la hoja de Apple Pay y llama a applePayContext(_:didCompleteWithStatus:error:) con el estado del pago. Aplica este método para mostrarle un recibo a tu cliente.

CheckoutViewController.swift
Swift
extension CheckoutViewController { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { let clientSecret = ... // Retrieve the PaymentIntent client secret from your backend (see Server-side step above) // Call the completion block with the client secret or an error completion(clientSecret, error) } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { switch status { case .success: // Payment succeeded, show a receipt view break case .error: // Payment failed, show the error break case .userCancellation: // User canceled the payment break @unknown default: fatalError() } } }

Por último, gestiona los eventos posteriores al pago para ejecutar acciones como enviar un correo electrónico de confirmación del pedido a tu cliente, registrar la venta en una base de datos o iniciar el flujo de envío.

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:

  1. En las dependencias del destino del App Clip, reemplaza el módulo Stripe por el StripeApplePay.
  2. En el código, reemplaza import Stripe por import StripeApplePay.
  3. Reemplaza el uso de STPApplePayContextDelegate con el nuevo protocolo ApplePayContextDelegate.
  4. Modifica tu implementación de applePayContext(_:didCreatePaymentMethod:completion:) de forma que acepte StripeAPI.PaymentMethod.
  5. Cambia tu implementación de applePayContext(_:didCompleteWith:error:) para aceptar un STPApplePayContext.PaymentStatus.
Antes
Después
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.

CheckoutViewController.swift
Swift
extension CheckoutViewController { func handleApplePayButtonTapped() { let request = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: "US", currency: "USD") let billing = PKRecurringPaymentSummaryItem(label: "My Subscription", amount: NSDecimalNumber(string: "59.99")) billing.startDate = Date() billing.endDate = Date().addingTimeInterval(60 * 60 * 24 * 365) billing.intervalUnit = .month request.recurringPaymentRequest = PKRecurringPaymentRequest(paymentDescription: "Recurring", regularBilling: billing, managementURL: URL(string: "https://my-backend.example.com/customer-portal")!) request.recurringPaymentRequest?.billingAgreement = "You'll be billed $59.99 every month for the next 12 months. To cancel at any time, go to Account and click 'Cancel Membership.'" request.paymentSummaryItems = [billing] } }

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:

  1. Obtén los detalles del pedido de su servidor para el pedido finalizado.
  2. Agrega estos datos al PKPaymentAuthorizationResult proporcionado.
  3. 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.

CheckoutViewController.swift
Swift
extension CheckoutViewController { func applePayContext(_ context: STPApplePayContext, willCompleteWithResult authorizationResult: PKPaymentAuthorizationResult, handler: @escaping (PKPaymentAuthorizationResult) -> Void) { // Fetch the order details from your service MyAPIClient.shared.fetchOrderDetails(orderID: myOrderID) { myOrderDetails authorizationResult.orderDetails = PKPaymentOrderDetails( orderTypeIdentifier: myOrderDetails.orderTypeIdentifier, // "com.myapp.order" orderIdentifier: myOrderDetails.orderIdentifier, // "ABC123-AAAA-1111" webServiceURL: myOrderDetails.webServiceURL, // "https://my-backend.example.com/apple-order-tracking-backend" authenticationToken: myOrderDetails.authenticationToken) // "abc123" // Call the handler block on the main queue with your modified PKPaymentAuthorizationResult handler(authorizationResult) } } }

Prueba Apple Pay

Para probar Apple Pay, debes usar un número de tarjeta de crédito real y tus claves de API de prueba. Stripe reconoce que estás en modo de prueba y te devuelve un token de tarjeta de prueba correcto para que puedas realizar pagos de prueba con una tarjeta activa sin realizarle cargos.

No puedes guardar tarjetas de prueba de Stripe ni tarjetas de prueba de Apple Pay en carteras de Apple Pay para probar esta aplicación.

Consulta también

  • Integración para iOS
  • Apple Pay en la web
  • Prácticas recomendadas de Apple Pay
¿Te fue útil esta página?
SíNo
¿Necesitas ayuda? Ponte en contacto con soporte.
Únete a nuestro programa de acceso anticipado.
Echa un vistazo a nuestro registro de cambios.
¿Tienes alguna pregunta? Contacto.
¿LLM? Lee llms.txt.
Con tecnología de Markdoc