支付宝支付接口对接的总结
来源:互联网 发布:手机办公必备软件 编辑:程序博客网 时间:2024/04/30 06:49
遇到主要的问题是两个:1. 发送订单给支付宝接口,接口验证签名失败。 2.支付宝付款结束后,发送信息给网站接收方进行二次验签,还是签名过不了。验签的方式是RSA非对称加密的验证方式。
遇到的两个问题都是一个原因:网站的数据编码和支付宝的支付接口的编码对不上。网站的编码是GBK编码,按理来说支付宝给出了编码的配置项,也的确配置成了GBK编码,结果数据发送过去签名过不了。这个问题绊了很久,我舅舅一眼看出来这是发送过去的数据到了支付宝接口的url里有少量乱码,推测出来是编码的问题。于是就在发送请求的时候,修改了编码,第一次验签通过了。
后来我想清楚了问题出在了哪里:咱们的网站是gb2312的编码,不是gbk的编码。gb2312是gbk的一个子集。支付宝只支持UTF-8 和 GBK的 编码,不支持gb2312。所以在发送请求的时候把编码改成GBK就签名通过了。
这个gb2312属于中国比较老的一种编码,可能是咱们的这一套网站源程序比较老的原因,编码就使用了gb2312.现在想换编码风险也比较大。 比较新的项目大多都是采用utf-8的编码格式,接口平台,服务器,网站都默认采用utf-8编码就不用担心这个编码的问题。
这个编码的问题还是我第一次遇到,可以说是为以后的工作涨姿势了。
第二次验签不过我也想清楚了原因:同样是编码问题。接口返回的数据是gbk编码,网站是gb2312编码,编码问题让这个二次验签通过不了。最后是主管乾哥帮我解决了这个问题:抛弃支付宝的GBK编码接口,使用utf-8的接口。 一次验签和二次验签都进行顺利。
本周的经验可以总结成以下几条:
1.对接第三方接口的时候一定要确认好编码,以及数据和类型等 是否正确。最好还是使用utf-8的编码。
2. 当从头开始一个新项目的时候, 编码最好还是选择utf-8这种主流的编码格式。服务器,数据库,web项目,第三方接口都使用默认的utf-8编码,中间的卡壳问题就会减少。虽然utf-8的请求数据包会稍大一些,但现在的网络带宽也不是十年前的网络带宽了。
3.遇到问题多沟通多交流, 感谢主管,我的舅舅还有以前的同事给我在这个问题上的帮助。
关于编码的问题可以戳资料:http://www.cnblogs.com/ahulovey/archive/2010/08/20/1804327.html
- 支付宝支付接口对接的总结
- 对接支付宝支付接口
- 支付宝接口对接
- 新浪支付接口对接的总结
- 新浪支付接口对接的总结
- (转载)对接【支付宝】支付接口
- 支付宝”电脑网站支付“接口对接
- 订单支付功能对接支付宝支付接口
- 对接支付宝支付
- Ping++ 支付接口对接
- Ping++ 支付接口对接
- 对接新浪支付总结
- 支付宝:即时到账接口对接
- thinkphp3.2.3 成功对接支付宝接口
- thinkphp3.2.3 成功对接支付宝接口
- 对接支付宝支付接口开发详细步骤
- 支付宝国际支付 对接
- Android支付宝支付对接
- 使用FastReport-v5.3.17把fp3文件转为excel文件
- modal
- java读取大文件(分割)
- RakNet framework
- Jenkins环境搭建
- 支付宝支付接口对接的总结
- 获取资源管理器路径
- 安卓简单开发-Edittext限制输入文本
- ubuntu中拷贝文件到当前文件夹
- android预置apk,覆盖原生apk总结
- Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson vs. JSONP
- EventBus使用详解
- Intent的使用
- Java知识图谱收集整理