E-commerce · Guides de recettes
Premier paiement en dix minutes
De la clé de test au webhook reçu, sans écrire une ligne de page de paiement.
1. Prendre une clé de test
Espace marchand, onglet Développeur, Clés API. Une clé sk_test_* ne traite aucun paiement réel : il n'existe aucun interrupteur test et production dans la documentation, c'est le préfixe de la clé qui décide.
Vérifiez au passage ce que la clé désigne : GET /api/v1/whoami renvoie le marchand rattaché, l'environnement et les permissions accordées. Une clé collée dans le mauvais outil se voit là, pas au premier paiement raté.
2. Créer la session de paiement
L'appel renvoie une checkoutUrl : c'est la page hébergée Mobupay, widget carte conforme 3DS. Vous ne manipulez jamais de numéro de carte.
amount est en unité mineure de la devise. En XPF, qui n'a pas de décimale, 5000 vaut 5 000 XPF.
{
"order": {
"reference": "CMD-001",
"amount": 5000,
"currency": "XPF",
"items": [
{ "product": "Pizza Margherita", "unitPrice": 1500, "quantity": 2 },
{ "product": "Coca-Cola 33cl", "unitPrice": 500, "quantity": 4 }
]
},
"captureMode": "AUTO",
"redirectUrl": "https://example.com/return",
"notificationUrl": "https://example.com/webhook"
}Une clé inconnue placée dans order est écartée en silence. storeId, captureMode et notificationUrl sont des champs de premier niveau : glissés dans order, ils disparaissent sans erreur et le paiement part sur le contrat par défaut.
3. Payer avec une carte de test
Ouvrez la checkoutUrl et réglez avec une carte de test (page « Cartes de test »). Le client revient ensuite sur votre redirectUrl.
La redirection n'est pas une preuve de paiement : elle dépend du navigateur du client, qui peut fermer l'onglet. La preuve est le webhook, et à défaut la lecture du paiement.
4. Recevoir la confirmation
En capture AUTO, l'événement est payment.captured. Déclarez votre endpoint une fois pour toutes, puis lisez le paiement pour confirmer son état.
{
"url": "https://example.com/webhooks/mobupay",
"events": ["payment.captured", "payment.failed", "payment.refunded"]
}Le secret n'est montré qu'une fois
La réponse 201 porte le secret de signature. Il n'est jamais renvoyé ensuite, ni par la lecture ni par la liste. Conservez-le à la création.