jsapi微信底层就不过多描述了,主要记录一下,查了很多资料,发现微信返回参数不能直接返给前端使用,还需要进行一次签名,不然前台就会提示签名错误
// dic微信返回的
Map<String, String> reqData = new HashMap<>();
String timeStamp = String.valueOf(WXPayUtil.getCurrentTimestamp());
String prepay_id = "prepay_id=" + dic.get("prepay_id");
reqData.put("appId", dic.get("appid"));
reqData.put("timeStamp", timeStamp);
reqData.put("nonceStr", dic.get("nonce_str"));
reqData.put("package", prepay_id);
reqData.put("signType", WXPayConstants.MD5);
使用MD5进行签名
String paySign = WXPayUtil.generateSignature(reqData, "微信商户号的key", WXPayConstants.SignType.MD5);
返回前端参数
Map<String, String> data = new HashMap<>();
data.put("appId", dic.get("appid"));
data.put("timeStamp", timeStamp);
data.put("nonceStr", dic.get("nonce_str"));
data.put("package", prepay_id);
data.put("paySign", paySign);
data.put("signType", WXPayConstants.MD5);
data.put("mch_id", dic.get("mch_id"));
data.put("nvcOrderNumber", dic.get("out_trade_no"));
前端调起支付
描述比较简单,只是记录,仅供参考
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。