微信支付一闪而过的问题:
1.js支付统一下单接口后端给前端预支付id等数据,需进行封装格式如下:
{
“appId”:“wx2421b1c4370ec43b”, //公众号名称,由商户传入
“timeStamp”:“1395712654”, //时间戳,自1970年以来的秒数
“nonceStr”:“e61463f8efa94090b1f366cccfbbb444”, //随机串
“package”:“prepay_id=u802345jgfjsdfgsdg888”,
“signType”:“MD5”, //微信签名方式:
“paySign”:“70EA570631E4BB79628FBCA90534C63FF7FADD89” //微信签名
}
封装代码如下:
private ContextResult payInfo(String prepay_id) {
Config config = new Config();
String noncstr = UUID.randomUUID().toString();
String timeStamp = String.valueOf(System.currentTimeMillis() / 1000);
Map<String, String> map = new HashMap<>();
map.put(“appId”, config.getAppID());
map.put(“timeStamp”, timeStamp);
map.put(“nonceStr”, noncstr.substring(0, 20));
map.put(“package”, “prepay_id=” + prepay_id);
map.put(“signType”, “MD5”);
try {
// 生成的微信签名
String paysign = WXPayUtil.generateSignature(map, config.getKey(), WXPayConstants.SignType.MD5);
map.put(“paySign”, paysign);
return ResultEntity.success(map);
} catch (Exception e) {
e.printStackTrace();
return ResultEntity.fail(e.getMessage());
}
}
2.商户后台配置JS授权目录,配置为前端的域名,生效时间长则十分钟。注意域名规则
3.公众号的JS安全接口配置前端的域名地址和IP白名单