跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 微信支付 notify_url 回调重复通知
未分類
8 9 月 2020

微信支付 notify_url 回调重复通知

微信支付 notify_url 回调重复通知

資深大佬 : ccsulzf0627 5

notify_url 的代码处理逻辑不能做登录态校验。
商户系统收到支付结果通知,需要在 5 秒内返回应答报文,否则微信支付认为通知失败,后续会重复发送通知。。
同样的通知可能会多次发送给商户系统,商户系统必须能够正确处理重复的通知。如果已处理过,直接给微信支付返回成功。
商户侧对微信支付回调 IP 有防火墙策略限制的,需要对以下 IP 段开通白名单:。

101.226.103.0/25 、140.207.54.0/25 、103.7.30.0/25 (需要添加新网段 203.205.219.128/25 )、183.3.234.0/25 、58.251.80.0/25 。 。

现状: 我可以收到通知内容。
但是我返回 <xml><return_code></return_code><return_msg></return_msg></xml>
微信没反应一样,还是继续给我通知

有遇到过这样的问题嘛?讨论一下

大佬有話說 (13)

  • 資深大佬 : ming

    微信让你回:
    <xml>
    <return_code><![CDATA[SUCCESS]]></return_code>
    <return_msg><![CDATA[OK]]></return_msg>
    </xml>

  • 主 資深大佬 : ccsulzf0627

    @ming 老哥,我上面描述错误了,是像你这么写的,res.setHeader(‘Content-Type’,’text/xml’); 我在 Postman 中测试也是返回的 XML 格式,就是不行,一直重复通知

  • 資深大佬 : Seanfuck

    我遇到未支付的订单过几个月会发个支付成功的通知,实际上没有支付,不知道怎么回事,为了清掉这条记录?

  • 主 資深大佬 : ccsulzf0627

    @Seanfuck 老哥,你在哪里监听支付回调的?

  • 主 資深大佬 : ccsulzf0627

    已解决:
    const result = `<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>`;
    res.writeHead(200, {‘Content-Type’: ‘text/xml’});
    res.end(result)

  • 資深大佬 : aaronlam

    @ccsulzf0627 最后问题的原因,还是因为一说的 xml 的内容不对吗?

  • 資深大佬 : dusu

    可能微信回调坑!主可以检查一下,微信走的 http 回调,竟然不支持返回 content-encoding: gzip/br,曾经为了这个问题折腾了好几天,最后单独让 nginx 为这个接口原文返回。

    大写的服。

    只能说贵微信,真是神一样的团队。

  • 資深大佬 : also24

    @dusu #7
    支持什么压缩方式,不应该在请求的 Accept-Encoding 里就给出了么?
    还是说微信在回调请求的时候,直接发送了自己实际不支持的编码方式?

    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Accept-Encoding

  • 資深大佬 : kop1989

    5 秒内返回的问题,确认收到支付回调,完成验真,写入缓存之后就可以返回 success 了。没必要和业务完全强关联

  • 資深大佬 : yuzo555

    @dusu 你的服务端应该要根据客户端的 Accept-Encoding 来处理输出方式,而不是你在代码里面压缩输出然后手动设置 Content-Encoding,这是危险的操作。

  • 主 資深大佬 : ccsulzf0627

    @kop1989 我是在小程序中,要点击完成才能触发回调 success 函数,我要有个支付成功的动作才行,所以用 notify_url 来完成

  • 資深大佬 : kop1989

    @ccsulzf0627 #11 也就是说你返回回调 success 是由界面 ui 的 button 触发的?这个逻辑完全做歪了吧。

  • 主 資深大佬 : ccsulzf0627

    @kop1989 小程序自己给了个方法,你先看看文档

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具