填坑系列: nodejs后台在支付宝异步通知时获取到的参数为空(使用koa模块)
来源:互联网 发布:软件验收专家意见 编辑:程序博客网 时间:2024/06/08 15:46
填坑系列: nodejs后台在支付宝异步通知时获取到的参数为空(使用koa模块)
最近公司在开发一个涉及金额交易的app, 需要用到 支付宝与微信支付
, 在写支付宝支付后台接口时遇到一个大坑, 在这里记录一下, 方便需要的人及时解决问题.
情景如下
开发环境 路由器模块 javascript标准 nodejs koa ECMAScript6
问题
付款成功后支付宝异步通知到达了我们的服务器,但是接收到的参数为空.
原因
支付宝使用的是非标准协议, content-type
的使用的是 application/x-www-form-urlencoded; text/html; charset=UTF-8
, 进而导致 koa
的解析模块 koa-bodyparser
无法正常解析, 支付宝真是挖的一手好坑, 折腾了我几个小时才找到原因并解决.
解决方法
在 koa-bodyparser
中间件前手动修改 content-type
为标准模式
var koa = require('koa');var router = require('./router');var app = koa();app.use(function*(next) { if (this.request.method !== 'GET' && this.request.path === '支付宝异步通知路径') { this.request.headers['content-type'] = 'application/x-www-form-urlencoded'; } yield next;});app.use(router.routes());app.listen(80, function(){ console.log("App is running on 80");});
0 0
- 填坑系列: nodejs后台在支付宝异步通知时获取到的参数为空(使用koa模块)
- 当从后台唤醒activity时,getIntent() 无法获取到最新的值 或者为空
- 关于支付宝异步通知的状态
- 支付宝接口使用文档说明 支付宝异步通知
- 支付宝接口使用文档说明 支付宝异步通知
- 支付宝接口使用文档说明 支付宝异步通知
- 支付宝接口使用文档说明 支付宝异步通知
- Content后台的获取为什么为空
- 使用OpenSSL做RSA签名验证 支付宝移动快捷支付 的服务器异步通知
- 使用OpenSSL做RSA签名验证 支付宝移动快捷支付 的服务器异步通知
- Spring MVC传递URL到后台参数为空
- 使用findViewById获取到的返回值为空
- 支付宝异步通知 asp
- 支付宝异步通知处理
- 支付宝异步通知原理
- 通过javaScript异步提交到后台的空值问题
- 提交表单时servlet接收到的参数为空
- 支付宝支付成功,没有异步通知
- 进程线程调度 FCFS
- PHP学习练手(七)
- WMSYS.WM_CONCAT 函數的用法
- leetcode:19 Remove Nth Node From End of List-每日编程第三十六题
- iOS开发——图形编程OC篇&(一)CALayer介绍与基本使用
- 填坑系列: nodejs后台在支付宝异步通知时获取到的参数为空(使用koa模块)
- 关于JAVA中的会话管理
- 你真的懂“Google搜索”吗?
- 日志系统之基于Zookeeper的分布式协同设计
- 一个简单的执行程序的GNU automake自动生成Makefile的方法及案例
- UITextField监控输入文字变化
- Java_List Set Map_集合框架 泛型
- iOS开发——图形编程OC篇&(二)CALayer自定义图层
- SpringMVC入门