调取统一下单接口时,金额参数total_fee参数单位为分,不允许有小数点
当调取完微信支付统一下单接口后,会返回xml结果,把xml解析为map,再次对其结果进行md5加密生成sign,但是,参数必须是按照 参数名ASCII码从小到大排序(字典序) ,并且参数名都要小写,举例:
String xmlStr = HttpUtil.post(payUrl, paramsxml);
Map<String, String> map = SNUtil.getXmlToMap(xmlStr,apiSecret);
if (map.get("return_code").equalsIgnoreCase("SUCCESS")) {
if (map.get("result_code").equalsIgnoreCase("SUCCESS")) {
packageParamstwo.put("appid", map.get("appid"));
packageParamstwo.put("noncestr", map.get("nonce_str"));
packageParamstwo.put("package", "Sign=WXPay");
packageParamstwo.put("partnerid", map.get("mch_id"));
packageParamstwo.put("prepayid", map.get("prepay_id"));
packageParamstwo.put("timestamp", SNUtil.getTimeStamp());
// packageParamstwo.put("signType", "MD5");
packageParamstwo.put("sign", SNUtil.getSign(mch_id, packageParamstwo,apiSecret));
return CommonResult.success(packageParamstwo);
} else {
return CommonResult.failed(map.get("return_msg"));
}
}
- 回调需要返回xml 才能不让微信持续回调,格式:
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>