Integración Redirect
La integración Redirect es un proceso simple y seguro que utiliza la página de pago en el lado del pasarela de pago. La principal ventaja de este método de integración es que no necesitas recopilar ni procesar datos de tarjetas en tu sitio web. La API se utiliza mínimamente en este caso, por lo que este método no requiere mucha experiencia en desarrollo.
Primero, debes suscribirte a los siguientes webhooks (consulta Webhooks para más detalles):
-
session.created- ocurre cuando se crea una sesión. -
session.completed- ocurre cuando una sesión se ha completado exitosamente. -
session.expired- ocurre cuando una sesión expira.
Opcionalmente, también puedes suscribirte a los webhooks listados a continuación para obtener detalles del pago a través de estos webhooks:
-
payment.created- ocurre cuando se crea un pago. -
payment.failed- ocurre cuando falla un intento de pago. -
payment.canceled- ocurre cuando un pago es rechazado. -
payment.amountCapturableUpdated- ocurre cuando los fondos para un pago de dos pasos son retenidos exitosamente. -
payment.funded- ocurre cuando los fondos para un pago de dos pasos son capturados exitosamente. -
payment.succeeded- ocurre cuando un pago es exitoso (esto se refiere a un pago de un paso).
("/sessions" request) activate PG PG -->> OS: id, paymentUrl, "session.created"
webhook OS -->> C: Redirect to the payment URL C ->> PG: Enter card data PG -->> PG: Process payment PG -->> C: Redirect to the success URL deactivate C PG -->> OS: "session.completed"
webhook deactivate OS deactivate PG
Un cliente selecciona un producto en la tienda en línea, y luego hace clic en Buy.
-
La tienda en línea solicita la creación de sesión enviando una petición POST
/sessionsa la pasarela de pago. La petición debe contener los siguientes parámetros:-
amount- el monto del pago en unidades menores de moneda. Por ejemplo, para especificar $100, usaamount=10000ycurrency=USD(10000 centavos). -
currency- código de la moneda de pago, según ISO 4217. -
successUrl- la dirección a la cual el cliente será redirigido después del pago exitoso en el Paso 7. -
failureUrl- la dirección a la cual el cliente será redirigido en el Paso 7, si el pago falla.
Ejemplo de petición:
curl -X POST "https://dev.bpcbt.com/api2/sessions" \ -H "X-Api-Key: 6HUXQFbeomV1zf5i8cgm5W8KfncENVEa5uh8RngB" \ -H "X-Version: 2023-10-31" \ -H "Content-Type: application/json" \ -d '{ "amount": 10000, "currency": "EUR", "successUrl": "https://mybestmerchantreturnurl.com/success", "failureUrl": "https://mybestmerchantreturnurl.com/failure" }'POST -
-
La pasarela de pago crea una sesión y envía un webhook
session.createdy una respuesta al servidor de la tienda en línea. La respuesta contiene unid(el identificador único de la sesión en la pasarela de pago) y unapaymentUrl(la URL a la cual la tienda en línea debe redirigir al cliente para el pago en el Paso 4). Los otros campos enviados en la petición también se retornan en la respuesta.Ejemplo de respuesta:
{ "id": "ps_2GRSigkh7m3hqz5pMCAYCzJaXjsHgypQui6nMBss3XLVLF8gwDASHP", "amount": 10000, "created": "2024-03-28T08:26:37Z", "currency": "EUR", "customerDetails": {}, "expiresAt": "2024-03-28T08:46:37Z", "failureUrl": "https://mybestmerchantreturnurl.com/failure", "locale": "EN", "merchantReferenceId": "4000", "metadata": {}, "paymentData": { "captureMethod": "automatic" }, "paymentStatus": "unpaid", "paymentUrl": "https://dev.bpcbt.com/payment/merchants/ecom/payment.html?mdOrder=12a19f56-50e6-74bc-a289-c93d00a9c8eb&language=en", "status": "open", "successUrl": "https://mybestmerchantreturnurl.com/success" } La tienda en línea redirige al cliente a la URL recibida en el parámetro
paymentUrl. La redirección puede realizarse en la misma ventana o en una nueva ventana.El cliente introduce su número de tarjeta, fecha de expiración, y CVV/CVC, y hace clic en Pay.
La pasarela de pago procesa la petición de pago.
-
El cliente es redirigido a la página de la tienda online definida en el parámetro
successUrl(especificado en el Paso 2). La URL de redirección contendrá el ID de la sesión, por ejemplo:https://mybestmerchantreturnurl.com/success?sessionId=ps_aksdhauedqiuwehdiqwbdq. La tienda online espera el webhook
session.completedpara asegurarse de que el pago fue exitoso. Siempre debes verificar la firma del webhook en el encabezadoX-Signature(ver Webhooks para detalles).