Acepta un pago de Afterpay o Clearpay
Precaución
Stripe automatically presents your customers payment method options by evaluating their currency, payment method restrictions, and other parameters. We recommend that you configure your payment methods from the Stripe Dashboard using the instructions in Accept a payment.
Si quieres seguir configurando manualmente los métodos de pago que tus clientes verán en Checkout, usa esta guía (por ejemplo, para aceptar pagos en modo suscripción). De lo contrario, mígralos al Dashboard.
Afterpay es un método de pago de uso único y de notificación inmediata que requiere que el cliente autentique su pago. Se redirige a los clientes al sitio web de Afterpay, donde aceptan las condiciones del plan de pago en cuotas. Cuando el cliente acepta las condiciones, Afterpay se asegura de que los fondos estén disponibles para el cliente y transfiere los fondos a tu cuenta de Stripe. El cliente paga a Afterpay directamente a lo largo del tiempo.
Nota
Before you start the integration, make sure your account is eligible for Afterpay by navigating to your Payment methods settings.
Determina la compatibilidad
Una sesión de Checkout debe cumplir con todas las condiciones para aceptar pagos con Afterpay:
- Solo puedes utilizar partidas puntuales (no se aceptan planes de suscripción recurrentes).
- Debes expresar los Prices en tu divisa nacional.
- Deben proporcionarse las direcciones de envío.
Aceptar un pago
Nota
This guide builds on the foundational accept a payment Checkout integration.
Utiliza esta guía para saber cómo activar Afterpay: muestra las diferencias entre aceptar un pago con tarjeta y utilizar Afterpay.
Habilitar Afterpay como método de pago
Al crear una nueva sesión de Checkout, debes:
- Añadir
afterpay_clearpay
a la lista depayment_method_types
. - Asegurarte de que todos tus
line_items
usen la divisa de tu país. - Para recopilar las direcciones de envío, añadir tu país a
shipping_address_collection[allowed_countries]
. Si no recopilas las direcciones de envío con Checkout, proporciona la dirección de envío conpayment_intent_data[shipping]
.
Stripe::Checkout::Session.create({ mode: 'payment', payment_method_types: ['card'], payment_method_types: ['card', 'afterpay_clearpay'], line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, # Make sure the total amount fits within Afterpay transaction amount limits: # https://stripe.com/docs/payments/afterpay-clearpay#collection-schedule unit_amount: 2000, }, quantity: 1, }], shipping_address_collection: { # Specify which shipping countries Checkout should provide as options for shipping locations allowed_countries: ['AU', 'CA', 'GB', 'NZ', 'US'], }, # If you already have the shipping address, provide it in payment_intent_data: # payment_intent_data: { # shipping: { # name: 'Jenny Rosen', # address: { # line1: '1234 Main Street', # city: 'San Francisco', # state: 'CA', # country: 'US', # postal_code: '94111', # }, # }, # }, success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', })
Completa tus pedidos
Utiliza un método como los webhooks para gestionar el cumplimiento del pedido, en lugar de esperar a que tu cliente vuelva a la página de estado del pago.
Los siguientes eventos se envían cuando el estado del pago cambia:
Nombre del evento | Descripción | Próximos pasos |
---|---|---|
checkout.session.completed | El cliente ha autorizado correctamente el pago al enviar el formulario del proceso de finalización de compra. | Esperar hasta asegurarte de si el pago se ha realizado correctamente o no. |
payment_intent.succeeded | El pago del cliente se ha efectuado satisfactoriamente. El PaymentIntent pasa a succeeded . | Suministrar los bienes o servicios que el cliente ha comprado. |
payment_intent.payment_failed | Se ha rechazado el pago del cliente o ha fallado por alguna otra razón. El PaymentIntent vuelve al estado requires_payment_method . | Enviar un correo electrónico al cliente para pedirle que haga un nuevo pedido. |
Obtén más información sobre cómo completar pedidos.
Prueba tu integración
Al probar tu integración de Checkout, selecciona Afterpay como método de pago y haz clic en el botón Pagar.
Para probar tu integración de Afterpay con las claves de la API en modo de prueba, consulta la página de redireccionamiento. Puedes probar el caso de pago satisfactorio autenticando el pago en la página de redireccionamiento. El PaymentIntent pasará de requires_action
a succeeded
.
Para probar el caso en el que el usuario no pueda autenticarse, utiliza las claves de la API en modo de prueba y consulta la página de redireccionamiento. En la página de redireccionamiento, haz clic en Error en el pago en modo de prueba. El PaymentIntent pasará de requires_action
a requires_payment_method
.
Para la captura manual de PaymentIntents en modo de prueba, el PaymentIntent no capturado vencerá automáticamente 10 minutos después de la autorización satisfactoria.
Errores en los pagos
Afterpay tiene en cuenta varios factores a la hora de decidir si acepta o rechaza una transacción (por ejemplo, el tiempo que el comprador lleva utilizando Afterpay, el importe pendiente de pago del cliente, el valor del pedido actual).
Siempre debes presentar las opciones de pago adicionales como card
en el flujo del proceso de compra, ya que los pagos con Afterpay tiene una tasa superior de rechazos que muchos métodos de pago. En estos casos, el PaymentMethod se separa y el estado del objeto PaymentIntent pasa automáticamente a requires_payment_method
.
Para un PaymentIntent de Afterpay con un estado de requires_action
, los clientes deben completar el pago dentro de las 3 horas posteriores a redirigirlos al sitio de Afterpay (esto no se aplica a los pagos rechazados). Si no realizan ninguna acción en un plazo de 3 horas, el PaymentMethod se desprende y el estado del objeto para el PaymentIntent pasa automáticamente a requires_payment_method
.
En estos casos, informa a tus clientes que deben intentarlo de nuevo con una opción de pago diferente de tu flujo de proceso de compra.
Códigos de error
Estos son algunos códigos de error comunes y las correspondientes acciones recomendadas:
Código de error | Acción recomendada |
---|---|
invalid_amount_too_small | Introduce un importe dentro de los límites de transacciones predeterminados de Afterpay para el país. |
invalid_amount_too_large | Introduce un importe dentro de los límites de transacciones predeterminados de Afterpay para el país. |
payment_intent_invalid_currency | Introduce la divisa correspondiente. Afterpay solo admite transacciones nacionales. |
missing_required_parameter | Lee el mensaje de error para obtener más información sobre el parámetro necesario. |
nonexistent_country | Introduce un código ISO de dos letras para el país para la propiedad country en los datos de envío y de facturación. |
payment_intent_redirect_confirmation_without_return_url | Al confirmar un PaymentIntent con Afterpay, proporciona una return_url . |