收藏
回答

微信支付成功后,微信在毫秒级的时间内重复回调。

我们的微信支付开发程序,用了2-3年,一直运行很好,但在今年12月11日左右,出现很多的支付成功后,微信在毫秒级的时间内,用相同的报文重复回调,造成我们业务段,不便于处理。 请微信开发人员引起重视, 提供两个订单号,供微信开发人员查询:支付单号: 4200002096202312111760986375,4200002119202312118017497948, 商户单号: HL202312111651202001,HL2023121123005101801。 这个现象和微信文档中说的,通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m, 严重不符合。 我们用的是合作商开发API。 

回答关注问题邀请回答
收藏

2 个回答

  • Memory
    Memory
    2023-12-25

    建议还是多认真阅读一下文档说明:

    微信支付为保证回调通知触达有效性,会有保障策略,在第一次通知如果网络链路返回无法连接或者状态不明,微信支付会换一条链路进行通知。此时可能会造成您这边收到两次通知。微信文档已强调同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。需要正确对自己数据进行状态唯一性处理。

    支付结果通知:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7&index=8

    应用场景

    支付完成后,微信会把相关支付结果及用户信息通过数据流的形式发送给商户,商户需要接收处理,并按文档规范返回应答。

    注意:

    1、同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。

    2、后台通知交互时,如果微信收到商户的应答不符合规范或超时,微信会判定本次通知失败,重新发送通知,直到成功为止(在通知一直不成功的情况下,微信总共会发起多次通知,通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m),但微信不保证通知最终一定能成功。

    3、在订单状态不明或者没有收到微信支付结果通知的情况下,建议商户主动调用微信支付【查询订单API】确认订单状态。

    特别提醒:

    1、商户系统对于支付结果通知的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。

    2、当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

    3、技术人员可登进微信商户后台扫描加入接口报警群,获取接口告警信息。


    2023-12-25
    有用
    回复 9
    • 逍遥风
      逍遥风
      2023-12-25
      关键是你这个通知是第一次通知在毫秒级的时间连续通知了两次,而不是文档中说的15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m的时间间隔
      2023-12-25
      回复
    • 逍遥风
      逍遥风
      2023-12-25回复逍遥风
      相当于第一次通知在毫秒的时间内,连续通知了两次,我的业务系统都还没有来得及,处理。。。
      2023-12-25
      回复
    • Memory
      Memory
      2023-12-25回复逍遥风
      这就说明是第一次接收延迟了,两次才会间隔很短导致,属于正常情况
      2023-12-25
      回复
    • 逍遥风
      逍遥风
      2023-12-25回复Memory
      但你看我的日志,接收到的时间差,是毫秒级的,不存在接收延迟的情景
      2023-12-25
      回复
    • 逍遥风
      逍遥风
      2023-12-25回复逍遥风
      以前都重来没有出现过这种现象,在12月11日,左右, 不少订单都出现了这种情况,
      2023-12-25
      回复
    查看更多(4)
  • 㐅卝
    㐅卝
    发表于小程序端
    2023-12-25

    官方文档说了,可能会重复通知。自己做好处理。

    2023-12-25
    有用
    回复 2
    • 逍遥风
      逍遥风
      2023-12-25
      关键是你这个通知是在毫秒级的时间连续通知了两次,而不是文档中说的15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m的时间间隔
      2023-12-25
      回复
    • 㐅卝
      㐅卝
      发表于小程序端
      2023-12-25回复逍遥风

      网络抖动就会这样

      2023-12-25
      回复
登录 后发表内容