java提供接口给app微信支付遇到得坑

调取统一下单接口时,金额参数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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值