调用微信支付坑爹之处:
1.文档地址:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
文档中的返回结果和真实调用结果不一致;
真实结果:
<xml>
<appid>xczxczc</appid>//微信小程序id
<noncestr>adasda</noncestr>//随机字符串
<package>Sign=WXPay</package>
<partnerid>12123131</partnerid>
<prepayid>asdasdsadas</prepayid>//预支付id
<sign>asdasda</sign>//签名(并非返给小程序时所使用签名)
<timestamp>1536808143</timestamp>//时间戳
</xml>
2.返回给小程序前段时签名不是调用统一下单接口返回的sign,而需要自己再次创建签名,参数如下:
PrepayIdRequestHandler prepayReqHandler = new PrepayIdRequestHandler(request, response);// 获取prepayid的请求类 prepayReqHandler.setParameter("appId", dto.getAppId()); prepayReqHandler.setParameter("timeStamp", dto.getTimestamp()); prepayReqHandler.setParameter("nonceStr", dto.getNonceStr()); prepayReqHandler.setParameter("package", "prepay_id=" + dto.getPrepayId()); prepayReqHandler.setParameter("signType", "MD5"); prepayReqHandler.createSHA1Sign(wxAppSecret);