说明:
目前商户遇到nodejs基于express3.x框架return_url、notify_url能收到通知并解析数据。针对嫁接到express4.x框架能收到异步请求,req.body为空,无法解析异步数据。本地模拟支付宝处理数据向服务器发送post请求,可以解析并获取数据的问题。
原因:
主要是支付宝post异步请求商户系统,返回处理结果headers中Content-Type为"application/x-www-form-urlencoded; text/html; charset=utf-8",由于bodyparse版本的问题无法解析。建议去掉“ text/html;”就可以获取post请求的信息。
解决方案:
app.use(function (req, res, next){ if (req.url === 'your_alipay_notify_url') { req.headers['content-type'] = 'application/x-www-form-urlencoded'; } next(); }); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended:true}))
资源参考:[url]https://segmentfault.com/q/1010000004122789[/url]
如果大家还有什么疑问欢迎在帖子下方追问吐槽