微信小程序-支付代码
由于前端代码简洁,就不拷贝整个目录了,这里直接放在Index目录了(utils是前端小程序需要用到的Md5加密工具) 后端代码目录为wx-paymoney-java
对统一下单和退款写了测试类
关于项目踩坑点
1.获取prepay_id
(1)参数拼接顺序是按Ascii码升序,我的代码功能点不注重这块 所以写固定按26字母排序拼接的。
(2)报签名错误,排除方式:故意输错一个xml节点,发现能正常返回错误提示信息。
(3)通过校验工具https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1 将程序里请求的入参xml放进去校验直至通过。不通过主要原因:乱码、字段排序错误、或者拼接加密(详见getSign方法)的字段个数(生成sign时一定要加上appid和key)和xml结点中的个数不一致(xml拼哪些字段详见官网统一下单接口)。 注:校验工具只是对一些格式上的校验,不进行里面内容的校验!!!
(4)签名错误,校验通过发现还报这个错误,此时你得去看你的商户号和小程序appId以及商户密钥是否都关联上!!因为我遇到的坑,商户Id有N个,跟小程序appId绑定的是商户IdX,结果密钥设置在了商户IdY上了。