Accepter les paiements dans un processus de commande en ligne
Créer une commande sur votre système et ouvrir le widget de paiement DEUNA avec le SDK Web distribué par CDN.
Sur cette page
Aperçu#
L'intégration comporte quatre parties. Votre serveur possède l'ordre et la clé privée ; le navigateur ne reçoit qu'un jeton d'ordre et votre clé publique.
Avant de commencer#
- Sandbox clés privées et publiques — voir Clés API.
- Le SDK Web chargé à partir du CDN DEUNA.
- Un paramètre de moteur qui crée un
PAYMENT-LINKcommande et retourne son jeton d'ordre. - Un chemin de backend qui permet de récupérer l'état de la commande DEUNA finale.
1. Créer et tokenize l'ordre#
Créez la commande sur votre moteur de recherche avec la clé API privée. Remettre seulement son jeton au navigateur.
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. Charger et initialiser le 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. Ouvrir le widget de paiement#
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(),
},
});Le SDK Web actuel ne permet pas de initCheckoutLe widget de paiement est le flux SDK pris en charge pour accepter les paiements dans un processus de commande en ligne existant.
4. Confirmez le résultat asynchrone#
Utilisez les callbacks pour mettre à jour l'interface, mais effectuez la fulfillment de la commande uniquement après que votre backend ait récupéré l'état de paiement final DEUNA. Voir Webhooks pour le modèle de traitement asynchrone supporté.