Android实现支付宝支付遇到的问题记录--主要是和服务器的合作上

一、已解决
1、客户端需要处理的很简单:跟服务器接口要带有签名的商品信息(即支付宝api需要的入参)
2、服务器的联合排查工作(由于服务器工作较忙,需要联合定位,且自己对php不了解,过程比较头疼和耗时),主要出现两个问题:
1)ALI64
     解决:服务器返回的字符串中sign的值需要做Unicode(utf-8)的转码,不论开发语言是否是utf-8,均要做,出来的视觉效果上就是保证sign中是没有斜杠、加号之类的。
     此外,要注意的是订单信息的字符串拼接没有要求定序,但是拼接的顺序和待签名的凭借顺序必须是一致的,最直接的就是拿拼接出来的字符串变量作为待签名字符串拿去获取签名即可;字符串中不要遗忘了双引号;
2)支付成功,但是服务器异步通知接收不到
服务器开发给的url是:http://域名/api.php?op=alipay_android
前提是核对了所有开发文档,且客户端支付成功,可就是接收不到,并且保证地址也公网地址,再百度上找到这样一段文字:
解决:服务端提供的url格式换了下,如下:
http://域名/system/modules/3g/dongyang.php
调试成功了!!!
ps:上述”域名“只要是符合公网地址即可,可以使ip等
二、此外还存在个别问题没有解决:
上述实践中,传给支付宝的数据中不包含“return_url”,尝试了下加了return_url,并给其赋值,支付成功后,并不会获取到支付成功的9000,而是停留在支付宝界面上,并提示ali203,文字描述基本上是:支付已提交,正在处理;然后就没有反应了,右上角只有一个退出按钮,点击后收到的结果码就是6001(用户中途取消),而实际上钱已经支付成功了。尚不知道怎么破!只能先不传这个参数啦。

猜你喜欢

转载自blog.csdn.net/Dyan_csdn/article/details/51259738
今日推荐