支付宝支付接口对接的总结

在对接支付宝支付接口时,遇到签名验证失败的问题,根源在于网站数据编码与支付宝接口编码不一致。网站实际编码为GB2312,而非配置的GBK。改为GBK编码发送请求,解决第一次验签问题。二次验签失败则是因为接口返回GBK数据,网站需GB2312解码。最终,切换到UTF-8编码接口解决问题。对接第三方接口要注意编码一致性,新项目建议使用UTF-8作为默认编码。
摘要由CSDN通过智能技术生成
        本周工作最大的困难还是支付宝支付接口的对接。

       

         遇到主要的问题是两个:1. 发送订单给支付宝接口,接口验证签名失败。 2.支付宝付款结束后,发送信息给网站接收方进行二次验签,还是签名过不了。验签的方式是RSA非对称加密的验证方式。


         遇到的两个问题都是一个原因:网站的数据编码和支付宝的支付接口的编码对不上。网站的编码是GBK编码,按理来说支付宝给出了编码的配置项,也的确配置成了GBK编码,结果数据发送过去签名过不了。这个问题绊了很久,我舅舅一眼看出来这是发送过去的数据到了支付宝接口的url里有少量乱码,推测出来是编码的问题。于是就在发送请求的时候,修改了编码,第一次验签通过了。

   

          后来我想清楚了问题出在了哪里:咱们的网站是gb2312的编码,不是gbk的编码。gb2312是gbk的一个子集。支付宝只支持UTF-8 和  GBK的 编码,不支持gb2312。所以在发送请求的时候把编码改成GBK就签名通过了。


          这个gb2312属于中国比较老的一种编码,可能是咱们的这一套网站源程序比较老的原因,编码就使用了gb2312.现在想换编码风险也比较大。 比较新的项目大多都是采用utf-8的编码格式,接口平台,服务器,网站都默认采用utf-8编码就不用担心这个编码的问题。


          这个编码的问题还是我第一次遇到,可以说是为以后的工作涨姿势了。


          第二次验签不过我也想清楚了原因:同样是编码问题。接口返回的数据是gbk编码,网站是gb2312编码ÿ

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值