收藏
回答

微信支付成功后,为什么一直回调成功的地址?

使用的是nodejs框架。

根据微信支付api规范返回数据,试过直接返回字符串或者xml文件。

也尝试过网上大家说的数据格式:

官方:ctx.body = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"

网友:ctx.body = "<xml><return_code>SUCCESS</return_code><return_msg>OK</return_msg></xml>"

使用postman调试接口,返回的数据都能与预期的结果一样,但是微信真机测试还是一直回调,实在找不到解决方案了,来这里请求大神的协助。

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

3 个回答

  • 支付社区运营-Tasting
    支付社区运营-Tasting
    2021-01-25

    请提供420或者其它数字开头的的微信支付订单号,或者商户号+商户订单号+时间,后台帮您核实一下

    2021-01-25
    有用
    回复 3
    • Kaka
      Kaka
      2021-01-26
      非常感谢,麻烦您帮忙核实一下。


      商户号:1604026341
      订单号:4200000783202101248030030098
      时间:2021-01-24 00:25:43
      2021-01-26
      回复
    • 支付社区运营-Tasting
      支付社区运营-Tasting
      2021-01-26回复Kaka
      该笔订单一共回调34次,http状态码均为404
      2021-01-26
      回复
    • Kaka
      Kaka
      2021-01-26
      确实是我程序的问题,现在业务都正常了。
      2021-01-26
      回复
  • Kaka
    Kaka
    2021-01-26

    微信小程序支付业务,支付成功后回调业务的跳坑经历:

    1,微信回调业务接口请求方式是post还是get呢?我现在也不确定,因为两种请求方式我都给做上了。

    2,回调业务接口应该返回都数据:<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>,应该是字符串还是一个文件呢?有人说一定要是xml文件,我直接返回字符串好像业务也运行都妥妥的。

    3,一开始担心签名的校验会很麻烦,随便在网上找一个同学写的方法复制下来,基本上都是能够校验通过的,反而是最简单的环节。

    4,微信回调业务接口传过来的xml数据获取和解析,我是通过下面的方式解决的。

    ctx.req.on('data', chunk => {

    data += chunk;

    })

    ctx.req.on('end', () => {

    xml2js(data, { explicitArray: false }, (err, json) => {

    if (!err && json && json.xml.return_code == 'SUCCESS') {

    resolve(json.xml) // json.xml 就是微信支付传给我们的数据

    } else {

    reject('数据异常')

    }

    });

    });

    项目写的非常仓促,所以目标就是为了实现业务功能,没有仔细研究有没有更好的方法,听同事说有专业的工具库可以很方便的解决微信支付的业务,我只是在这里抛砖引玉,希望别误导了大家。

    2021-01-26
    有用
    回复 1
    • CcZz
      CcZz
      2021-12-19
      楼主我也遇到回调的问题一直解决不了,我是这样写的,第一张是接收回调没问题,第二章是通知回调,但是没什么用,能不能指点一下
      2021-12-19
      回复
  • Memory
    Memory
    2021-01-24

    • 同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当商户系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

    • 如果在所有通知频率(15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m)后没有收到微信侧回调,商户应调用查询订单接口确认订单状态。


    2021-01-24
    有用
    回复 1
    • Kaka
      Kaka
      2021-01-26
      感谢您的回复,从严谨开发的角度来看,不应该出现这种多次回调的情况,对双方系统都会造成资源内耗。您回复的内容,我也看到过原文,所以大概情况还是了解的,再次感谢。
      2021-01-26
      回复
登录 后发表内容
问题标签