Pagos con tarjeta sin autenticación bancaria
Esta integración es compatible con empresas que solo aceptan tarjetas de EE. UU. y Canadá. Es más sencilla a priori, pero no permite expandirse para aceptar una base de clientes internacional.
¿Cómo funciona esta integración?
¿En qué se diferencia de la integración global?
Las empresas internacionales o en crecimiento deben usar la integración global de Stripe para poder aceptar solicitudes bancarias de autenticación en dos pasos y permitir que los clientes paguen con otros métodos de pago.
Crea un formulario de compraLado del cliente
Elements forma parte de Stripe.js y proporciona los componentes de interfaz de usuario insertables para recopilar datos de tarjeta de clientes. Stripe aloja estos componentes y los coloca en tu formulario de pago como iframe para que los datos de tarjeta no entren en contacto con tu código.
Configura StripeLado del servidor
Usa una biblioteca oficial para hacer solicitudes a la API de Stripe desde tu aplicación:
Efectúa un pagoLado del servidor
Configura un punto de conexión en tu servidor para recibir la solicitud del cliente.
Stripe usa un objeto PaymentIntent para representar tu intención de cobrar a un cliente, y hace el seguimiento de los intentos de cobro y de los cambios en el estado del pago a lo largo del proceso.
Decide siempre cuánto cobrar del lado del servidor, un entorno de confianza, y no del lado del cliente. Esto impide que clientes malintencionados puedan elegir sus propios precios.
Crea un punto de conexión HTTP para responder a la solicitud AJAX del paso 1. En ese punto de conexión, debes decidir cuánto le cobrarás al cliente. Para crear un pago, crea un PaymentIntent usando el ID del PaymentMethod del paso 1 con el siguiente código:
Advertencia
Si defines error_on_requires_action como true
a la hora de confirmar el pago, Stripe genera automáticamente un error en el pago si se exige al usuario la autenticación de dos factores.
Respuesta de la API Payment Intents
Cuando efectúas un pago con la API, la respuesta incluye el estado del PaymentIntent. Si el pago se ha realizado correctamente, el estado será succeeded
.
{ "id": "pi_0FdpcX589O8KAxCGR6tGNyWj", "object": "payment_intent", "amount": 1099, "charges": { "object": "list", "data": [ { "id": "ch_GA9w4aF29fYajT", "object": "charge", "amount": 1099, "refunded": false, "status": "succeeded", } ] }, "client_secret": "pi_0FdpcX589O8KAxCGR6tGNyWj_secret_e00tjcVrSv2tjjufYqPNZBKZc", "currency": "usd", "last_payment_error": null, "status": "succeeded", }
Si el pago se ha rechazado, la respuesta incluye el código de error y el mensaje de error. A continuación, encontrás un ejemplo de un pago fallido porque para la tarjeta se exigía la autenticación de dos factores.
{ "error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://stripe.com/docs/error-codes/authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "payment_intent": { "id": "pi_1G8JtxDpqHItWkFAnB32FhtI", "object": "payment_intent", "amount": 1099, "status": "requires_payment_method", "last_payment_error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://stripe.com/docs/error-codes/authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "type": "card_error" }, }, "type": "card_error" } }
Prueba la integración
Dispones de varias tarjetas de prueba que puedes usar en modo de prueba para asegurarte de que la integración esté lista. Úsalas con cualquier CVC, código postal y fecha de caducidad futura.
Número | Descripción |
---|---|
La transacción se realiza correctamente y el pago se procesa de inmediato. | |
Siempre da error con un código de rechazo insufficient_funds . | |
Requiere autenticación, que en esta integración fallará con el código de rechazo authentication_not_handled . |
Consulta la lista completa de tarjetas de prueba.
Actualiza tu integración para gestionar la autenticación de tarjetas
¡Enhorabuena! Has completado una integración para pagos básicos con tarjeta. Ten en cuenta que esta integración rechaza las tarjetas que exigen autenticación durante el pago.
Si empiezas a ver en el Dashboard pagos que aparecen como Failed
, es hora de actualizar tu integración. La integración global de Stripe gestiona estos pagos en lugar de rechazarlos automáticamente.