Maison > Questions et réponses > le corps du texte
考虑到用线程或者定时任务,不知道有没有人做过这个
PHP中文网2017-04-18 10:53:55
Les interfaces de notification de traitement asynchrone similaires doivent essentiellement effectuer ce type de traitement, car les notifications de rappel asynchrones ne seront toujours pas notifiées en raison des retards du réseau ou du traitement.
La méthode spécifique consiste à générer d'abord une commande en attente avant d'appeler l'interface asynchrone, puis à appeler l'interface Alipay pour le paiement. Une fois le paiement terminé, dans des circonstances normales, Alipay demandera activement votre interface de rappel s'il n'y a pas de demande. , vous Le statut de la commande restera en attente.
Ensuite, effectuez une tâche planifiée. De temps en temps, interrogez les commandes à traiter et mettez à jour le statut correspondant en fonction du statut de la commande renvoyé par Alipay. Il est à noter que l'heure de la requête de la commande est contrôlée. Il n'est pas recommandé de rechercher toutes les commandes, de les mettre à jour et de les traiter en fonction de votre volume de données. Généralement, il est plus long de demander à distance à l'interface Alipay un traitement synchrone. S'il y a trop de commandes non traitées, elles ne peuvent pas être traitées. L'approche recommandée consiste à interroger directement la requête. La requête est envoyée à MQ et plusieurs services consommateurs sont ouverts en fonction de la quantité de données pour traiter la requête.
Il existe également un moyen simple et brut, qui ne traite pas directement les commandes à traiter, mais fournit à l'utilisateur une fonction permettant à l'utilisateur de lancer activement une demande. Une fois que l'utilisateur a cliqué sur le bouton de réessayer, il l'a directement fait. appelle l'interface de requête Alipay pour interroger l'état de paiement de la commande.
高洛峰2017-04-18 10:53:55
Plusieurs statuts de la commande : En attente de paiement, payée à Alipay, paiement Alipay complété.
La réponse principale est : le paiement a été effectué à Alipay.
Quelques points à considérer : temps réel, idempotence
En temps réel : selon votre scénario commercial spécifique, processus unique, plusieurs threads et traitement multi-processus. S'il y a plusieurs processus, les données doivent être traitées par sections pour garantir que les données ne soient pas répétées
Idempotent : Chaque commande doit avoir un identifiant unique. Lorsque chaque lien est traité, il est garanti que la commande a été traitée. .