微信调起jssdk一闪而过
微信支付一闪而过的问题:
1.js支付统一下单接口后端给前端预支付id等数据,需进行封装格式如下:
{ "appId":"wx2421b1c4370ec43b", //公众号名称,由商户传入 "timeStamp":"1395712654", //时间戳,自1970年以来的秒数 "nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串 "package":"prepay_id=u802345jgfjsdfgsdg888", "signType":"MD5", //微信签名方式: "paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名 }
封装示例代码如下:
private ContextResult<Object> 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白名单