ios 支付宝开发

以前没做过支付,觉得很难,有经验后,发现其实真正的难点在Java端,关联数据业务逻辑比较麻烦,前端就比较简单。首先,你们公司要去申请获得支付的SDK。获得支付SDK,那么接下来就可以进行移动开发了。

一、工程配置

1、导入静态文件libssl.a​和libcrypto.a(这个是在支付SDK里面)

2、建立文件夹,导入支付需要的类库AlipaySDK.bundle​、AlipaySDK.framework、openssl(文件夹)、Util(文件夹)、APAuthV2Info.h/.m、Order.h/.m文件

3、在Build​ settings 里面搜索search ,在Search Path 里面找到Header Search Path 填写openssl文件夹的路径:$(SRCROOT)/项目名

4、注意include”“和include<>的区别,一边编译都会出现#include ​这个文件找不到,那么就是路径问题咯,那你在Header Search Path 填写openssl文件夹的路径就要填写完整。

5、在需要支付的地方导入​AlipaySDK.bundle​、和APAuthV2Info.h、Order.h文件即可

6、一般都会有唯一分配一个partner​​和seller和privateKey三把钥匙 后端还要指定一个回调的URL

7、app需要注册scheme,在plist文件定义URLtypes​

8、改变编译方式:language standand library :libstic++(GUN standand library)

9.兼容iOS9.0不回调客户端问题,报错:
-canOpenURL: failed for URL
原因很简单:app没有添加是否允许访问支付宝客户端的白名单,没有添加,默认就不允许访问,直接跳转到支付宝网页进行支付,解决如下,在plist文件增加

常见的白名单如下:

原因解释如下:
这里写图片描述

10、添加系统依赖库
ios 支付宝开发_第1张图片

​二、可以开始支付代码了
1、订单对象

2、保持不变化的代码
ios 支付宝开发_第2张图片
3、定义Scheme,在plish文件中增加URL Type属性
这里写图片描述
4、注册应用并携带私钥签名
ios 支付宝开发_第3张图片
5、支付状态的block
ios 支付宝开发_第4张图片
经常回到的问题:
(1)提示系统繁忙
可能造成的问题: 订单参数存在为空的状况
(2)编译造成的错误
可能造成的问题: opensell 找不到.h文件,也就是绝对路径和相对路径的问题。Header Search Path 填写opensell文件夹所在的路径。如果是黄色文件夹,那么为相对路径 (SRCROOT)/: (SRCROOT)/项目名/文件夹/子文件家
(3)得到支付的状态码9000支付成功,你也别开心太早,还得请求后台看是否订单下单成功了,下单成功后才算真正的成功,如果未成功的话,那么迭代继续请求知直到成功为止。
(4)如果手机没安装支付宝,那么会跳转到网页版支付宝,支付成功会走支付状态的block,如果有客户端,支付成功也会跳转到支付状态的block,但是如果缺少这行代码,你会发现,不会走支付状态的block,在delegate.m实现下面的代理方法
ios 支付宝开发_第5张图片

你可能感兴趣的:(支付宝支付,iOS支付,支付宝开发,兼容iOS9)