收藏
回答

JSAPI同一下单签名错误

进行微信商家H5支付操作。 首先调用同一下单接口:https://api.mch.weixin.qq.com/pay/unifiedorder我的签名加密算法是这样的: 加密参数有:

Map<String, String> map = Maps.newHashMap();

map.put("appid", PayUtil.appid);

map.put("mch_id", PayUtil.mch_id);

map.put("trade_type", "JSAPI");

map.put("notify_url", "https://www.xttel.cn/tieta/f/getmsg/home");

map.put("spbill_create_ip", "221.192.179.207");

String sign = PayUtil.signature(map, PayUtil.key);//这个key是API密码,这个肯定没错,32为的字符,加密是MD5

//访问接口传的参数是

String xml = "<xml>" +

"<appid><![CDATA[" + PayUtil.appid + "]]></appid>" +

"<mch_id><![CDATA[" + PayUtil.mch_id + "]]></mch_id>" +

"<nonce_str><![CDATA[" + "1234567890" + "]]></nonce_str>" +

"<sign><![CDATA[" + sign + "]]></sign>" +

"<body><![CDATA[" + "铁塔发电商城-发电服务" + "]]></body>" +

"<out_trade_no><![CDATA[" + orderid + "]]></out_trade_no>" +

"<total_fee><![CDATA[" + money + "]]></total_fee>" +

"<spbill_create_ip><![CDATA[" + cip + "]]></spbill_create_ip>" +

"<notify_url><![CDATA[" + PayUtil.notify_url + "]]></notify_url>" +

"<trade_type><![CDATA[" + PayUtil.trade_type + "]]></trade_type>" +

"</xml>";

//然后返回结果是: <xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[签名错误]]></return_msg></xml>

那个签名sign我算出来的和微信工具算出来的一模一样, 我敢觉可能存在的错误是我算签名的时候用的到的参数可能不对,需要给位高手大神指点,我已经弄了快一天了,急急急急!!! API密码我也改了两次了……(网上说,改改可能会好……)


最后一次编辑于  2019-04-17
回答关注问题邀请回答
收藏

2 个回答

  • 2019-05-07

    请问解决了吗?我也遇到同样问题

    2019-05-07
    有用
    回复
  • 孙晓东
    孙晓东
    2019-04-17

    已经解决了,必选的参数都得用于sign生成算法

    2019-04-17
    有用
    回复
登录 后发表内容