SDKs et bibliothèques
Tous les packages Wajub officiels, leur emplacement et celui dont votre stack a besoin.
Il existe une seule API Wajub. Chaque package de cette page est une enveloppe légère qui respecte les conventions de son langage. Aucun ne fait donc plus que l'API REST. Ces enveloppes gèrent pour vous l'authentification, les nouvelles tentatives, l'idempotence, les erreurs typées et la pagination que vous devriez sinon réécrire dans chaque projet.
Où s'exécute votre code
Cette seule question détermine le package à choisir.
| Emplacement de votre code | Solution | Raison |
|---|---|---|
| Sur votre serveur | Un SDK serveur | Il détient la clé secrète et peut donc tout faire |
| Dans un navigateur | Wajub Components | Il affiche et confirme un checkout, rien de plus |
| Dans une application mobile | Un SDK mobile | Il affiche une interface de paiement native |
| Dans un terminal | La CLI | Transfert local des webhooks et événements de test |
| Sur WordPress | Un plugin | Aucun code d'intégration |
| Partout ailleurs | L'API REST | Tous les endpoints documentés pour le HTTP brut |
Une règle s'applique à toute la liste
La clé secrète reste sur votre serveur. Les navigateurs et les applications mobiles reçoivent un
jeton de session limité à un seul paiement, généré par un SDK serveur. Aucun package de cette page
ne change cette règle. L'API répond 403 et envoie un e-mail au propriétaire lorsqu'une clé sk.
provient d'un navigateur. Consultez Sessions et sécurité.
SDKs serveur
Sept langages pour une seule interface. Ils sont versionnés et publiés ensemble. Seule leur syntaxe diffère, pas leurs possibilités.
| Langage | Package | Registre | Version | Environnement d'exécution |
|---|---|---|---|---|
| Node.js | @wajub/node | npm | 1.1.1 | Node 18+ |
| Python | wajub | PyPI | 1.1.1 | Python 3.10+ |
| PHP | wajub/wajub-php | Packagist | 2.0.0 | PHP 8.4+ |
| Go | github.com/wajubhq/wajub-go | Go modules | v1.1.1 | Go 1.22+ |
| Ruby | wajub | RubyGems | 1.1.1 | Ruby 3.1+ |
| Java | com.wajub:wajub-java | Maven Central | 1.1.1 | Java 17+ |
| C# and .NET | Wajub | NuGet | 1.1.1 | .NET 8+ |
Le package Python sur PyPI est actuellement vide
wajub 1.1.1 publie uniquement un marqueur py.typed. pip install wajub réussit, mais
import wajub génère ModuleNotFoundError. Le SDK reste inutilisable jusqu'à la publication d'un
build corrigé. En attendant, appelez directement l'API REST avec httpx ou requests.
Chaque endpoint contient un exemple Python.
Le même appel de sept façons
Créez un paiement, puis recevez un jeton pour le navigateur et une URL de redirection. Tous les SDKs serveur partagent cette structure.
curl https://api.wajub.com/payments \
-H "Authorization: sk_test.kZ3qP8mWvL2xR7tB5nY4hC6dF9jS1aG0eU3i…" \
-H "Content-Type: application/json" \
-d '{"amount": 15000, "currency": "XAF", "customer": {"email": "buyer@example.com"}}'Ruby, Java et C# fonctionnent de la même façon selon leurs propres conventions. Chacun dispose de sa page : Ruby, Java, C#.
Fonctionnalités de chaque SDK serveur
Le client est organisé par ressources. Chaque ressource de l'API possède un objet dont le nom reste identique partout.
| Groupe | Ressources |
|---|---|
| Entrées d'argent | payments, refunds, disputes, links, invoices |
| Sorties d'argent | transfers, beneficiaries, balance |
| Personnes et comptes | customers, accounts, identity |
| Risque et conformité | shield, tax |
| Infrastructure | events, webhooks, webhookEndpoints, listen, global |
Ils fournissent aussi les comportements que vous devriez autrement recréer dans chaque projet.
- Une
Idempotency-Keyest générée pour chaque appel de modification, mais vous pouvez fournir la vôtre. - Nouvelles tentatives sur
429et5xx, avec attente exponentielle. - Une classe d'erreur par type d'échec pour distinguer l'authentification, la validation, la limite de requêtes et le transport avant même de lire le message.
- Pagination par pages avec un itérateur qui récupère la page suivante pour vous.
- Vérification de signature des webhooks pour sécuriser en un appel l'endpoint qui reçoit les événements.
- Une référence de compte Sync par requête pour les plateformes qui débitent au nom de leurs marchands.
Le nommage suit chaque langage : snake_case en Python, PHP et Ruby, camelCase ailleurs. Le format
d'échange reste en snake_case. Consultez les Conventions de nommage des SDKs.
Dans le navigateur
Ces packages affichent un checkout. Ils ne détiennent jamais de clé et ne peuvent ni rembourser, ni effectuer un payout, ni lister quoi que ce soit. Votre serveur crée d'abord la session.
| Package | Framework | Version |
|---|---|---|
@wajub/js | Vanilla, bundler or CDN | 1.4.0 |
@wajub/react | React 18+, Next.js | 1.4.0 |
@wajub/vue | Vue 3.3+, Nuxt | 1.4.0 |
@wajub/svelte | Svelte, SvelteKit | 1.4.0 |
Les trois packages de framework enveloppent @wajub/js, lui-même un petit chargeur qui récupère
l'environnement d'exécution du checkout depuis https://js.wajub.com. Toute la section possède sa propre arborescence :
Wajub Components.
Dans une application mobile
Une interface de paiement native utilise une session créée par votre serveur. Le client choisit un opérateur, saisit un numéro et approuve depuis son téléphone sans quitter votre application.
| Package | Plateforme | Version | Prérequis |
|---|---|---|---|
wajub_mobile | Flutter | 1.1.1 | Dart 3.5+ |
@wajub/react-native | React Native | 1.1.1 | React Native 0.74+, @stripe/stripe-react-native |
com.wajub:wajub-mobile-core | Android, Kotlin | 1.1.0 | Compose UI in wajub-mobile-compose |
Une interface de paiement, pas un client marchand
Les SDKs mobiles couvrent uniquement les paiements. Les remboursements, payouts, la Facturation, Sync, Shield et les Taxes restent sur votre serveur, avec la clé secrète. L'architecture commune est décrite dans SDKs mobiles.
Il n'existe aucun package Swift pour iOS
Trois parcours fonctionnent actuellement sur iOS, par ordre d'effort. React Native fournit
l'interface de paiement complète. Flutter fait de même si une réécriture multiplateforme est
acceptable. Sinon, ouvrez dans une WKWebView l'URL du checkout hébergé
générée par votre serveur, sans aucun SDK. Aucun package Swift natif ne figure dans la feuille de
route publique. Contactez donc le support avant d'y consacrer du temps de développement.
En ligne de commande
@wajub/cli est le seul package de cette page qui n'est pas destiné au code de production. Il
transfère les webhooks vers votre machine, déclenche des événements de test et lit les ressources
de votre API pendant le développement.
| Package | Registry | Version | Runtime |
|---|---|---|---|
@wajub/cli | npm, Homebrew, Scoop | 1.4.0 | Node 20+ |
L'installation et toutes les commandes figurent dans les pages de la CLI.
Sans SDK
Aucun élément de cette page n'est obligatoire. Chaque SDK ajoute quelques milliers de lignes au-dessus de HTTPS et JSON. La référence API documente chaque endpoint avec des exemples de requêtes et de réponses. Utilisez-la pour un langage sans package officiel, un environnement qui n'accepte pas de nouvelle dépendance ou si vous préférez voir directement les échanges.
Pages associées
- Choisir votre SDKLa matrice par langage, plateforme et couverture produit.
- Démarrage rapide des SDKsVotre premier appel d'API dans chaque langage, présenté côte à côte.
- Wajub ComponentsCheckout hébergé et champs de paiement dans le navigateur.
- Conventions de nommage des SDKsL'adaptation des champs API en snake_case à chaque langage.
- Projets d'exempleClonez un projet fonctionnel et configurez-le avec vos clés.
- AuthentificationClés publiques, secrètes et restreintes.