Déclencher des événements
Produisez un véritable paiement dans la sandbox et les événements qui le suivent.
wajub trigger ne fabrique pas de payload. La commande appelle l'API de la sandbox comme votre code,
avec le numéro de test qui produit le résultat demandé, puis laisse la plateforme émettre elle-même
les événements. Votre handler reçoit donc exactement ce qu'aurait produit un véritable payeur.
$ wajub trigger payment.succeeded
Triggering payment.succeeded …
✓ created payment trx_test_VPRKcDWn0pi29ScaQL9B
✓ dispatched cm.mtn charge (+237670000000)
✓ payment trx_test_VPRKcDWn0pi29ScaQL9B is succeededLe numéro composé révèle le mécanisme : +237670000000 est le préfixe MTN Cameroun de la sandbox,
suivi du suffixe de réussite. Pour un échec, la commande utilise le suffixe d'échec.
$ wajub trigger payment.failed --amount 2500
Triggering payment.failed …
✓ created payment trx_test_PR8mmBq5bfkxqGcJRtP5
✓ dispatched cm.mtn charge (+237670000002)
✓ payment trx_test_PR8mmBq5bfkxqGcJRtP5 is failedLes huit événements
Triggerable events:
customer.created Create a customer
customer.updated Create then update a customer
payment.cancelled Create and cancel a payment (mobile money canceled)
payment.created Create a payment and leave it unpaid
payment.failed Create and fail a payment (mobile money failure)
payment.succeeded Create and complete a payment (mobile money success)
refund.failed Complete a payment whose refund deterministically fails
refund.succeeded Complete a payment then refund it (refund succeeds)Huit arguments produisent bien plus de huit événements, car chacun exécute un véritable parcours.
| Déclencheur | Événements reçus par votre endpoint, dans l'ordre |
|---|---|
payment.created | payment.created |
payment.failed | payment.created, payment.processing, payment.failed |
payment.succeeded | payment.created, payment.processing, payment.succeeded, balance.updated, fee.charged |
refund.succeeded | Les cinq précédents, puis refund.created, refund.succeeded, balance.updated |
Le tout premier déclenchement sur un compte émet également customer.created, car la CLI crée le
client CLI Trigger qu'elle réutilise ensuite.
La chaîne est l'enseignement principal, pas un effet secondaire
Un véritable paiement se comporte de la même manière. Si votre handler traite uniquement
payment.succeeded, vous découvrez ici que quatre autres types arrivent déjà sans être traités,
et que fee.charged manquait dans votre registre.
Adapter la ressource créée
| Option | Valeur par défaut | Effet |
|---|---|---|
--amount | 5000 | Montant de la ressource créée |
--currency | XAF | Devise |
--channel | cm.mtn | Réseau à débiter |
--phone | Déduit | Remplace le numéro du payeur. Option avancée qui détermine le résultat |
-d, --data | Champ key=value supplémentaire sur la ressource, répétable | |
--list | Affiche la liste ci-dessus et s'arrête |
wajub trigger payment.succeeded --amount 250000 --currency XOF --channel ci.orange
wajub trigger customer.created -d name="Boutique Akwa" -d email=contact@example.com
wajub trigger payment.succeeded -d reference=order-4172 -d description="Order #4172"L'option -d reference=order-4172 rend le test réaliste. Votre handler retrouve la commande comme
en production, sans traitement spécial pour un faux paiement.
`--phone` remplace le résultat attendu
Le numéro détermine le comportement de la sandbox. Ainsi, wajub trigger payment.succeeded --phone +237670000002 crée un paiement qui échoue. Utilisez cette option pour obtenir des résultats
absents des huit arguments, comme une expiration. Consultez les
scénarios de test pour tous les suffixes.
Événements impossibles à déclencher directement
La liste est volontairement courte. Un événement y figure uniquement si la CLI peut le produire sans configuration supplémentaire. Produisez les autres comme dans votre propre code.
| Événement | Méthode |
|---|---|
transfer.* | wajub beneficiaries create, puis wajub transfers create |
dispute.* | Les litiges sont ouverts par l'acquéreur, pas par vous |
invoice.* | wajub invoices create, puis send ou mark-paid |
link.* | wajub links create |
account.* | wajub accounts create, pour les plateformes Sync |
payment.expired | Laissez un paiement pending atteindre la fin de sa période |
payment.split.* | Envoyez split_count sur un paiement dans la sandbox |
Utiliser volontairement la sandbox
wajub trigger écrit dans l'API avec le profil actif. Un mauvais profil crée un véritable client
sur un véritable compte.
wajub config # which profile is default?
wajub trigger payment.succeeded --profile sandboxLa boucle
# 1
wajub listen --forward-to localhost:3000/webhooks/wajub
# 2
wajub trigger payment.succeeded
wajub trigger payment.failed
wajub trigger refund.succeededTrois commandes couvrent les cas souvent mal gérés : la réussite, l'échec qui doit libérer la réservation et le remboursement qui ne doit pas être pris pour un nouveau paiement.