不知道是不是一样的问题,可参照我在下面这个帖子中的回复。向微信发送请求的时候, 请求报文要转为ISO8859-1 https://developers.weixin.qq.com/community/develop/doc/0006a4774b89a8fdd7662429751800?_at=1559331547783
小程序统一下单签名错误我的小程序已经发布为体验版本了(还没有审核上线),后台已经发布到外网并且已经配置好域名。用商户号登录进去商户平台已经重置过一次密码了,然后拷贝的形式做key按照文档生成签名,调用下单支付的时候还是报签名错误,商户平台还需要配置什么权限吗?已经排查了两天了,求指点 调用统一下单接口的返回: [图片] 使用校验工具的结果: [图片]
2019-12-20可参照我在下面这个帖子中的回复。向微信发送请求的时候, 请求报文要转为ISO8859-1 https://developers.weixin.qq.com/community/develop/doc/0006a4774b89a8fdd7662429751800?_at=1559331547783
小程序统一下单 签名错误服务端调用统一下单接口:https://api.mch.weixin.qq.com/pay/unifiedorder 签名结果与官方签名工具一致:https://pay.weixin.qq.com/wiki/tools/signverify/ 但显示签名错误。 同样的代码用另一个商户和小程序主体是正常的,请问如何解决?
2019-12-20可参照我在下面这个帖子中的回复。向微信发送请求的时候, 请求报文要转为ISO8859-1 https://developers.weixin.qq.com/community/develop/doc/0006a4774b89a8fdd7662429751800?_at=1559331547783
小程序 统一下单 签名错误如题:我直接上代码,为什么总是签名错误,所有官方提供的工具都验证通过了 <xml> <appid>wx4a968dc5043b8753</appid> <body>eee</body> <mch_id>1527704901</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <notify_url>notify_url>https://www.xiankuaida.net/mobile/weixin/notify.php</notify_url>/notify_url> <openid>onsSW5LpDMhFADe7Zt90HSk9SNz4</openid> <out_trade_no>20150806125346</out_trade_no> <spbill_create_ip>59.46.169.162</spbill_create_ip> <total_fee>1</total_fee> <trade_type>JSAPI</trade_type> <sign>C7B748D38EF5DBCFB9C21871D035D986</sign> </xml> <xml><return_code><![CDATA[FAIL]]></return_code> <return_msg><![CDATA[签名错误]]></return_msg> </xml>
2019-12-20有可能是body为中文的问题,可参照我在下面这个帖子中的回复。向微信发送请求的时候, 请求报文要转为ISO8859-1 https://developers.weixin.qq.com/community/develop/doc/0006a4774b89a8fdd7662429751800?_at=1559331547783
微信支付统一下单 签名错误微信支付 统一下单 签名错误,使用微信官方工具验证也成功 可以确定不是参数错误,使用另外一个小程序的AppId、mchid、AppKey后能不报错
2019-12-20有可能是body为中文的问题,可参照我在下面这个帖子中的回复。向微信发送请求的时候, 请求报文要转为ISO8859-1 https://developers.weixin.qq.com/community/develop/doc/0006a4774b89a8fdd7662429751800?_at=1559331547783
微信支付 统一下单 签名错误微信支付 统一下单 签名错误,使用微信官方工具验证也成功 WXConfig config=new WXConfig(); WXPay wxPay=new WXPay(config); System.out.println(config.getKey()); SortedMap<String, String> reqData =new TreeMap<String, String>(); reqData.put("appid", config.getAppID()); reqData.put("mch_id", config.getMchID()); reqData.put("nonce_str", WXPayUtil.generateNonceStr()); reqData.put("body","test"); reqData.put("out_trade_no",new Date().getTime()+""); reqData.put("total_fee","1"); reqData.put("spbill_create_ip",config.getIp()); reqData.put("notify_url",config.getNotifyUrl()); reqData.put("trade_type","APP"); String sign = WXPayUtil.generateSignature(reqData, config.getKey(), WXPayConstants.SignType.HMACSHA256); reqData.put("sign", sign); System.out.println(reqData); Map<String, String> resp = wxPay.unifiedOrder(reqData); System.out.println(resp);
2019-12-20有可能是body为中文的问题,可参照我在下面这个帖子中的回复。向微信发送请求的时候, 请求报文要转为ISO8859-1 https://developers.weixin.qq.com/community/develop/doc/0006a4774b89a8fdd7662429751800?_at=1559331547783
微信支付后台统一下单签名错误[图片] 返回信息 <xml> <return_code><![CDATA[FAIL]]></return_code> <return_msg><![CDATA[签名错误]]></return_msg> </xml> https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1 官方验证 已无能为力,求大神们拯救!!!!!!!!!!!
2019-12-20我是在做微信小程序调用支付的时候,遇到的问题。本地是springboot java的代码,没有用到微信提供的java的sdk,xml是自己拼装的。 主体思路就是:微信的编码为ISO8859-1。即传给微信的必须是ISO8859-1的编码的数据,微信返回的同样也是ISO8859-1编码的数据。因此,无论本地是UTF-8还是其他编码,在发送的时候,都要改成ISO8859-1的编码数据。 下面我的解决步骤,为这个问题,我搞了好久, 注意:body字段直接填中文,不要像问题中描述的那样,先进行编码转换。不必如此 分三步: 1)保证程序中的中文默认为UTF-8的编码。可通过如下代码测试: new String("中文".getBytes("UTF-8"), "UTF-8").equals("中文") 为true,说明当前中文默认为UTF-8的编码 2)利用JDK自带的MessageDigest进行MD5签名加密,代码如下: privatestaticString MD5(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; try MessageDigest mdInst = MessageDigest.getInstance"MD5"); mdInst.update(s.getBytes("UTF-8")); byte[] md = mdInst.digest(); int = md.length charstr[] = newchar[ * ]; int k = forint = ; < ; ++) { byte byte0 = md[]; str[k++] = hexDigits[byte0 >>> & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } returnnewStringstr); } catch (Exception e) { e.printStackTrace(); returnnull } 3)在提交报文到微信统一下单api的地方,将请求参数的编码改为"ISO8859-1"。同样,返回的报文体,用ISO8859-1解码,将其转为UTF-8,才可以看到返回的中文不乱码。代码如下 // 生成统一下单api的请求报文. 其中sign为利用2)中的MD5方法生成的MD5码 StringBuilder request = newStringBuilder(); request.append(""); for (Map.Entry entry : paraMap.entrySet()) { request.append("<" + entry.getKey() + ">" + entry.getValue()toString() + ""); } request.append("" + sign + ""); request.append(""); // 将报文体转为ISO8859-1String requestParam = newString(requesttoString().getBytes("UTF-8", "ISO8859-1"); // 构造请求头 HttpHeaders headers = newHttpHeaders(); headers.setContentType(MediaType.APPLICATION_XML); HttpEntity httpEntity = newHttpEntityString>(requestParam, headers); // 利用RestTemplate发送POST请求 RestTemplate restTemplate = newRestTemplate(); ResponseEntity httpResponse = restTemplate.postForEntity("https://api.mch.weixin.qq.com/pay/unifiedorder", httpEntity, String.class; String responseBody = nulltry { // 将响应的报文,有ISO8859-1转为UTF-8 responseBody = newString(httpResponsegetBody().getBytes("ISO8859-1", "utf-8"); logger.info("微信统一下单出参:" + responseBody); } catch (Exception e) { logger.error("微信统一下单失败", e); }
【微信支付】统一下单后台接口 body字段为中文 会返回签名错误该怎么解决啊?统一下单后台接口 body字段为中文 会返回签名错误该怎么解决啊? 输入字段body为中文时 [图片] 返回数据为 [图片] 签名错误 给body字段编码后 [图片] 签名是成功了 但是支付数据中备注是 ??? 中文编程乱码了 有大神知道该怎么解决吗???谢谢了!!!
2019-12-20我已经解决了,可参照我在下面这个帖子中的回复。向微信发送请求的时候, 请求报文要转为ISO8859-1 https://developers.weixin.qq.com/community/develop/doc/0006a4774b89a8fdd7662429751800?_at=1559331547783
微信小程序统一下单,签名错误,请问如何处理<xml> <appid>333333333</appid> <body>商城-测试商品</body> <mch_id>1511013151</mch_id> <nonce_str>463522714640538891</nonce_str> <notify_url>https://www.baidu.com</notify_url> <openid>ou7E65LomdmIvPcuoqd98B23Zag00</openid> <out_trade_no>36190830133759067</out_trade_no> <sign>84FFC9E56695DC0C043D0BBE</sign> <spbill_create_ip>123.12.12.123</spbill_create_ip> <total_fee>100</total_fee> <trade_type>JSAPI</trade_type> </xml>
2019-12-15