【微信支付踩到的那些坑】1.Android 微信支付,body为中文字符,签名错误
2016-01-19 17:34
701 查看
问题:body自段设置成英文字符串的时候,签名成功,但是设置成中文字符的时候就签名错误
解决方法:改变拼接之后xml字符串格式 为"ISO8859-1"
解决方法:改变拼接之后xml字符串格式 为"ISO8859-1"
<span style="font-size:14px;">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", "你的notify_url")); // packageParams.add(new BasicNameValuePair("out_trade_no",genOutTradNo())); packageParams.add(new BasicNameValuePair("out_trade_no",ordercode)); packageParams.add(new BasicNameValuePair("spbill_create_ip","127.0.0.1")); packageParams.add(new BasicNameValuePair("total_fee", price)); packageParams.add(new BasicNameValuePair("trade_type", "APP")); String sign = genPackageSign(packageParams); packageParams.add(new BasicNameValuePair("sign", sign)); String xmlstring =toXml(packageParams); //改变拼接之后xml字符串格式 解决body为中文签名错误问题 return new String(xmlstring.toString().getBytes(), "ISO8859-1"); } catch (Exception e) { Log.e("genProductArgs", "genProductArgs fail, ex = " + e.getMessage()); return null; } }</span>
相关文章推荐
- php过滤微信表情符号
- Zabbix实现微信告警
- PHP实现微信网页授权开发教程
- 企业微信号开发搭建指南
- 微信公众号开发--接收与回复消息(Java)
- Zabbix实现微信告警
- Zabbix实现微信告警
- Zabbix实现微信告警
- android高仿微信表情输入与键盘输入详解-解决跳闪与表情切换问题
- 微信支付开发-Senparc.Weixin.MP详解
- shareSDK新浪和微信分享错误code=204
- shareSDK新浪和微信分享错误code=204
- 微信接口服务器配置时,token验证失败
- zabbix实现微信报警
- Zabbix实现微信告警
- java微信公众号开发第一步 公众号接入和access_token管理
- 微信测试号申请
- 微信开发 - 微信发送消息
- 微信摇一摇功能
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等