下面开始填坑
第一个坑:缺少相关的库文件,比如下面
很明显,有经验的一看,缺少一个关键的库,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在下图设置
好了,修改成英文的就好了
支付宝常见的回调结果
在下面这个方法进行回调结果的处理
比如,如下图
当用户支付成功或者取消支付的时候,想要隐藏这个界面要怎么办了?
我的处理方法是:发通知让相应的控制器去影藏这个界面,处理方法如下:
好啦,快下班了,今天写到这里,有问题会持续更新的!!!
来源:oschina
链接:https://my.oschina.net/u/2332019/blog/651214