Aller au contenu

Wajub Components

Des packages pour navigateur qui intègrent le checkout Wajub ou permettent de composer vos propres champs de paiement.

Wajub Components intègrent l'interface de paiement Wajub à votre site : @wajub/js sur n'importe quelle page, et @wajub/react, @wajub/vue, @wajub/svelte et @wajub/angular dans ces frameworks. Ils sont distribués uniquement sous forme de modules ES.

Quatre façons d'encaisser un paiement

Ils se distinguent par une question : qui affiche le bouton de paiement ?

ModeAppelQui affiche le bouton de paiementRésultatÀ choisir lorsque
Redirectioncheckout()WajubLa page hébergée sur une URL WajubVous souhaitez écrire un minimum de code front-end
Intégration en lignemount()WajubLa page hébergée dans votre propre mise en pageLe checkout constitue la page
Superpositionopen()WajubLa même page dans une fenêtre modale au-dessus de votre pageLe checkout interrompt une autre action
Champs de paiementcomponents()VousDes champs individuels que vous placez vous-même, puis confirmPayment()La mise en page elle-même est l'exigence

Les trois premiers modes gèrent tout le checkout, y compris les OTP et 3D Secure. Les coupons et l'étape de livraison n'y sont pas disponibles. Les champs de paiement vous laissent gérer la mise en page et confient à Wajub les parties qui doivent lui appartenir, avec les limites correspondantes.

Commencez par l'intégration en ligne

mount() garde le client sur votre page sans limiter les fonctionnalités : le checkout gère toujours tous les moyens de paiement, toutes les vérifications et tous les cas particuliers. Passez aux champs de paiement lorsque la mise en page constitue votre exigence principale.

Il existe sept types de champs : card, mobileMoney, wallet, bankTransfer, crypto, payment et address. Chacun a son propre composant, de CardComponent à CryptoComponent dans React, Vue et Svelte, de <wajub-card> à <wajub-crypto> en Angular, et ComponentEmbed, <wajub-component> en Angular, monte n'importe lequel d'entre eux selon son type.

Une session est nécessaire avant tout

Rien ne s'affiche sans jeton de session. Vous pouvez en obtenir un de deux façons, mais elles n'offrent pas le même niveau de sécurité.

Lieu de créationAvecConséquence
Votre serveurUne clé secrète, sk.Le montant est défini par du code auquel le client n'a pas accès
Le navigateurUne clé publique, pk. ou pk_test.Un seul appel, sans backend, et le montant provient de la page

POST /payments renvoie authorization_url, authorization_token et transaction. Le jeton est ce que le navigateur utilise comme sessionId.

Packages

@wajub/js fonctionne sur n'importe quelle page, avec ou sans framework.

npm install @wajub/js

Un package de framework nécessite @wajub/js installé à côté de lui, comme dépendance homologue. React, Vue et Svelte vous donnent un WajubProvider, un CheckoutEmbed et un composant par type de champ. Angular vous donne provideWajub(), un service, et un composant standalone pour le checkout et pour chaque type de champ.

npm install @wajub/react @wajub/js

Sans bundler, chargez directement le script, ou importez la version module.

Depuis le CDN
<script src="https://js.wajub.com"></script>

<!-- or, as a module -->
<script type="module">
  import { mount } from 'https://js.wajub.com/wajub.mjs';
</script>

La plus petite intégration fonctionnelle

Créez la session sur votre serveur, transmettez le jeton à la page, puis montez le checkout.

Sur votre serveur
curl https://api.wajub.com/payments \
  -H "Authorization: sk_test.xxxxxxxxxxxxxxxx…" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 25000,
    "currency": "XAF",
    "email": "buyer@example.com",
    "callback": "https://shop.example.com/return"
  }'

Envoyez authorization_token au navigateur, et rien d'autre. Le jeton est limité à ce paiement, vous pouvez donc l'utiliser en toute sécurité dans le navigateur.

Dans le navigateur
import { mount } from '@wajub/js';

await mount('#checkout', {
  sessionId: authorizationToken,
  onSuccess: () => (window.location.href = '/thanks'),
  onError: (error) => showRetry(error),
});

Pour choisir le moment où Wajub.js se charge, appelez plutôt loadWajub() : il renvoie { wajub, Wajub, WajubError }, et vous appelez rt.wajub.mount(…) dessus.

Où trouver le reste de la documentation

Votre objectifDocumentation à lire
Voir une intégration fonctionner de bout en boutDémarrage rapide
Créer et sécuriser la sessionSessions et sécurité
Monter, ouvrir ou rediriger avec tous les callbacksAfficher le checkout
Créer votre propre mise en page autour des champsChamps de paiement
Modifier les couleurs, le thème et la locale depuis la pageApparence
Modifier le logo et la palette pour toutes les sessionsImage de marque et thème
Consulter la liste complète des méthodes et des typesRéférence du SDK
Utiliser les bons typesTypeScript
Copier une structure complèteCas d'utilisation
Comprendre pourquoi rien ne s'afficheDépannage de Wajub Components

Que pensez-vous de ce contenu ?