移动开发支付宝
实现支付宝支付的所需
1. 填写个人/公司的信息,与支付宝签约,签约完成, 支付宝会提供一些数据给我们(商户ID - partner id seller id, 收款人账号 - 支付宝账号) 注: 签约时 公司需提供营业执照 个人需提供有效身份证件
2. 获取支付相关 私钥 和 密钥 用来加密 实现数据安全
3. 下载支付SDK,拖进工程
下载SDK的地址 https://b.alipay.com/newIndex.htm
1. 找到 移动支付 按钮 点击进入 2 如图
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.service =
@"mobile.securitypay.pay";
order.paymentType
=
@"1";
order.inputCharset
=
@"utf-8";
order.itBPay
=
@"30m";
//应用注册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);
}];
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.