android 微信支付,body为中文字符,签名错误
2015-07-11 15:17
603 查看
[code]private String genProductArgs() { StringBuffer xml = new StringBuffer(); try { String nonceStr = genNonceStr(); xml.append("</xml>"); List<NameValuePair> packageParams = new LinkedList<NameValuePair>(); packageParams .add(new BasicNameValuePair("appid", Constants.APP_ID)); packageParams.add(new BasicNameValuePair("body", "测试")); packageParams .add(new BasicNameValuePair("mch_id", Constants.MCH_ID)); packageParams.add(new BasicNameValuePair("nonce_str", nonceStr)); packageParams.add(new BasicNameValuePair("notify_url", "http://121.40.35.3/test")); packageParams.add(new BasicNameValuePair("input_charset", "utf-8")); packageParams.add(new BasicNameValuePair("out_trade_no", genOutTradNo())); packageParams.add(new BasicNameValuePair("spbill_create_ip", "127.0.0.1")); packageParams.add(new BasicNameValuePair("total_fee", "1")); packageParams.add(new BasicNameValuePair("trade_type", "APP")); String sign = genPackageSign(packageParams); packageParams.add(new BasicNameValuePair("sign", sign)); String xmlstring = toXml(packageParams); return xmlstring; } catch (Exception e) { Log.e(TAG, "genProductArgs fail, ex = " + e.getMessage()); return null; } }
body自段设置成英文字符串的时候,签名成功,但是设置成中文字符的时候就签名错误。
解决方法:
[code]String xmlstring = toXml(packageParams); //改变拼接之后xml字符串格式 return new String(xmlstring.toString().getBytes(), "ISO8859-1");
找了好久才在这里看到http://www.oschina.net/question/1018597_238672,心中万马奔腾啊~~~
相关文章推荐
- 微信公众号开发之平台的选取------通过花生壳软件实现
- canvas礼花小程序
- 扫描二维码研究总结(高仿微信扫一扫,轻松实现定制扫描界面)
- 微信支付
- 微信二次开发接入,附带后台框架
- 公众号文章新增语音功能 让声音拉近粉丝的距离
- 本地调试微信 转的
- 微信智能硬件之CC3200设备跟服务器通信
- atitit.微信支付的教程文档 attilax总结
- atitit.微信支付的教程文档 attilax总结
- 微信公共平台消息回复类
- 自动回复微信消息
- redirect_uri参数错误解决方法 微信公众平台
- Android 高仿微信实时聊天 基于百度云推送
- jssdk调用微信支付时提示“商户签名错误”
- 微信开发:历程
- 第三方平台如何接受授权公众号取消授权事件
- 微信网页第三方登陆 获取用户信息 代码
- 微信网页第三方登录原理
- 关于微信支付失败,在参数正确的情况下