iOS 支付宝详细集成总结


前提是你已经在支付宝平台上创建了应用,并且已经获得了移动支付的能。如果没有就自己去支付宝开放平台,申请注册。支付宝开放平台

1.Mac生成RSA私钥、公钥、Mac 使用OpenSSL生成 DSA公钥与私钥。

2.生成的rsa_private_key.pem文件与rsa_public_key.pem,用文本编辑器打开pem文件,复制公钥对应的字符串上传到商户的支付平台里面。

3.生成的dsa_private_key.pem文件与dsa_public_key.pem,用文本编译器打开pem文件,复制公钥对应的字符串上传到支付宝商户平台里面。

4.根据自己的商户,查询key,并且上传字符串。 

5.下载支付宝Demo与SDK。 

6.创建一个自己的工程名aliPay。

7.根据支付宝Demo与文档,导入SDK 

8.添加依赖库:

添加依赖库

9.配置网络设置:

配置网络设置

10.添加依赖库以及支付宝其中的SDK的文件,如下目录:

目录结构

11.添加 URL Schemes如下图:

添加URL  Schemes

12.在AppDelegate.m里面引入头文件#import<AlipaySDK/AlipaySDK.h>,此处按着支付宝的demo里面添加就好。

12.1运行编译,快捷键commd+B,会报如下错误:

'openssl/asn1.h' file not found.

错误信息

1>原因解释:include<>跟# include""的区别

2>如何改正错误,由于是文件“Util”与“openssl”的文件路径不对:

开始的时候,我直接把这两个文件拖到工程里面,没有考虑路径问题。也没有设置这个Header Search Paths的路径。

12.2改正方法:

12.2.1打开桌面上的你自己创建的demo,找到文件的根目录,并把两个文件夹直接放到根目录下,如下gif图。

把文件夹放到根目录下

12.2.2添加文件夹如下gif图:

添加文件

12.3 Header Search Paths的路径:

更改文件路径

12.4 更改完之后,卧槽,竟然还有错误,心脏差点崩溃了,错误信息如下:

Linker commd failed with exit code 1 (use -v see invocation)

错误信息

12.4.1修改方法:

注意:要是没有Library Search Paths,在搜索栏里,直接搜索Library Search Paths。

更改Library Seaarch Paths路径

完成以上步骤,编译commd+B运行一下,就会添加成功。之后,开始植入代码。

13.填写代码在ViewController.m 里面,如下所示:

13.1-(void)pay; 是一个按钮的点击方法,在这就不写了。

代码展示

13.2产生随机的订单号:

13.3此处注意三个参数:参数说明。

partner:合作身份者ID,以2088开头由16位纯数字组成的字符串。
 seller:支付宝收款账号,手机号码或邮箱格式。
 prevateKey:商户方的私钥,pkcs8格式。

前两个参数很简单,就是第三个参数很麻烦:

1>根据第一步,生成的两个公钥与私钥文件,用文本编译器打开之后的字符串就是PKCS8 文件类型,直接复制粘贴就行。公钥需要上传到支付宝商户里面的公钥。私钥直接复制到这个工程对应的参数里面。

2>由于在校验私钥的过程中,需要检查私钥内容,因此需要保证私钥的里面的字符串的开头、结尾与解析的RSADataSigner.m(在Util文件里面)文件里面,保持一致。如下图:iOS支付宝快速集成 

添加RSA 三个字母

保证相同的字符串

3>注意在上传公钥的过程中一定要复制正确,只要里面的字符串,不要上传头与尾。下面是对应的公钥图片:

rsa_public_key.pem:
     

    rsa_public_key.pem 
  
  
 dsa_public_key.pem:
     

    dsa_public_key.pem

总结:

到这基本上就可以实现支付了。我是经过了一个月的时间,今天又重新走了一遍支付,感觉里面好多坑,想不起的感觉真是不爽,但是感觉最坑爹的还是特么的微信支付。不说了,说多了都是泪呀。

参考链接:

1.iOS开发支付宝集成

2.iOS项目集成"支付宝"超级简单