Démarrage rapide
Installez le package pour navigateur, montez le checkout et confirmez le paiement sur votre serveur.
Wajub Components s'exécute dans le navigateur. Cette page présente le parcours fonctionnel le plus court : installer, monter et confirmer. Les options d'installation, la configuration et toutes les props sont présentées sur la page de votre framework.
1. Installer
Le package principal contient le chargeur et les types. Tous les autres reposent sur lui.
npm install @wajub/jsUne enveloppe de framework doit être installée avec le package principal, car @wajub/js est une
dépendance homologue et non intégrée.
npm install @wajub/react @wajub/jsSans bundler, chargez directement le script et n'utilisez pas npm. Il ajoute wajub, Wajub et
WajubError à window.
<script src="https://js.wajub.com"></script>Le package npm ne contient pas l'environnement d'exécution
@wajub/js est un chargeur d'environ 11 Ko. Lors de l'appel, il récupère le véritable environnement
d'exécution depuis https://js.wajub.com. Ainsi, une correction apportée par Wajub atteint votre
checkout sans nouveau déploiement. Une installation locale ne vous rend pas indépendant de cette origine.
2. Monter le checkout
Le conteneur doit disposer d'une hauteur réservée. Sinon, la page se décale au chargement de l'iframe.
<div id="checkout" style="min-height: 480px"></div>mount charge lui-même l'environnement d'exécution et renvoie une CheckoutInstance que vous pouvez ensuite piloter.
import { mount } from '@wajub/js';
await mount('#checkout', {
sessionId,
onSuccess: () => (window.location.href = '/order/complete'),
onError: (error) => showRetry(error),
});Dans un framework, un WajubProvider charge une fois l'environnement d'exécution et CheckoutEmbed
le monte. Aucun conteneur à déclarer ni chargeur à attendre.
import { WajubProvider, CheckoutEmbed } from '@wajub/react';
<WajubProvider>
<CheckoutEmbed sessionId={sessionId} minHeight={480} onSuccess={onPaid} />
</WajubProvider>;Le thème, le rendu serveur, les composants de champs et tous les callbacks figurent sur la page de votre framework : React, Vue, Svelte.
3. Origine de la session
Rien de ce qui précède ne s'affiche sans sessionId. Il correspond à la valeur authorization_token
renvoyée par POST /payments. Sa création est la seule partie qui ne doit pas se faire dans un
navigateur détenant une clé secrète.
curl https://api.wajub.com/payments \
-H "Authorization: sk_test.kZ3qP8mWvL2xR7tB5nY4hC6dF9jS1aG0eU3i…" \
-H "Content-Type: application/json" \
-d '{"amount": 25000, "currency": "XAF", "description": "Order 4172"}'Envoyez uniquement authorization_token au navigateur. Ce jeton est limité à ce paiement.
N'indiquez pas callback lors d'une intégration
callback est la destination du payeur après un checkout avec redirection. Une intégration ne quitte
jamais votre page, cette option n'a donc aucun effet. Les autres options de session figurent dans
Sessions et sécurité.
4. Confirmer sur votre serveur
onSuccess est seulement un signal de l'interface utilisateur
Un payeur peut fermer l'onglet avant l'exécution du callback. Toute personne ayant accès à la console
peut aussi le déclencher. Livrez la commande lorsque payment.succeeded
arrive sur votre endpoint, ou lorsqu'un appel serveur
GET /payments/{id} le confirme. Ne vous fiez jamais au navigateur.
Enregistrez transaction.id à la création de la session et utilisez-le pour identifier l'événement
à sa réception. C'est tout le rapprochement nécessaire.
Utiliser un framework
Pages associées
- Checkout hébergéToutes les options, tous les callbacks et toutes les méthodes d'instance de mount, open et checkout.
- Champs de paiementVotre propre mise en page, votre bouton de paiement et confirmPayment.
- ApparenceThèmes, couleurs, locale et mise en page.
- Sessions et sécuritéClés, expiration et possibilités du jeton.