java微信支付“签名错误”之body为中文时
2015-12-17 17:18
639 查看
前景:2015年12月17日,使用微信APP支付6步骤走的第2步骤【统一下单】(https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3)。开发系统为window7 ,系统编码为gbk 。开发项目编码为utf-8,所有java文件编码为utf-8。MD5加密方法为网络上的。tomcat 编码 为 utf-8.
场景:签名认证参数中的body包含中文 1.使用文件编码为 utf-8的Java main方法测试 能正常运行。2.使用url 请求接口返回错误消息为 “签名错误”。
各种测试... ...
解决办法: 确认错误消息一定是“签名错误”。检查MD5 加密方法 中的 getBytes 方法参数 ,例如: byte[] btInput = s.getBytes(); 改为:byte[] btInput = s.getBytes("utf-8");
结果:接口请求也能正常返回 prepayId相关信息。
原因:getBytes()不传参数则默认以 系统编码进行解析 , 需要根据自身情况判断。
备注:如果是返回 “BODY 不是UTF-8编码” 或者 “不是XML文档” ,那就是真的编码不对了。具体可以交流至 528171154@qq.com
场景:签名认证参数中的body包含中文 1.使用文件编码为 utf-8的Java main方法测试 能正常运行。2.使用url 请求接口返回错误消息为 “签名错误”。
各种测试... ...
解决办法: 确认错误消息一定是“签名错误”。检查MD5 加密方法 中的 getBytes 方法参数 ,例如: byte[] btInput = s.getBytes(); 改为:byte[] btInput = s.getBytes("utf-8");
结果:接口请求也能正常返回 prepayId相关信息。
原因:getBytes()不传参数则默认以 系统编码进行解析 , 需要根据自身情况判断。
备注:如果是返回 “BODY 不是UTF-8编码” 或者 “不是XML文档” ,那就是真的编码不对了。具体可以交流至 528171154@qq.com
相关文章推荐
- 微信票选项目遇到的坑
- iPhone6 微信视频通话没有声音
- 微信企业号开发九:异步任务(全员覆盖成员)
- 微信支付窗口闪一下消失了
- 微信之父张小龙:APP产品经理必须要懂的30条原则
- 黑马公社(微信公众号:heimagongshe)
- 微信分享接口 keystore修改成具有 MD5手印
- Html5 手机wap开发、微信开发、APP开发的优缺点-创业者必知
- 微信公众帐号开发-消息及消息处理工具的封装
- 微信支付demo的使用笔记
- 微信公众平台开发
- 微信支付
- 微信支付:支付过期时间问题、302 问题、code 、openid
- 微信开发之使用java获取签名signature
- 微信大转盘实现 逻辑
- 微信HTML5抽奖活动的现实
- 如何保存微信的小视频 How to keep WeChat 'Sights'
- 微信公众平台Token验证
- H5活动页面遇到的坑+微信分享代码
- 微信分享自定义图片