Aller au contenu

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 ?

EmplacementSolutionRaison
Sur votre serveurUn SDK serveurIl détient la clé secrète et donne donc accès à toutes les fonctionnalités
Dans un navigateurWajub ComponentsIl affiche et confirme un checkout
Dans une application mobileUn SDK mobileIl affiche une interface de paiement native
Sur WordPressLe pluginAucun code d'intégration
Nulle part pour le momentLiens de paiement ou FacturesUn lien payable, sans code ni package
Dans un environnement sans packageL'API RESTTous 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.

Vous connaissez déjà votre stack ?

Accédez directement à sa page. Node.js, Python, PHP, Go, Ruby, Java, C#, JS, React, Vue, Svelte, Flutter, React Native, Android.

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

LangagePackageVersion minimale
Node.js@wajub/nodeNode 18
PythonwajubPython 3.10, and httpx
PHPwajub/wajub-phpPHP 8.4, and Guzzle 8.2
Gogithub.com/wajubhq/wajub-goGo 1.22
RubywajubRuby 3.1, no runtime gems
Javacom.wajub:wajub-javaJava 17, and OkHttp
C# and .NETWajub.NET 8

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

PackageVersion minimale
@wajub/jsUn navigateur compatible ES2020, avec un bundler ESM ou le script CDN
@wajub/reactReact 18, React DOM 18
@wajub/vueVue 3.3
@wajub/svelteSvelte 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.

Mobile

PackagePlateformeVersion minimale
wajub_mobileFlutterDart 3.5, and flutter_stripe
@wajub/react-nativeReact NativeReact Native 0.74, React 18, and @stripe/stripe-react-native
com.wajub:wajub-mobile-coreKotlin, any JVMJava 17, Kotlin 2.0
com.wajub:wajub-mobile-composeAndroidAndroid 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.

ProduitSDKs serveurNavigateurMobile
Paiementspayments, refunds, disputes, linksCheckout uniquementInterface de paiement uniquement
FacturationinvoicesNonNon
Transfertstransfers, beneficiaries, balanceNonNon
Syncaccounts, avec une référence de compte par requêteNonNon
ShieldshieldNonNon
TaxestaxNonNon

Chaque SDK serveur propose également customers, identity, events, webhooks, webhookEndpoints, listen et global.

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.

ParcoursEffortRésultat
React NativeMinimal si l'application utilise déjà React NativeL'interface de paiement complète
FlutterUne réécriture multiplateformeLa même interface
Checkout hébergé dans une WKWebViewMinimal dans l'ensembleToute 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écisionDocumentation
Page hébergée, intégration en ligne, superposition ou champs personnalisésChoisir une intégration
Adaptation des noms de champs de l'API à votre langageConventions de nommage des SDKs

Que pensez-vous de ce contenu ?