Heim  >  Fragen und Antworten  >  Hauptteil

php – Die Zahlungsplattform eines Drittanbieters benachrichtigt mehrmals asynchron in kurzer Zeit und die Bestellung wird mehrmals bestätigt und abgeholt.

Die asynchrone Zahlungsbenachrichtigung eines Drittanbieters benachrichtigt die Rückrufadresse mehrmals. Die vorherige Benachrichtigungsanfrage wurde noch nicht verarbeitet und die nachfolgende Anfrage wird gesendet, was zu mehreren Zahlungsbestätigungen führt

ringa_leeringa_lee2726 Tage vor972

Antworte allen(4)Ich werde antworten

  • ringa_lee

    ringa_lee2017-05-25 15:10:25

    支付的话需要按唯一 ID 来做处理吧,例如交易号,流水号之类,不可能允许多次重复。

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-25 15:10:25

    请求来了时候 先把db中的记录状态由初始更新为一个中间状态
    然后在处理请求,把中间状态更新为处理完成状态
    然后给第三方异步请求返回报文

    Antwort
    0
  • PHPz

    PHPz2017-05-25 15:10:25

    好奇的是,短时间内多次,那么是多短时间多少次呢。

    • 比如,10 秒内 5-10 次,应该考虑你的代码优化,为啥 1 秒不能处理一个请求,第一个处理完之后,后面的请求就无视了。

    • 比如,1 秒内 5-10 次,简单处理,就是入队列,把并发的请求,变成串行的,就可以解决了。

    以上,我都觉得频率那么高,肯定是有问题的,可以找第三方平台提出来。

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-25 15:10:25

    程序处理完就给第三方返回成功,否则失败,第三方接收到成功就不要再请求了,容易被封ip。这种问题写在文档里给第三方看

    Antwort
    0
  • StornierenAntwort