最近项目开发用到了2个支付宝接口,就在这里把我字节调试支付宝的一些经验写一写吧。
1、手机网站支付
这次由于做的一个项目是html5的做手机app,支付这块就选择了手机网站支付。刚开始调试一直遇到 ILLEGAL_SIGN 也就是签名错误,一直到后面才发现时编码不统一导致。同学们调试的时候可以先在下载的demo里进行调试。那样可以更快的让你熟悉支付宝的调试工作。
2、移动支付
由于支付宝的手机快捷支付接口停用。导致项目不得不更改支付宝接口。这次更改选用了移动支付。在移动支付时考虑到安全性,rsa加密是通过服务端加密然后返回给客户端,客户端通过返回的参数对支付宝发起支付请求。在这块遇到的问题就是回掉的时候不走程序,后来打开日志才发现是sign加密的结果不一致(也就是支付宝返回的sign 和代码里面接口返回 $_POST 参数进行sign加密后的值不一致)。于是就开始了问题的查找,这里建议大家调试的时候打开日志。这个问题一直找不出什么原因造成,后来就咨询了支付宝的技术客服。原来是我的支付宝公钥的问题。在我开发时,我以为商户私钥传到支付宝上生成的支付宝公钥要拿到本地使用的,我就给替换了demo里的支付宝公钥的值,结果导致了这个问题。支付宝公钥是不能改变的,直接用demo的那个就可以啦。一定要切记。
支付宝技术客服挺给力的,小伙伴们实在是不懂的可以联系支付宝客服,他们尽量提供技术帮助的,能少走很多弯路。
本文出自 “php工程师的博客” 博客,谢绝转载!
原文地址:http://340411305.blog.51cto.com/7627178/1709679