那些年,集成支付宝遇到的坑

蹲街弑〆低调 提交于 2019-11-29 01:04:20

下面开始填坑

第一个坑:缺少相关的库文件,比如下面

很明显,有经验的一看,缺少一个关键的库,sqlite3.tbd,导入相关库即可,

解决办法,如下图

以此经验,如果还爆出类似的错误,一定是缺少相关的库,导入相关库就oK了


第二个坑:最常遇见的坑,最烦人的坑!

#import <openssl/rsa.h>   这个头文件找不到!!!打开SDK查找这个头文件明明在里面,Xcode却说找不到,具体问题如下图:

下面说说我是解决这个的时候的思路

之前我是直接把整个SDK所有的文件拖进了Xcode工程,然后commond+B编译一下,看有没有缺少支付宝所依赖的库文件,发现没有,之后爆出这个问题缺少头文件,那么这时可以肯定是编译头文件的路径错误,我们可以仔细去看看支付宝官方的示例代码,发现它把SDK直接放在了工程下啦!而不是放在工程的某一路径文件下面!于是我参照他的做法,也把SDK直接放到自己的工程下面,如下图

操作完上述步骤之后,点击工程名,来到下面的界面继续按照图上的箭头继续操作

点击上图红色框的右下角的+,添加$(PROJECT_DIR)/Alipay,表示吧SDK放到当前工程下,不是工程文件的某一路径下。然后再commond+B编译一下,发现这个问题解决了有木有!!!总算解决了这个棘手的问题!


第三个坑:所有环境都搭建好了,在真机支付时,却提示支付失败!心累!问题一波未平一波又起!具体问题如下图

报错ALI59!!

仔细检查代码,又去百度了,发现竟然商品编号我填入了中文,我的天!

要解决这个问题,吧商品编号改为英文的就好了,

好啦,现在上班时间就写到这吧,如有错误,请留言!欢迎大家补充,或者吐槽一下自己在集成支付宝遇到的各种坑!

下次写写微信支付的坑!


(2016 4 26)今天突然发现支付宝相关参数填错了,也会报这个错误,故而在这里更新一下,记录。


第四个坑:支付宝重复支付

如下图

报了一个ALI38869

这个原因是:重复支付!!在程序里的体现是:订单号固定不变。而实际情况是要变化的!

程序错误示例如下

订单号应该是变化的,而不是写死的,这里只是做测试,大家在实际项目中不可这么写

那解决办法就很容易了,吧订单号(tradeNO)随便修改一下就好了,和前面不相同即可!


第五个坑:支付宝回调失败的坑

有时候当我们支付完毕后,不需要留在支付宝,而是回到原来所在的 APP,但是突然遇到不能回调原来APP界面,显示的是一片白色的界面。比如,用户支付成功支付后,或者取消支付的时候,都应回到原来的APP,但是我这边却显示的是一片白色的界面,如下图

当我点击取消(红色箭头所指的叉),或者支付完成应该回到原来的界面。这是什么原因了?我明明设置了URLschem,为什么还是不行?后来我恍然大悟,是不是URLschem设置成了中文,后来我果然猜对了,URLschem不能设置成中文!!!改成英文的,URLschem在下图设置

好了,修改成英文的就好了

支付宝常见的回调结果

在下面这个方法进行回调结果的处理

比如,如下图

当用户支付成功或者取消支付的时候,想要隐藏这个界面要怎么办了?

我的处理方法是:发通知让相应的控制器去影藏这个界面,处理方法如下:

好啦,快下班了,今天写到这里,有问题会持续更新的!!!


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!