一,在支付宝开放平台下载支付宝SDK(https://openhome.alipay.com/platform/document.htm#down)

二,添加sdk文件到xcode

  1,新建一个aliPaySDK文件夹,提取SDK包中以下文件到此文件夹里,在xcode中添加此文件夹

  2.在xcode中,点击项目名,选择"target"->"Link Binary With Libraries"添加依赖库。  

  3.编译项目,会出现以下问题:

  1)"Unknown type name ‘NSString‘ "或者"Unknown type name ‘NSData‘ "等不识别常见类的问题。

  

  这是因为缺少Foundation类库和UIKit类库,支付宝Demo中之所以没有出现此错误,是因为在.pch文件中导入过这些类库

  解决办法:只需要在出现错误的文件中导入这些类库即可

  

  2)‘openssl/asn1.h‘ file not found

  

  这是openssl文件夹头文件链接问题,如果openssl文件夹随意拉进项目中,即使添加头文件链接,也可能解决不了此问题,

  这也是问什么一开始就将所需要的文件放到一个新建文件夹中再添加到项目中的原因。

  解决办法:Targets->Build Settings->Header Search Path中添加1中建立的aliPaySDK文件夹的路径(拖拽此文件夹至输入框即可)

  

  3)根据项目需求添加demo中ViewController中的代码 编译后可能会出下面错误:

  "_OBJC_CLASS_$_Product", referenced from: objc-class-ref in ViewController.o

  

  AlipaySDK的demo中将Product的定义写在了ViewControler.h中所致

  

  解决办法:新建Product类,将ViewController中的代码拷贝过去即可。

  

三,添加支付逻辑代码,完成支付过程。

  ViewController.m文件

 1 /*============================================================================*/
2 /*=======================需要填写商户app申请的===================================*/
3 /*============================================================================*/
4 //这里的三个参数是公司和支付签约之后得到的,没有这三个参数无法完成支付
5 NSString *partner = @"";
6 NSString *seller = @"";
7 NSString *privateKey = @"";
8 /*============================================================================*/
9 /*============================================================================*/
10 /*============================================================================*/
11
12 //partner和seller获取失败,提示
13 if ([partner length] == 0 ||
14 [seller length] == 0 ||
15 [privateKey length] == 0)
16 {
17 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"
18 message:@"缺少partner或者seller或者私钥。"
19 delegate:self
20 cancelButtonTitle:@"确定"
21 otherButtonTitles:nil];
22 [alert show];
23 return;
24 }
25
26 /*
27 *生成订单信息及签名
28 */
29 //将商品信息赋予AlixPayOrder的成员变量
30 Order *order = [[Order alloc] init];
31 order.partner = partner;
32 order.seller = seller;
33 #warning 这里需要填商品信息
34 order.tradeNO = @""; //订单ID(由商家自行制定)
35 order.productName = @"测试商品"; //商品标题
36 order.productDescription = @"这是一个测试商品"; //商品描述
37 order.amount = @"0.01"; //商品价格
38 order.notifyURL = @""; //回调URL 这个URL是在支付之后,支付宝通知后台服务器,使数据同步更新,必须填,不然支付无法成功
39
40 //下面的参数是固定的,不需要改变
41 order.service = @"mobile.securitypay.pay";
42 order.paymentType = @"1";
43 order.inputCharset = @"utf-8";
44 order.itBPay = @"30m";
45 order.showUrl = @"m.alipay.com";
46
47 //应用注册scheme,在AlixPayDemo-Info.plist定义URL types
48 //如果不知道scheme是神马东西,请自行百度
49 NSString *appScheme = @"";
50
51 //将商品信息拼接成字符串
52 NSString *orderSpec = [order description];
53
54 //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
55 id<DataSigner> signer = CreateRSADataSigner(privateKey);
56 NSString *signedString = [signer signString:orderSpec];
57
58 //将签名成功字符串格式化为订单字符串,请严格按照该格式
59 NSString *orderString = nil;
60 if (signedString != nil) {
61 orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
62 orderSpec, signedString, @"RSA"];
63
64
65 [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
66 NSLog(@"使用支付宝的支付结果 %@",resultDic);
67
68 }];
69
70 }

AppDelegate.m

 1 - (BOOL)application:(UIApplication *)application
2 openURL:(NSURL *)url
3 sourceApplication:(NSString *)sourceApplication
4 annotation:(id)annotation {
5
6 //跳转支付宝钱包进行支付,处理支付结果
7 [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
8 NSLog(@"result = %@",resultDic);
9 }];
10
11 return YES;
12 }

以上就是支付宝集成流程和可能遇到的问题。

IOS集成到支付宝的步骤及问题的更多相关文章

  1. iOS集成百度地图方法步骤

    前言:app中的导航功能越来越流行,现在我自己做的项目中也有此需求,做过了后记录下笔记.  由于源代码保密所以这里仅仅提供demo,下面是效果图 一:iOS地图SDK 1.打开 百度地图api链接 i ...

  2. 李洪强iOS开发支付集成之支付宝支付

    iOS开发支付集成之支付宝支付 下载支付宝SDK 首先是开发包下载,还是比较难发现的,网上以前文章中的链接都打不开,我找了好久才找到的.最新的地址在这里(注意的是下载出来的SDK包里面并没有传说中的开 ...

  3. iOS开发之支付宝集成

    项目中要用到支付功能,需要支付宝,微信,银联三大支付,所以打算总结一下,写两篇文章,方便以后的查阅, 大家在做的时候也能稍微参考下,用到的地方避免再次被坑.这是第二篇支付宝集成,第一篇银联支付在这里. ...

  4. iOS开发支付集成之支付宝支付

    项目中要用到支付功能,需要支付宝,微信,银联三大支付,所以打算总结一下,写两篇文章,方便以后的查阅, 大家在做的时候也能稍微参考下,用到的地方避免再次被坑.这是第二篇支付宝集成,第一篇银联支付在这里. ...

  5. iOS集成支付宝

    需要企业和支付宝签约这个是需要审核的[3天左右   以邮件形式告知你] 使用支付宝进行一个完整的支付功能,大致有以下步骤: 1>先与支付宝签约,获得商户ID(partner)和账号ID(sell ...

  6. React Native之支付集成(微信 支付宝)(ios android)

    React Native之支付集成(微信 支付宝)(ios android) 一,需求分析 1.1,app在线充值与提现 二,技术介绍与集成 2.1,微信支付 2.1.1,Android配置 详细配置 ...

  7. iOS移动支付——支付宝支付

    这篇博客总结得很好,我只对在iOS上集成支付宝做简洁的步骤总结. http://www.it165.net/pro/html/201402/9376.html iOS集成支付宝支付的步骤: 准备工作的 ...

  8. iOS 集成Weex入门教程

    前言 自Weex发布伊始, 其口号 "Write Once, Run Everywhere"就吸引了大批前端与客户端程序猿纷纷入坑, 我也不能独善其中. 就我目前所学习Weex的经 ...

  9. 李洪强iOS之集成极光推送三iOS集成指南

    李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...

随机推荐

  1. 使用Redirector插件解决googleapis公共库加载的问题【转】

    转自:http://www.cnblogs.com/kari/p/5860371.html 最近访问一些面向国外的网站总是会出现ajax.googleaips.com无法加载的情况.以下为加载stac ...

  2. Linux 入门记录:六、Linux 硬件相关概念(硬盘、磁盘、磁道、柱面、磁头、扇区、分区、MBR、GPT)

    一.硬盘 硬盘的功能相当简单但很重要,它负责记录系统所需要的各种数据.硬盘记录数据有两个方面,一个是硬件方面的存储原理和结构,另外一方面则是软件方面的数据和文件系统.硬盘的主要行为就是数据的存放和取出 ...

  3. 嵌入式 uboot引导kernel,kernel引导fs【转】

    转自:http://www.cnblogs.com/lidabo/p/5383934.html#3639633 1.uboot引导kernel: u-boot中有个bootm命令,它可以引导内存中的应 ...

  4. 從 kernel source code 查出 版本號碼

    kernel/Makefile 1 VERSION = 4 2 PATCHLEVEL = 4 3 SUBLEVEL = 21 4 EXTRAVERSION = 5 NAME = Blurry Fish ...

  5. 安全测试===黑客攻击常用cmd命令大全

    黑客常用命令大全net user heibai lovechina /add 加一个heibai的用户密码为lovechina net localgroup Administrators heibai ...

  6. Centos_Lvm expand capacity without restarting CentOS

    Rescan the new disk(/dev/sdb): #ls /sys/class/scsi_host/ host0 host1 host2 [root@db210_13:56:14 /dat ...

  7. JDBC数据源连接池(2)---C3P0

    我们接着<JDBC数据源连接池(1)---DBCP>继续介绍数据源连接池. 首先,在Web项目的WebContent--->WEB-INF--->lib文件夹中添加C3P0的j ...

  8. [ Python ] 基本数据类型及属性(上篇)

    1. 基本数据类型 (1) 数字 - int        (2) 字符串 - str        (3) 布尔值 - bool 2. int 类型中重要的方法 (1) int      将字符串转 ...

  9. 邂逅Sass和Compass之Sass篇

    对于一个从后台转到前端的web开发者来说,最大的麻烦就是写CSS,了解CSS的人都知道,它可以开发网页样式,但是没法用它编程,感觉耦合性相当的高,如果想要方便以后维护,只能逐句修改甚至重写相当一部分的 ...

  10. 智能社官网顶部导航实现demo

    从智能社的blue老师公开课中学习到了很多,在此表示感谢. 这个导航很好玩,于是就想实现一个. html <div id="box"> <ul> <l ...