Aceptar pagos en un carrito de compra en línea
Cree un pedido en su sistema y abra el Widget de Pago de DEUNA utilizando el SDK distribuido a través de CDN.
En esta página
Descripción general#
La integración tiene cuatro partes. Su servidor es propietario del pedido y de la clave privada; el navegador recibe solo un token de pedido y su clave pública.
Antes de comenzar#
- Claves públicas y privadas de Sandbox: consulte Claves API.
- El SDK Web cargado desde el CDN DEUNA.
- Un punto final de backend que crea un
PAYMENT-LINKorden y devuelve su token de orden. - Una ruta de backend que puede obtener el estado final del pedido de DEUNA.
1. Crea y tokeniza el pedido.#
Cree el pedido en su backend con la clave API privada. Devuelve sólo su token al navegador.
app.post('/api/deuna/checkout-session', async (request, response) => {
const cart = await carts.get(request.session.cartId);
const order = await createDeunaOrder({
orderType: 'PAYMENT-LINK',
currency: cart.currency,
items: cart.items,
totalAmount: cart.totalAmount,
});
response.json({orderToken: order.token});
});2. Cargue e inicialice el SDK web.#
<script crossorigin src="https://cdn.deuna.io/web-sdk/v1.7/index.js"></script>
<script type="module">
await DeunaSDK.initialize({
publicApiKey: 'YOUR_PUBLIC_API_KEY',
env: 'sandbox',
});
</script>3. Abrir el Widget de Pago#
const {orderToken} = await fetch('/api/deuna/checkout-session', {
method: 'POST',
}).then((response) => response.json());
await DeunaSDK.initPaymentWidget({
orderToken,
callbacks: {
onSuccess: async (order) => {
await DeunaSDK.close();
showConfirmation(order);
},
onError: (error) => showRetry(error),
onClosed: () => showCart(),
},
});El SDK actual no expone initCheckoutEl Widget de Pago es el flujo de SDK compatible para aceptar pagos dentro de un carrito de compra en línea existente.
4. Confirme el resultado asíncrono#
Utilice las llamadas de retorno del navegador para actualizar la interfaz, pero solo complete el pedido después de que su backend obtenga el estado final de pago de DEUNA. Consulte Ganchos web para el modelo de procesamiento asíncrono compatible.