首先这个图很重要,严格按照图上流程开发
开发文档中下载对应DEMO,使用其中代码,将配置信息改成自己的
代码就不一一贴出,列出一下主要注意点,一定能帮到你
大坑小坑
整个过程中存在4个签名,容易用错
1. 统一下单请求参数sign 签名类型:默认为MD5,支持HMAC-SHA256和MD5
2. 统一下单接口返回参数sign 签名类型:系统返回,无关开发者
3. wx.chooseWXPay调起支付用到的paySign 签名类型:和统一下单一致
4. wx.config 中的signature 签名类型:sha1
以上四个签名各不相同
随机字符串:共存在6处
统一下单请求参数:
统一下单返回参数:
生成paySign签名参数:
wx.config参数:
signature签名参数:
wx.chooseWXPay参数:
只有统一下单请求参数自己生成,其余均使用统一下单返回的nonce_str
时间戳:4处
paySign签名参数timeStamp: 系统生成
wx.config参数timestamp:
生成签名signatrue的参数timestamp:
Wx.chooseWXPay参数timestamp: 和config使用同一个
4处时间戳均使用同一个
过程中遇到的错误有:
1.签名验证失败
此问题范围较大,仔细阅读开发文档,检查生成签名的参数大小写以及参数来源,文档中对参数来源有的没有具体说明,这就要自行百度了
2. 缺少参数total_fee
这个问题一般并不是真正缺少total_fee参数,也不一定是缺少其他参数,其最大的原因可能是某些参数写错导致
3. 当前页面的URL未注册
这个问题由于商户平台配置的支付授权目录不正确,如果走到这一步,基本说明代码部分没有问题了,支付授权目录是调用支付API接口的页面所在的最后一级目录,以/ 结束,如果项目是从springMVC跳转到前台,则需要写访问后台控制器的路径的前一级目录