Pagos con tarjeta sin autenticación bancaria
Crea una integración más simple con limitaciones regionales.
This integration supports businesses accepting only US and Canadian cards. It’s simpler up front, but does not scale to support a global customer base.
¿Cómo funciona esta integración?
¿En qué se diferencia de la integración global?
Growing or global businesses should use Stripe’s global integration to support bank requests for two-factor authentication and allow customers to pay with more payment methods.
Crear un formulario de compraLado del cliente
Elements, que forma parte de Stripe.js, proporciona componentes de interfaz de usuario para recopilar información de las tarjetas de los clientes. Stripe los aloja y los coloca en tu formulario de pago como un iframe para que los datos de la tarjeta de tu cliente nunca toquen tu código.
Configurar StripeLado del servidor
Usa una biblioteca oficial para hacer solicitudes a la API de Stripe desde tu aplicación:
Efectuar 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 en todo el proceso.
Decide cuánto cobrar siempre del lado del servidor, un entorno de confianza, no del lado del cliente. Esto impide que clientes maliciosos 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
If you set error_on_requires_action to true
when confirming a payment, Stripe automatically fails the payment if it requires two-factor authentication from the user.
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 realizó 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 es rechazado, la respuesta incluye el código de error y el mensaje de error. Veamos un ejemplo de un pago fallido porque se exigía la autenticación de dos factores para la tarjeta.
{ "error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/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://docs.stripe.com/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" } }
Probar la integración
Stripe proporciona varias tarjetas de prueba que puedes usar en un entorno de prueba para asegurarte de que esta integración esté lista. Úselas con cualquier CVC, código postal y fecha de vencimiento futura.
Número | Descripción |
---|---|
Se efectúa correctamente la transacción y se procesa el pago de inmediato. | |
Siempre da error con un código de rechazo insufficient_ . | |
Requiere autenticación, que en esta integración fallará con el código de rechazo authentication_ . |
Consulta la lista completa de tarjetas de prueba.
Actualiza tu integración para gestionar la autenticación de tarjetas
¡Felicitaciones! 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 figuran como Failed
, es hora de actualizar la integración. La integración global de Stripe gestiona estos pagos en lugar de rechazarlos automáticamente.