支付宝SDK集成

在线支付是多数app必备功能,本文聚焦支付宝支付实现。先介绍签约所需个人/公司信息及签约后支付宝提供的数据,接着说明获取支付相关私钥和密钥保障数据安全,还阐述了下载支付SDK并集成到工程的步骤,最后给出核心代码示例。

在线支付是现在大多数app必有的功能, 一般有支付宝支付, 微信支付, 信用卡支付. 今天讲讲如何实现支付宝支付, 希望对广大的初学者程序员用帮助 

实现⽀付宝⽀付的所需

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

下载SDK的地址 https://b.alipay.com/newIndex.htm  操作步骤以及代码如下:


1.找到移动⽀支付按钮点击进入2如图



page1image3016

2. 点击 技术集成 对应切换到 3 如图



3. 点击 请点此下载集成开发包


4. 下载完成 后 产生一个 WS_MOBILE_PAY_SDK_BASEZIP压缩包



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. 将支付宝官方Demopch文件中的代码 复制到 ⾃⼰生成的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";// 服务器回调的urlorder.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编码和UrlEncodeid<DataSigner> signer = CreateRSADataSigner(privateKey);//防⽌止字符串被修改
NSString *signedString = [signer signString:orderSpec];//将签名成功字符串格式化为订单字符串,请严格按照该格式

page7image9824page7image9984

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);
}];

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值