Lire les confirmations mobile money en temps réel
Le besoin
Vous vendez en ligne dans un pays où l'on paie par mobile money. L'opérateur confirme chaque paiement par SMS au numéro du marchand, immédiatement. Une API, quand elle existe, demande des semaines de dossier, une société immatriculée, un volume minimum, et souvent une part de chaque transaction.
Pendant ce temps, la confirmation dont vous avez besoin arrive déjà, sur un téléphone, sous forme de message.
Comment cela marche
La SIM qui reçoit les confirmations de l'opérateur est l'une des cartes SIM appairées à votre passerelle. À partir de là :
- Le message arrive sur le téléphone et la passerelle l'enregistre, sur votre propre machine.
- Une règle le reconnaît. Les règles de réception se déclenchent sur l'expéditeur, qui pour un opérateur est un code court et non un numéro, et sur le contenu, par mot-clé ou expression régulière. Ajoutez ce code court aux expéditeurs autorisés dans Paramètres > Réception, sans quoi il sera refusé comme tout expéditeur inconnu.
- Un webhook appelle votre application, signé en HMAC-SHA256 pour que vous puissiez prouver que l'appel vient de votre passerelle, avec le corps du message et l'instant où il est arrivé.
- Votre code lit le montant et la référence dans le corps et marque la commande payée.
Rien n'est interrogé en boucle et rien n'attend : le webhook part quand le SMS arrive.
Ce qu'il faut savoir avant de construire dessus
- Le format du message appartient à l'opérateur. Il peut en changer la formulation sans vous prévenir, et une règle écrite sur l'ancienne cesse alors de reconnaître. Journalisez ce que vous n'avez pas su analyser, et surveillez ce journal.
- Un SMS n'est pas une preuve de paiement. Il dit ce que l'opérateur a envoyé à ce numéro. Pour un montant qui compte, confirmez sur le relevé ou l'API de l'opérateur avant de livrer quoi que ce soit d'irréversible.
- Réservez la SIM réceptrice à cet usage, sur un téléphone qui reste sur le chargeur. Une confirmation qui arrive téléphone éteint est lue au retour, elle n'est pas perdue, mais elle est lue en retard.
- Vérifiez les conditions de votre opérateur : ce que vous avez le droit d'automatiser sur un compte mobile money relève de sa règle, pas de la nôtre.
Ce que cela demande
Un téléphone appairé, la SIM qui reçoit les confirmations, une règle de réception, un point d'entrée webhook dans votre application. La passerelle tient les messages et les règles ; la décision d'accepter un paiement reste dans votre code.