Acepta un pago con cargos a un destino
Usa cargos a un destino para aceptar pagos.
Crea cargos a un destino cuando los clientes hacen la transacción con tu plataforma por productos o servicios suministrados por tus cuentas conectadas y transfieres fondos inmediatamente a tus cuentas conectadas. Con este tipo de cargo:
- Creas un cargo en la cuenta de tu plataforma.
- Determinas si el total o una parte de los fondos se transfiere a la cuenta conectada.
- Eres el comerciante registrado y el costo de las comisiones, los reembolsos y los contracargos de Stripe se debita del saldo de tu cuenta.
Con ciertas excepciones, si tu plataforma y una cuenta conectada no están en la misma región, debes especificar la cuenta conectada como el comerciante a cargo del cobro utilizando el parámetro on_behalf_of en el Payment Intent.
En esta guía, se explica cómo crear una sesión de proceso de compra alojada en Stripe. Como alternativa, puedes usar Stripe Elements o la API.
Crea una Checkout SessionLado del servidor
Una sesión de Checkout controla lo que tu cliente puede ver en el formulario de pago, como las partidas, el importe y la moneda del pedido, así como los métodos de pago aceptados. Agrega un botón de pago en tu sitio web que llame a un punto de conexión del lado del servidor para crear una sesión de Checkout.
En tu servidor, crea una Checkout Session y redirige a tu cliente a la URL que se devuelve en la respuesta.
| Parámetro | Valor | ¿Obligatorio? | Descripción |
|---|---|---|---|
| payment_intent_data[transfer_data] | destino | Sí | Indica que se trata de un cargo a destino. Un cargo a destino significa que el cargo se procesa en la plataforma y, a continuación, los fondos se transfieren de forma inmediata y automática al saldo pendiente de la cuenta conectada. |
| partidas | Una lista de hasta 100 partidas | Sí | Los ítems que el cliente está comprando. Los ítems se muestran en el formulario de pago integrado. |
| success_url | Una URL válida | Sí | La URL a la que se redirige al cliente tras completar un pago. Utilice el valor de {CHECKOUT_ para recuperar la sesión de Checkout e inspeccionar su estado para decidir qué mostrar a su cliente. También puede añadir parámetros de consulta personalizados, que persisten durante el proceso de redirección. |
| payment_intent_data[application_fee_amount] | Una cantidad de dinero | Obligatorio para Connect | El importe que su plataforma planea tomar de la transacción. El importe total del cargo se transfiere inmediatamente desde la plataforma a la cuenta conectada especificada por transferir_ una vez capturado el pago. A continuación, el importe de aplicación_ se vuelve a transferir a la plataforma y la comisión de Stripe se deduce del importe de la plataforma. |
Gestiona eventos posteriores al pago para cargos a un destinoLado del servidor
Stripe envía un evento checkout.session.completed cuando se completa el pago. Utiliza un webhook para recibir estos eventos y ejecutar acciones, como enviar un correo electrónico de confirmación del pedido a tu cliente, registrar la venta en una base de datos o iniciar el flujo de tareas para un envío.
Escucha estos eventos en lugar de esperar una devolución de llamada del cliente. De su lado, el cliente puede cerrar la ventana del navegador o salir de la aplicación antes de que se ejecute la devolución de llamada. Además, algunos métodos de pago tardan entre 2 y 14 días en confirmar el pago. Si configuras tu integración para escuchar eventos asincrónicos, podrás aceptar varios métodos de pago con una sola integración.
Administra los siguientes eventos al cobrar pagos con Checkout:
| Evento | Descripción | Próximos pasos |
|---|---|---|
| checkout.session.completed | Mediante el envío del formulario de Checkout, el cliente ha autorizado correctamente el pago. | Espera hasta saber si el pago se concreta o no. |
| checkout.session.async_payment_succeeded | El pago del cliente se efectuó correctamente. | Entrega los bienes o servicios comprados. |
| checkout.session.async_payment_failed | El pago se rechazó o falló por algún otro motivo. | Comunícate con el cliente por correo electrónico y solicítale que haga un nuevo pedido. |
Todos estos eventos incluyen el objeto Checkout Session. Una vez que el pago se efectúa correctamente, el estado del PaymentIntent subyacente cambia de processing a succeeded o a un estado de falla.
Próximos pasos
A continuación, aprende a cobrar comisiones de la plataforma desde tus cuentas conectadas.