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项目集成"支付宝"超级简单