Récemment terminé un projet de gestion du traitement des cartes de crédit. L'une des difficultés que j'ai rencontrées a été de gérer le retard / l'échec possible des messages de notification. L'exemple le plus complexe était:
- un système externe envoyant la demande de paiement
- mon système transformant cette demande en une demande à la passerelle de paiement
- envoyer l'utilisateur à la passerelle
- attendre que l'utilisateur effectue le paiement
- l'utilisateur retourne à mon système mais reste en attente jusqu'à ce que le système reçoive une notification de réussite / d'échec
- Renvoyer l'utilisateur au système externe en cas d'échec
Plus difficile encore était le fait qu'en cas de non-envoi de la notification, la passerelle tente d'envoyer la notification toutes les 15 minutes pendant un certain nombre d'heures.
Je l'ai résolu en utilisant un enregistrement de base de données des transactions en attente, puis en détectant le succès et l'échec du retour plus un écouteur temporisé pour la notification et la gestion des transactions ...
Assez difficile!
Mais cela a dû être résolu un gazillion de fois auparavant, alors quelle est la meilleure pratique?
Je peux voir que mon avenir va être d'écrire la gestion entre tous ces systèmes et de gérer les délais et les pannes de réseau possibles, donc je veux suivre les meilleures pratiques.
Des recommandations de livres / articles seraient formidables.
Merci d'avance!
la source