Aller au contenu principal
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.

server
Créer une commande
Le moteur crée et jeunifie l'ordre.
browser
Ouvrir le widget de paiement
Le client sélectionne une méthode de paiement et effectue le paiement.
deuna
Itinéraire et processus
DEUNA applique les règles de routage, de fournisseur et de repli.
server
Confirmer
Votre backend récupère et vérifie l'état de paiement final DEUNA.

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-LINK commande 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.

server.jsJavaScript
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#

HTML
<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#

checkout.jsJavaScript
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é.

Liste de contrôle pour aller en ligne#