微信支付开发-预支付id为空或者签名错误
2015-07-21 09:41
676 查看
<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[签名错误]]></return_msg></xml>之前在调试微信支付的“统一下单”接口的时候一直遇到“签名错误”。网上查找了各种资料,一般可能是以下几个问题,如果大家出现此错误的话不妨挨个排查,以免浪费时间走弯路。
1、参数名ASCII码未按升序排列,或者是生成MD5字符串没有toUpperCase转换为大写。这种问题解决方法很简单,到微信官网上用校验工具校验即可;
2、key错误。这里特别注意,公众平台的密钥和商户号的密钥是不一样的!!!微信支付审核成功之后会收到一封邮件,邮件中有appid 商户号,商户后台登录上号和密码,登录到商户后台:账户设置-安全设置-切换到API安全,下载证书,下面有一个api密匙,进去填写一个字符串 ,保存,后续两次签名都是用的这个手动设置的key!!!
3、app_id是公众号而非app支付的app_id,或者开放平台上面的账号没有支付权限,需开通;
4、
把我们生成的xml请求参数转为字节数组后,用“ISO8859-1”编码格式进行编码为字符串,就可以解决问题了。
return new String(sb2.toString().getBytes(), "ISO8859-1");
1、参数名ASCII码未按升序排列,或者是生成MD5字符串没有toUpperCase转换为大写。这种问题解决方法很简单,到微信官网上用校验工具校验即可;
2、key错误。这里特别注意,公众平台的密钥和商户号的密钥是不一样的!!!微信支付审核成功之后会收到一封邮件,邮件中有appid 商户号,商户后台登录上号和密码,登录到商户后台:账户设置-安全设置-切换到API安全,下载证书,下面有一个api密匙,进去填写一个字符串 ,保存,后续两次签名都是用的这个手动设置的key!!!
3、app_id是公众号而非app支付的app_id,或者开放平台上面的账号没有支付权限,需开通;
4、
把我们生成的xml请求参数转为字节数组后,用“ISO8859-1”编码格式进行编码为字符串,就可以解决问题了。
return new String(sb2.toString().getBytes(), "ISO8859-1");
相关文章推荐
- 微信支付-扫码支付备忘
- 微信开发——下载附件
- [荐]微信公众号营销推广系统,中小企业微信公众平台开发商佳选
- 微信公众平台开发:多客服
- django搭建微信后台——获取用户信息(7.20)
- 网页微信登录原理
- Andriod图片选择器(单选-头像,多选-朋友圈上传):library+sample
- 应用集成UMeng,分享二维码到微信朋友和朋友圈
- 检测微信用户是否已经关注此公共平台
- 关于微信支付报错
- 按键精灵2014微信群内给好友轮流发私信
- 可穿戴设备(CC2541)上微信(8)
- 使用GTK编写的hello world小程序
- django搭建微信公众号后台——自动回复(7.20)
- 利用SSH反向通道在本地调试微信公共号
- 如何方便地调试微信JS-SDK
- C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)
- 微信开发中文字交互项目详解
- php下基于百度BAE的微信SDK框架
- 微信支付出现的问题总结--不同域名进行授权解决方案