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 paramètre public HTTPS pour les webhooks DEUNA.
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. Confirmer avec les webhooks#
Utilisez les callbacks du navigateur pour mettre à jour l'interface, mais ne remplissez l'ordre qu'après réception de votre moteur de recherche et vérifie le webhook correspondant. Voir Vérifier les signatures de webhook.