Choisir votre SDK
Trois questions pour choisir un package, avec les contraintes qui excluent certaines possibilités.
La majeure partie de la décision s'impose d'elle-même. Le package dépend de l'endroit où votre code s'exécute et le langage de celui que vous utilisez déjà. Il vous reste à vérifier la compatibilité de votre environnement d'exécution et la couverture de vos besoins par le package.
1. Où s'exécute le code ?
| Emplacement | Solution | Raison |
|---|---|---|
| Sur votre serveur | Un SDK serveur | Il détient la clé secrète et donne donc accès à toutes les fonctionnalités |
| Dans un navigateur | Wajub Components | Il affiche et confirme un checkout |
| Dans une application mobile | Un SDK mobile | Il affiche une interface de paiement native |
| Sur WordPress | Le plugin | Aucun code d'intégration |
| Nulle part pour le moment | Liens de paiement ou Factures | Un lien payable, sans code ni package |
| Dans un environnement sans package | L'API REST | Tous les SDKs l'enveloppent |
La plupart des intégrations utilisent deux packages : un SDK serveur pour créer le paiement et un package pour navigateur ou mobile afin de l'encaisser. Cette séparation ne relève pas du style, elle dépend de l'endroit où la clé secrète peut être utilisée.
2. Votre environnement d'exécution est-il compatible ?
Cette question permet d'éliminer certaines possibilités. Les versions et les registres figurent dans SDKs et bibliothèques.
Serveur
Si votre version est inférieure au minimum, appelez directement l'API REST. Elle utilise HTTPS et JSON. Chaque endpoint de ce site fournit un exemple brut.
Navigateur
| Package | Version minimale |
|---|---|
@wajub/js | Un navigateur compatible ES2020, avec un bundler ESM ou le script CDN |
@wajub/react | React 18, React DOM 18 |
@wajub/vue | Vue 3.3 |
@wajub/svelte | Svelte 4 as declared, see the warning below |
Tous les quatre nécessitent l'installation de @wajub/js à leurs côtés. Il s'agit d'une dépendance
homologue, non intégrée.
Le package Svelte annonce une compatibilité plus large que sa conception
peerDependencies indique svelte: ">=4", mais le bundle publié se déclare comme Svelte 5 et
contient des éléments internes du client Svelte 5. Il fonctionne comme prévu avec Svelte 5. Avec
Svelte 4, testez-le sur votre propre build avant de l'adopter.
Mobile
| Package | Plateforme | Version minimale |
|---|---|---|
wajub_mobile | Flutter | Dart 3.5, and flutter_stripe |
@wajub/react-native | React Native | React Native 0.74, React 18, and @stripe/stripe-react-native |
com.wajub:wajub-mobile-core | Kotlin, any JVM | Java 17, Kotlin 2.0 |
com.wajub:wajub-mobile-compose | Android | Android 7.0, API 24, and Jetpack Compose |
Android fournit deux artefacts, généralement nécessaires ensemble
wajub-mobile-core est une bibliothèque Kotlin et JVM simple, sans dépendance Android ni manifeste.
Elle constitue le client de session. wajub-mobile-compose est l'archive Android qui contient
l'interface de paiement Material 3 et dépend du package principal. Utilisez uniquement le package
principal si vous créez vous-même l'interface de paiement.
3. Couvre-t-il vos besoins ?
La couverture dépend de l'endroit où le code s'exécute, pas du langage. Les sept SDKs serveur exposent les dix-huit mêmes ressources sous les mêmes noms. Les fonctionnalités ne justifient donc pas d'en privilégier un.
| Produit | SDKs serveur | Navigateur | Mobile |
|---|---|---|---|
| Paiements | payments, refunds, disputes, links | Checkout uniquement | Interface de paiement uniquement |
| Facturation | invoices | Non | Non |
| Transferts | transfers, beneficiaries, balance | Non | Non |
| Sync | accounts, avec une référence de compte par requête | Non | Non |
| Shield | shield | Non | Non |
| Taxes | tax | Non | Non |
Chaque SDK serveur propose également customers, identity, events, webhooks,
webhookEndpoints, listen et global.
Les packages pour navigateur et mobile ne sont pas des clients marchands
Ils affichent un paiement pour une session déjà créée par votre serveur. Ils ne permettent ni remboursement, ni payout, ni facture, ni liste de comptes. Ces opérations nécessitent la clé secrète, qui ne quitte jamais votre serveur. Consultez Sessions et sécurité.
Un label d'aperçu ou de bêta concerne le produit, jamais le SDK. Les clients ne bloquent aucune
fonctionnalité. shield et tax sont donc accessibles dès maintenant depuis chaque langage. La
page du produit indique s'il est disponible pour votre compte.
Contraintes à connaître avant de choisir
Quatre contraintes excluent immédiatement certaines possibilités. La liste des packages ne permet pas de les deviner.
Le package Python sur PyPI est vide
wajub 1.1.1 contient uniquement un marqueur py.typed. pip install wajub réussit, mais
import wajub génère ModuleNotFoundError. Jusqu'à la publication d'un build corrigé, un backend
Python doit appeler directement l'API REST avec httpx ou requests.
Il n'existe aucun package Swift
Aucune solution native pour iOS ne figure dans la feuille de route publique. Trois parcours fonctionnent actuellement.
| Parcours | Effort | Résultat |
|---|---|---|
| React Native | Minimal si l'application utilise déjà React Native | L'interface de paiement complète |
| Flutter | Une réécriture multiplateforme | La même interface |
Checkout hébergé dans une WKWebView | Minimal dans l'ensemble | Toute la page Wajub, sans dépendance |
Si une expérience iOS native est indispensable, contactez le support avant de planifier le travail.
Le chemin du module Go n'est pas celui qu'il semble être
Le chemin d'importation est github.com/wajubhq/wajub-go. L'organisation s'appelle wajubhq.
github.com/wajub/wajub-go ne correspond à rien.
Le groupe Android est nommé com.wajub
Les deux artefacts Android sont publiés sous com.wajub, pas co.wajub. Une coordonnée Gradle
qui utilise le mauvais groupe ne peut tout simplement pas être résolue.
Deux autres décisions à prendre
Choisir le package ne revient pas à choisir l'intégration. Il reste deux décisions distinctes, chacune présentée sur sa propre page.
| Décision | Documentation |
|---|---|
| Page hébergée, intégration en ligne, superposition ou champs personnalisés | Choisir une intégration |
| Adaptation des noms de champs de l'API à votre langage | Conventions de nommage des SDKs |
Pages associées
- SDKs et bibliothèquesL'inventaire avec tous les registres et toutes les versions.
- Démarrage rapide des SDKsVotre premier appel d'API dans chaque langage, présenté côte à côte.
- Wajub ComponentsToutes les fonctionnalités des packages pour navigateur.
- SDKs mobilesLe flux du jeton et de l'interface de paiement commun aux trois SDKs.
- Projets d'exempleClonez un projet fonctionnel et configurez-le avec vos clés.
- Vue d'ensemble de la référence APIAucun package nécessaire, tous les endpoints sont accessibles en HTTP brut.