重新在代码中新建了个模块weixin3.module.ts, 参考https://github.com/notadd/nt-addon-pay 的方法 新建了一个post函数wechat_order_notify。支付成功后,微信仍不断按照15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h的模式进行通知 代码如下 [图片] [图片] 服务器端api日志 [图片] 现在已经不知道问题到底出在哪里了,node版本v8.9.4 nginx信息 [图片]
小程序微信支付回调问题环境是基于nestjs的node.js 小程序前端可以成功发起支付。 微信文档:后台通知交互时,如果微信收到商户的应答不符合规范或超时,微信会判定本次通知失败,重新发送通知,直到成功为止(在通知一直不成功的情况下,微信总共会发起多次通知,通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m),但微信不保证通知最终一定能成功。 现在的现象是后台会一直收到回调通知。已经尝试各种方式回复XML给微信服务器。按道理应该能成功才对 /** * 微信异步通知 */ @Post('weixinPayNotify') // TODO 隐藏接口 async weixinPayNotify(@Req() req, @Res() res){ res.set('Content-Type', 'text/xml'); //'text/xml'); application const ret = await this.wxService.weixinPayNotify(req) console.log(`notify return ret @ ${Date.now()}`) console.log(ret) console.log(typeof ret) res.end(ret) } 返回的数据两种都有试验 <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> </xml> 下面两种图是直接remote debug 连到阿里云服务器,看返回数据的,跟log打印也是一致的。不能理解为何微信会判定通知失败 [图片] [图片] 望大神解惑
2020-02-23一上手,直接用wepy干小程序,刚测试发现原生里this下面不存在 $data这个属性。原来只有wepy才有。直接弄wepy方便是方便,bug也多,还会导致认知上的缺陷。
this.setData, this.data, this.$data的关系请问下,谁能讲解下这三者关系,用久了Vue,来看这东西,不伦不类的, 而且我遇到了很多bug。 this.setData() -> 我的理解是抄袭react的setState() 官方的解释 [代码]setData[代码] 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 [代码]this.data[代码] 的值(同步) 可你有个代码示例是: [代码]changeNum: function() { this.data.num = 1 this.setData({ num: this.data.num }) },[代码]既然都说会同步改变对应的this.data的值,上面的this.data.num = 1这句话,岂不是多次一举 实际测试时,发现不调用this.data.num的话,你在语句执行后,执行console.log(this.data.num),你又会神奇的发现,值还是this.setData之前的值,所以好坑啊,还必须加上。此时this.$data.num倒是变成了最新的值。 2. 问题是我用wepy时,@tap="callFun",分别绑定了如下两种setData的方法,结果完全不一样 [代码]data = {[代码][代码] [代码][代码]first: -2,[代码][代码] [代码][代码]sth: {[代码][代码] [代码][代码]sec: -2[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]// 这个方法虽然调用时,成功了,设完后,又很快变回初始值[代码][代码]callFun () { [代码] [代码] this[代码][代码].setData({[代码] [代码] [代码][代码]first: [代码][代码]this[代码][代码].data.first = 1 [代码][代码]// 设置后值会瞬间被变回原始值-2[代码][代码] })[代码] [代码]}[代码] [代码]// 这个方法的实现倒是可以,好神奇[代码] [代码]callFun () {[代码] [代码] this[代码][代码].setData({[代码][代码] [代码][代码]'sth.sec'[代码][代码]: [代码][代码]this[代码][代码].sth.sec = 1 [代码][代码]// ok 一直是1[代码][代码] })[代码] [代码]}[代码] 我已经疯了,哪个大神能帮忙解释下,微信的小程序好坑爹的感觉 ,另外这个提交问题的编辑器老是光标消失,然后 不能打字,要按tab很多下,或者回车然后又出现光标
2018-06-14