<支付宝>支付SDK集成文档
2015-12-30 本文已影响1379人
Nidalee丶
实现⽀支付宝⽀支付的所需
暮落晨曦
- 填写个⼈人/公司的信息,与⽀支付宝签约,签约完成, ⽀支付宝会提供⼀一些数据给我们(商户ID - partner id seller id, 收款⼈人账号 - ⽀支付宝账号) 注: 签约时 公司需提供营业执照 个⼈人需提供有效⾝身份证件
- 获取⽀支付相关 私钥 和 密钥 ⽤用来加密 实现数据安全3. 下载⽀支付SDK,拖进⼯工程
下载SDK的地址
-
找到移动⽀支付按钮点击进⼊入2如图
- 点击 技术集成 对应切换到 3 如图
3 . 点击请点此下载集成开发包
4.下载完成 后 产⽣生⼀一个 WS_MOBILE_PAY_SDK_BASE的ZIP压缩包
5 . 解压完成, 进⼊入⽂文件⺫⽬目录 找到对应的 ⽀支付宝钱包⽀支付接⼝口开发包2.0标准版⺫⽬目录
6 . 找到对应的 Demo ⺫⽬目录
7 . 打开对应⺫⽬目录 找到Demo⽂文件 并打开⼯工程
8 .集成SDK到你的⼯工程中时, 需将下图中对应的⽂文件拖⼊入你的⼯工程
9 . 如下图依次倒⼊入系统框架 到 Linked Frameworks and Libraries
10 . 创建预编译⽂文件 .pch注: Xcode 6以后 将pch⽂文件取消, 因此需⼿手动添加 添加步骤如图最后⼀一步 需双击Prefix Header 并输⼊入 $(SRCROOT)/⽀支付宝SDK/AlipaySDK-Prefix.pch
11 . 将⽀支付宝官⽅方Demo的pch⽂文件中的代码 复制到 ⾃自⼰己⽣生成的pch⽂文件中
12 . 有些⽂文件找寻不到需给其路径, 因此需在Header Search Paths 中添加搜索路径
13 . Command + B 编译通过
14 . 核⼼心代码
NSString*partner =@"partner商户ID:支付宝给申请支付集成人的身份”;
NSString *seller = @"seller账号ID:商户的支付宝帐号”;
NSString *privateKey = @“私钥";
/*
*⽣生成订单信息及签名
*/
//将商品信息赋予AlixPayOrder的成员变量
Order *order = [[Order alloc] init];
order.partner = partner;order.seller = seller;
order.tradeNO = [self generateTradeNO];
//订单ID(由商家⾃自⾏行制定)
order.productName = product.subject; //商品标题
order.productDescription = product.body; //商品描述order.amount = [NSString stringWithFormat:@"%.2f",product.price]; //商品价格
order.notifyURL= @"http://www.xxx.com";// 服务器回调的url
order.service = @"mobile.securitypay.pay”;
order.paymentType = @"1”;
order.inputCharset = @"utf-8";
order.itBPay = @"30m”;
order.showUrl = @"m.alipay.com";
//应⽤用注册scheme,在AlixPayDemo-Info.plist定义URL types//appScheme 应用的加调地址:支付完成,跳回原应用时使用
NSString *appScheme = @"alisdkdemo”;
//将商品信息拼接成字符串
NSString *orderSpec = [order description];
NSLog(@"orderSpec = %@",orderSpec);
//获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要
遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
id<DataSigner> signer = CreateRSADataSigner(privateKey);
//防⽌止字符串被修改
NSString *signedString = [signer signString:orderSpec];
//将签名成功字符串格式化为订单字符串,请严格按照该格式
NSString *orderString = nil;
if (signedString != nil) {
orderString = [NSString stringWithFormat:@"%@&sign=\”%@
\"&sign_type=\"%@\"",
orderSpec, signedString, @"RSA"];
[[AlipaySDK defaultService] payOrder:orderString
fromScheme:appScheme callback:^(NSDictionary *resultDic)
{
NSLog(@"reslut = %@",resultDic);
}];
}