支付宝流程、集成支付功能及部分代码
1.支付宝
a.什么是支付宝
- 第三方支付平台
- 简单来说,就是可以协调客户、商户、银行三者关系的方便平台
b.集成支付宝
- 现在不少app内都集成了支付宝功能
- 使用支付宝进行一个完整的支付功能,大致有以下步骤:
- 与支付宝签约,获得商户ID(partner)和账号ID(seller)
- 下载相应的公钥私钥文件(加密签名用)
- 下载支付宝SDK
- 生成订单信息
- 调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道
- 支付完毕后返回支付结果给商户客户端和服务器
2.SDK下载
a.下载sdk
b.SDK目录结构
c. SDK的作用
- 里面提供了非常详细的文档,内容如下:
- 如何签约
- 如何获得公钥私钥
- 如何调用支付接口
- …
3. 支付流程
1.1支付流程.
完整的支付服务业务流程和支付数据流程图,可以参考android文档
1.2支付流程安全支付服务业务流程
1.3调用安全支付数据流程
4.集成支付功能
1.1Demo集成支付功能的具体操作方式,可以参考Demo
1.2 Demo的常见问题
- 当第一次打开Demo时,可能会出现以下问题:
- 错误原因很简单,就是项目的部署版本设置太低了,从3.0改为4.3即可
1.3依赖的库文件
- 要想集成支付功能,依赖以下文件夹的库文件(把这3个添加到你的客户端中)
1.4如何调用支付接口
- 调用支付接口可以参考AlixPayDemoViewController的下面方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
如何创建订单、如何签名、如何调用支付接口,都在这个方法里面了
1.5接口调用步骤
1.封装订单模型
AlixPayOrder *order = [[AlixPayOrder alloc] init];
// 生成订单描述
NSString *orderSpec = [order description];
2.签名
id<DataSigner> signer = CreateRSADataSigner(@“私钥key”);
// 传入订单描述 进行 签名
NSString *signedString = [signer signString:orderSpec];
3.生成订单字符串
NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
orderSpec, signedString, @"RSA"];
4.调用支付接口
AlixPay * alixpay = [AlixPay shared];
// appScheme:商户自己的协议头
int ret = [alixpay pay:orderString applicationScheme:appScheme];