移动开发支付宝

实现支付宝支付的所需
1. 填写个人/公司的信息,与支付宝签约,签约完成, 支付宝会提供一些数据给我们(商户ID - partner id seller id, 收款人账号 - 支付宝账号) 注: 签约时 公司需提供营业执照 个人需提供有效身份证件
2. 获取支付相关 私钥 和 密钥 用来加密 实现数据安全
3. 下载支付SDK,拖进工程

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.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);
        }];
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章