hpyer / node-easywechat

EasyWeChat for Node.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

支付回调通知的response有问题

ValueLan opened this issue · comments

使用咱们的 支付response 和head 微信会连续发通知

commented

微信会连续发通知,说明你没把结果输出

let response = app.handlePaidNotify(function (message, fail) {
    // 业务逻辑
    return true; // 返回 true 告诉微信“我已处理完成”
});

// 这个response对象和 php 版的不一样,需要调用 getContent() 方法获取到框架生成的响应数据
// 返回的是个 Buffer 实例,可以用 toString() 方法转为字符串
let buffer = response.getContent();

// 然后通过web框架(如:koa2)输出,这样微信才能接收到你的处理结果
ctx.body = buffer;

我确定我已经输出了,而且是用postman 测试过。
我在找找解决方案吧

commented

那输出的内容是什么?是否与微信要求的数据格式一致?

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7&index=8

<xml>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <return_msg><![CDATA[OK]]></return_msg>
</xml>

我晚点给你看看结果,我用的是忽略插入,问题不大,只是不喜欢没用的请求。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xml> <return_code>SUCCESS</return_code> <return_msg /> </xml>

commented

2.10.2 版本移除了xml声明部分(<?xml version="1.0" encoding="UTF-8" standalone="yes"?>这句),再看看~

多次请求问题依旧存在

<xml><return_code>SUCCESS</return_code><return_msg/></xml>
这个东西有点蛋疼,我直接用原样输出也会存在

这个问题终结,应该没什么问题了,可能因为是我的框架返回了 status code 201

commented

好吧~我就说这输出应该没什么问题了的~😂