Tests
Parcourir tout le cycle 221 Pay en mode test, sans argent réel, puis vérifier la liste de passage en production.
En mode test, aucun argent réel ne circule. 221 Pay simule l’opérateur : chaque paiement est confirmé automatiquement en quelques secondes (sauf les numéros d’issue simulée, plus bas), chaque retrait réussit. Webhooks, soldes, remboursements et retraits fonctionnent comme en mode réel.
La clé sk_221_pay_test_… sélectionne le simulateur et les données de test. Une
clé sk_221_pay_live_… sélectionne les opérateurs réels et des données séparées,
après activation du mode live du projet. Les deux clés utilisent la même URL de base.
Reconnaître le mode test
curl -s "$API_URL/v1/balances" -H "Authorization: Bearer $API_KEY" | jq '{livemode, gateway_mode}'livemode: false et simulated : mode test. livemode: true et real : mode
réel. Si le mode live n’est pas raccordé, l’appel échoue avec
503 PAYMENTS_UNAVAILABLE. Voir
Authentification.
Parcours complet
Créer un paiement
Créer un paiement comme décrit dans Paiements. Tout
numéro mobile valide dans le pays du moyen de paiement convient, par exemple
77 123 45 67 pour sn_wave. Le simulateur répond à la place du téléphone
du client.
Attendre la confirmation
Quelques secondes plus tard, le paiement passe à confirmed, fee et net
sont renseignés et payment.succeeded part vers les points de terminaison
abonnés.
curl "$API_URL/v1/payments/$PAYMENT_ID" -H "Authorization: Bearer $API_KEY"Rembourser
Demander un devis puis rembourser : voir
Remboursements. Le paiement doit avoir été créé avec
customer_phone.
Tester les autres issues
En mode test, un paiement se confirme ; frais et trésorerie sont simulés. Le
numéro customer_phone impose une autre issue quand il se termine par :
| Fin du numéro | Issue au premier relevé du statut | error_code |
|---|---|---|
0002 | failed | provider_failed |
0003 | expired | expired |
Par exemple 77 123 00 02 sur sn_wave. La page de paiement simulée n’y
change rien, et le mode réel ignore ces numéros.
unknown se teste en envoyant au point de terminaison de l’application des
événements signés : voir l’exemple cURL de Webhooks.
Vérifier un numéro de retrait
En mode test seulement, le code 000000 valide un numéro de retrait ou un
compte bancaire (POST /v1/payout-destinations/{id}/verify), sans consulter la
boîte e-mail du propriétaire du compte. Un code expiré reste refusé. Le mode
réel refuse 000000. Voir Retraits.
Webhooks en mode test
Les événements sont signés et renvoyés comme en mode réel. L’URL doit être joignable depuis Internet ; pour un serveur local, utiliser un tunnel HTTPS.
Avant la production
- Mode live du projet activé, clé
sk_221_pay_live_…créée avec la seule portéepaymentset stockée dans le gestionnaire de secrets du serveur. - Détection des clés actuelles et
221pay_(motif dans Authentification), ainsi que des anciennessk_221_, en place dans le dépôt de code et les journaux. -
gateway_modevautreal. - Chaque
POSTporte uneIdempotency-Keystable par commande, réutilisée en cas de réessai. -
customer_phoneenvoyé à chaque paiement. - Signature des webhooks vérifiée sur le corps brut, déduplication sur
id. - Statuts
failed,expiredetunknowntraités, sans second paiement automatique. - Identité vérifiée et numéro de retrait enregistré.