Connecter votre application à Wajub
Obtenir la clé d'un marchand sans lui demander de la copier, par un appairage qu'il approuve dans le Dashboard.
Un plugin, une extension de navigateur ou une application mobile ne devrait pas demander au
marchand de copier une clé secrète. Elle peut en demander une, comme le font wajub login et
Connexion avec Wajub dans le plugin WordPress : le marchand approuve la demande dans le
Dashboard et votre application reçoit une clé, une seule fois.
Commencez par ouvrir une session d'appairage. Tous les champs sont facultatifs.
| Champ | Rôle |
|---|---|
client_type | mobile, browser_extension, shopify, woocommerce, wordpress ou other (cli s'il est absent). Nomme votre application sur l'écran d'approbation et dans le nom de la clé, présenté comme ce que votre application déclare être |
device_name | Jusqu'à 120 caractères montrés à la personne qui approuve, comme le nom et le domaine de la boutique |
environment | sandbox ou live, celui que vous demandez. La page d'approbation démarre sur Sandbox, quoi que vous envoyiez |
permissions | Les scopes dont votre application a besoin, comme payment.write. La page d'approbation démarre alors sur une clé restreinte, avec ces scopes cochés |
return_url | Une adresse publique vers laquelle la page d'approbation propose un lien une fois la demande approuvée. Elle n'est jamais suivie automatiquement |
client_key | Jusqu'à 60 caractères à vous, conservés avec la session |
curl https://dashboard.wajub.com/api/apps/auth/sessions \
-H "Content-Type: application/json" \
-d '{
"device_name": "Boutique Amina, WooCommerce",
"client_type": "woocommerce",
"environment": "sandbox",
"permissions": ["payment.read", "payment.write", "refund.read", "refund.write"]
}'La réponse contient le code que voit le marchand, le jeton que seule votre application détient et la page à ouvrir. La session expire au bout de 15 minutes. Une même adresse peut ouvrir 30 sessions par minute.
Ouvrez confirm_url dans le navigateur du marchand et montrez-lui le code. Il se connecte, vérifie
que la page affiche le même code, choisit l'environnement, accorde toutes les permissions ou un
ensemble restreint, choisit la durée de la clé, 90 jours ou Durée indéterminée, puis approuve
ou refuse. Seuls le propriétaire, un Administrator ou un Developer du compte peuvent approuver,
ou un Sandbox User pour une clé sandbox seulement, après un code de sécurité, et Wajub envoie un
e-mail au propriétaire et à chaque Administrator pour chaque clé créée ainsi. Pendant ce temps, interrogez la
session toutes les interval secondes avec le jeton de polling, 60 fois par minute au plus.
curl https://dashboard.wajub.com/api/apps/auth/sessions/poll \
-H "Authorization: Bearer <polling_token>"| Réponse | Signification |
|---|---|
200 avec status: pending | Pas encore de décision, interrogez à nouveau |
200 avec status: authorized | La clé, et ce que le marchand a accordé |
403 avec status: denied | Le marchand a refusé |
410 avec status: expired | Personne n'a approuvé dans les 15 minutes, ou la clé n'a pas été récupérée dans les 15 minutes qui ont suivi l'approbation et a été supprimée |
410 avec status: consumed | La clé a déjà été remise |
404 | Jeton de polling inconnu |
Champ de authorized | Contenu |
|---|---|
key | La clé secrète : sk_test. ou sk., rk_test. ou rk. pour une clé restreinte |
environment | sandbox ou live : celui que le marchand a choisi, quel que soit celui que vous avez demandé. Rangez la clé à cet endroit |
key_type, permissions | private avec null pour un accès complet, ou restricted avec ses scopes |
expires_at | Le moment où la clé cesse de fonctionner, ou null si elle n'expire pas. key_expires_at contient la même valeur |
business | Le nom de l'entreprise du marchand |
client_type, api_base | Votre type de client, et l'API à appeler |
La clé n'est renvoyée qu'une fois, à la première réponse authorized. Conservez-la comme toute clé
secrète. Une clé restreinte atteint GET / quoi qu'il lui manque : lisez key_type et
permissions plutôt que de sonder l'API. Une clé de wajub login dure toujours 90 jours ; pour
tout autre client, le marchand choisit.
Lorsque votre application se reconnecte, supprimez la clé qu'elle remplace : DELETE /keys/current,
envoyé avec cette clé, supprime une clé créée par un appairage. Il répond 409 pour une clé créée
dans le Dashboard, qu'il ne touche jamais, et 401 pour une clé déjà supprimée. Ne l'envoyez jamais
depuis une copie de l'installation qui pourrait encore partager la clé, comme une copie de
préproduction d'une boutique.
curl -X DELETE https://api.wajub.com/keys/current \
-H "Authorization: sk_test.xxxxxxxxxxxxxxxx…"