收藏
回答

使用wx.requestPayment()接口支付成功,为什么回调进fail?

使用wx.requestPayment()接口支付成功,为什么回调进fail?

因为业务要求未付款订单1小时取消,微信服务器支付成功后回调的时间间隔异常(一般10s内会回调),间隔1小时多,导致订单取消后才回调的问题。

另外发现一个奇怪的现象:鉴于上面支付成功后回调延迟的问题,程序上改进为取消订单前,调用一次微信查询订单是否付款的接口(https://api.mch.weixin.qq.com/pay/orderquery),这时返回的是:NOPAY,订单未支付;此时时间间隔上不到1分钟,这笔订单微信支付成功的回调通知就又有了,但是因为NOPAY订单取消了,所以又导致订单取消后才回调的问题发生。想问下微信支付成功回调是什么机制呢?

猜测:这种小程序前端成功支付又异常回调进入fail的情况,这笔支付在微信服务器上是不是被忽略了,等待商家发起一次查询订单接口,微信服务器才重新找回这笔支付订单,再给商家做支付成功的回调。



以上麻烦官方回复一下,非常感谢。

最后一次编辑于  2020-06-29
回答关注问题邀请回答
收藏

3 个回答

  • zero
    zero
    2020-10-29

    您好,请问这种问题解决了吗?我这边也是进入fail,但是过几秒也有支付成功的异步回调过来了,导致有时候删掉了订单回调才过来?

    2020-10-29
    有用
    回复
  • 老张
    老张
    2020-06-29

    你怎么判断它支付成功了?

    仅拉起wx.requestPayment不代表支付成功的,

    2020-06-29
    有用
    回复 3
    • 王志鹏
      王志鹏
      2020-06-29
      因为1个多小时后有支付成功的回调
      2020-06-29
      回复
    • 老张
      老张
      2020-06-29回复王志鹏
      还1个小时?更加认为你就没有支付成功。1、在小程序端就肉眼可以判断是否支付成功;2、任何一笔支付,微信都会发通知消息给手机的;3、成功的回调,在第一秒就会发给你,然后如果没有回应的话会重复8次。
      2020-06-29
      回复
    • 王志鹏
      王志鹏
      2020-06-29
      感谢你的回复,你讲的这些我都懂,而且都是正常的支付流程,现在遇到的是异常情况,所以提问,谢谢。
      2020-06-29
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-06-29

    文字描述无法知道问题在哪,建议贴相关代码

    2020-06-29
    有用
    回复 3
    • 王志鹏
      王志鹏
      2020-06-29
      也没什么代码,就前端调起wx.requestPayment(),没正常进success,进了fail,支付是成功的,后台也没有及时回调通知商户支付成功。
      2020-06-29
      回复
    • 姜芽儿
      姜芽儿
      2020-07-01回复王志鹏
      请问您解决了么,我也碰到了这个问题
      2020-07-01
      回复
    • 王志鹏
      王志鹏
      2020-07-01回复姜芽儿
      还没有解决哦,官方并没有回复
      2020-07-01
      回复
登录 后发表内容
问题标签