Sesiones de Checkout
Una Sesión de Checkout crea una página de pago alojada en
checkout.sangho.ga. Su cliente es redirigido a esa página,
completa allí su pago y después es devuelto a su success_url.
Usted nunca gestiona directamente los datos de pago: de eso se encarga Sangho.
Es la integración recomendada para los comercios electrónicos y las aplicaciones web: cero PCI DSS por su parte y personalizable con los colores de su marca desde su panel.
Ciclo de vida
| Estado | Significado |
|---|---|
open | Sesión creada: página de pago accesible. |
processing | Pago enviado, procesamiento en curso. |
complete | Pago correcto: cliente redirigido a success_url. |
expired | Sesión caducada sin pago (plazo superado o /expire/ invocado). |
payment_failed | Intento de pago fallido: la sesión sigue abierta para reintentar. |
Modos
| Modo | Uso |
|---|---|
payment | Pago único: flujo estándar. Crea una Intención de pago. |
subscription | Suscripción recurrente. Crea una Subscription. |
setup | Guardado de un método de pago sin cargo inmediato. |
Endpoints
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /checkout-sessions/ | Crear una sesión |
| GET | /checkout-sessions/ | Listar las sesiones |
| GET | /checkout-sessions/{id}/ | Recuperar una sesión |
| POST | /checkout-sessions/{id}/expire/ | Hacer caducar manualmente una sesión |
Esquema del objeto
Crear una Sesión de Checkout
Crea una sesión de pago y devuelve la URL de la página de pago alojada
(url). Redirija de inmediato a su cliente a esa URL.
success_urlRequisURL de redirección tras un pago correcto. Sangho sustituye automáticamente
{CHECKOUT_SESSION_ID} por el ID de la sesión: utilícelo
para verificar el pago en el servidor.
Verifique siempre en el servidor que la sesión está realmente en estado
complete antes de entregar el producto o servicio.
No se fíe nunca únicamente de la redirección: un usuario podría manipular la URL.
line_itemsRequisLíneas del pedido. Cada objeto contiene product (ID) o
description + unit_amount,
más quantity (entero, por defecto 1).
Para los Products de precio libre (price_type: free), debe
indicar el unit_amount en la línea del pedido para sustituir
el precio por defecto. Máximo 20 líneas por sesión.
currencyRequisCódigo de moneda de la sesión. Todas las líneas se facturan en esta moneda.
modeOptionnelModo de la sesión: payment,
subscription o setup.
En savoir plus
En modo subscription, la sesión crea un objeto
Subscription y cobra al cliente
según la recurrencia del plan. En modo setup, no se realiza ningún
cargo: el método se guarda para un uso futuro.
customerOptionnelID de un Customer existente que se asociará a la sesión. La página de pago se rellena previamente con sus datos.
En savoir plus
Mutuamente excluyente con customer_email. Si no se indica ninguno de los dos,
Sangho crea un Customer anónimo en el momento del pago si
collect_customer_info: true.
customer_emailOptionnelCorreo electrónico rellenado previamente en el formulario de la página de pago. Sangho crea o recupera automáticamente el Customer correspondiente.
cancel_urlOptionnelURL de redirección si el comprador hace clic en «Cancelar» o cierra la página de pago.
En savoir plus
Si no se indica, se muestra un botón de retorno genérico. Recomendado: apunte al carrito o a la página del producto para reducir el abandono.
payment_method_typesOptionnelMétodos de pago que se ofrecen en la página de checkout. Si se omite, están disponibles todos los métodos activos de la App.
expires_inOptionnelPeríodo de validez de la sesión en segundos a partir de su creación.
En savoir plus
Mínimo: 300 segundos (5 min). Máximo: 86 400 segundos (24 h). Pasado ese plazo, la página
de pago muestra un mensaje de caducidad y la sesión pasa a
expired. Una sesión caducada no se puede reactivar:
cree una nueva.
metadataOptionnelDatos libres asociados a la sesión. Se devuelven en el webhook
checkout.session.completed.
Tras la redirección a success_url, llame siempre a
GET /checkout-sessions/{id}/ en el servidor para confirmar que
status === ‘complete’ antes de entregar su producto.
No autorice nunca la entrega únicamente a partir de la redirección de URL.