iOS面试知识点收集

ios记录一下自己集成支付宝移动支付的流程--

2016-05-20  本文已影响478人  antns丶

1.首先上支付宝移动支付官方文档地址

网页如下图:


支付宝集成图1.png

下载SDK,并按照集成详细流程里面需要导入的依赖图导入相关依赖,别导入重复了!!

2.然后在infoPlist里添加设置需要的URLSchemes:


dfadfbaadbabadbd.png

3.添加白名单和网络配置


白名单 .png

貌似现在不添加白名单也不打印警告信息了,去年还打印来着,不知道为什么,那位大神知道为什么请私信告诉我一下。。


网络设置.png

4.从公司拿到注册的企业支付宝账号,添加应用,和配置公钥,添加应用最好提前做了,因为要审核。
上传公钥就需要生成RSA私钥及公钥,这块我也不知道为什么我用mac自带的openssl生成的秘钥给java后台他说通不过,,然后在windows系统上生成的就可以,我了个擦,也有可能是他处理得不对,那位大神知道为什么请私信告诉我一下。。
秘钥生成流程支付宝官方文档地址

mac生成流程:
第一步用终端命令打开openssl 输入命令:openssl
第二步生成私钥命令:genrsa -out rsa_private_key.pem 1024
因为我们后台是java所以需要把私钥转成pkcs8格式 输入命令:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
第三部生成公钥命令:rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
好了生成的文件和终端如下图:

yaoshi.png
终端.png
找不到这两个文件,搜索名称可以,或者打开finder 按住 shift+command+g 然后输入~/ 再enter就找到了
好了,然后把私钥给后台用于做签名使用。公钥我们拿来上传到公司的支付宝账号上,这两个文件在mac上是打不开的,复制一份把后缀名改成text就打开了。。。
然后复制上传。。这里也是一个坑啊。我擦。
支付宝上传RSA公钥文档地址

然而这个网站目前不好使了,无论怎么复制都会提示你公钥格式错误。。去年其实我上传了一个公钥,但是现在要换了,就是换,点了修改,然后不做任何操作直接保存都是格式错误,好吧,,貌似说的都是废话,,,
下面上有用的上传公钥地址

或者你直接登录支付宝开放平台,点击右上角的 账户及密钥管理 进入到如下页面:


圣诞节方法时发生的.png

在合作伙伴秘钥这儿上传。主要上传的时候要主要格式,官方文档有所。。
好了秘钥也上传好了,上代码了调支付了;
在要用到支付宝支付的地方导入:#import <AlipaySDK/AlipaySDK.h>

从后台那根据请求到调用支付需要的签名过的请求信息。调用代码就一句:
这块当然你也可以像支付宝demo里一样在本地进行签名。。。看支付宝demo。。。
<pre>
NSLog(@"orderString == %@",orderString);
// orderString 就是请求下来的签名过的请求信息
// Scheme 就是之前添加的URL Schemes
[[AlipaySDK defaultService] payOrder:orderString fromScheme:@"jinyiqiaoAlipay" callback:^(NSDictionary *resultDic) {
// 在这里处理支付的回调信息
返回码官方文档说明地址

}];
</pre>

在这里遇到过几个错误:
1.交易订单处理失败,请稍后再试。(ALI59)
这个错误上网查了下是请求信息的total_fee="0.01999998"参数不正确,金额参数支付宝单位是元,所以最小为两位小数total_fee=“0.01"
2.交易订单处理失败,请稍后再试。(ALI64)
支付官方文档解释地址
按照说的4点一一检查发现还是参数问题。。
官方文档的这个参数:

sign="lBBK%2F0w5LOajrMrji7DUgEqNjIhQbidR13GovA5r3TgIbNqv231yC1NksLdw%2Ba3JnfHXoXuet6XNNHtn7VE%2BeCoRO1O%2BR1KugLrQEZMtG5jmJIe2pbjm%2F3kb%2FuGkpG%2BwYQYI51%2BhA3YBbvZHVQBYveBqK%2Bh8mUyb7GM1HxWs9k4%3D” 进行了url编码,把特殊字符转成了%2F这种格式。。然而我们后台没给转,打印显示的是+号等。改成Url编码就好了。。

appDelegate里的配置按照官方文档来就是了:
官方文档配置支付宝客户端返回url处理方法。
(外部存在支付包钱包,支付宝钱包将处理结果通过url返回。)
如示例AliSDKDemo\APAppDelegate.m文件中,增加引用代码:
<pre>

import <AlipaySDK/AlipaySDK.h>

</pre>
在@implementation AppDelegate中增加如下代码:
<pre>

到这里支付就成功了。。

上一篇下一篇

猜你喜欢

热点阅读