支付宝是直接返回字符串可以直接调起支付宝,在微信时返回数据不能调起微信,app调起返回error_code=-1,
查看微信支付官方文档:
Map<String, Object> map = new HashMap<String, Object>();
String prepay_id = data.get("prepay_id");
String nonceStr = WeixinPayUtil.getNonceStr();
map.put("appid", APPID);
map.put("partnerid", MCHID);
map.put("prepayid", prepay_id);
map.put("noncestr",nonceStr);
map.put("package", "Sign=WXPay");
long appTimeStamp = (System.currentTimeMillis() / 1000);
map.put("timestamp",appTimeStamp);
String signStr = WeixinPayUtil.getSignContent(map) + "&key=" + ENCODINGAESKEY;
logger.info("统一下单签名串,signStr:{}", signStr);
map.put("sign", MD5Util.MD5(signStr, "UTF-8").toUpperCase());
需要把字段改为一直,我刚开始想当然的以为命名遵守驼峰规则。