玩转支付宝支付全过程
来源:互联网 发布:ubuntu grpc 安装 编辑:程序博客网 时间:2024/04/30 09:00
本文介绍了iOS快速集成支付宝支付的方法,本文中介绍的方法是经过一次封装,因此配置完成之后调用仅需一行代码即可支付宝支付,非常的方便,希望大家喜欢。
我只是根据官方的文档,对支付宝的SDK做了进一步封装,其中密钥的生成很简单,需要看官方的文档,官方的文档我在工程附件目录里也有一份,如果需要马上集成,没工夫研究的话,可以大致看一下密钥的生成即可,其他的配置我会在下面进行讨论。要在iOS应用里集成支付宝支付,需要公司和支付宝签约,然后生成相应的密钥。密钥的生成支付宝的开发文档里已经说的非常清楚了,这里就不再讨论。虽然支付宝的文档说的非常的详细,比微信支付强100倍(微信支付的坑多的跟月球表面一样,如果有需要,我会在接下来的博客中讨论微信支付j_0002.gif),不过有一点需要提醒的是:大部分用户根本就找不到支付宝的SDK和文档在哪里下载!这也是我开始做支付宝支付时候头疼的事情:要做支付宝支付,你需要先找到官方的文档和SDK才行
下面就正式开始本教程的内容
1.下载附件
下载附件
github下载如图所示:
2.将工程中的IntegratedAlipay文件夹导入工程中,记得选copy(注意:工程名也是:IntegratedAlipay,不要导错了,应该是:“存放目录/IntegratedAlipay/IntegratedAlipay”路径下的IntegratedAlipay目录
3.点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search” 搜索,对“Header Search Paths”增加头文件搜索路径, 第一种方法(推荐使用):增加头文件路径:“$(SRCROOT)”,然后选择后面的recursive(会在相应的目录递归搜索文件,就是子文件夹也会相应的进行搜索),这是最简单也推荐使用的方法(如下图所示:);
第二种方法:增加头文件路径:“$(SRCROOT)/项目名称/IntegratedAlipay/AlipayFiles”(注意:不包括引号,如果不是放到项目根目录下,请在项目名称后面加上:“/相应的目录名”,保证是正确的路径和格式),可以查看下面的动态图片。这种方法很罗嗦,就是手动找到存放头文件的路径,还容易出错,这是支付宝官方使用的方法,不推荐使用。
4.点击项目名称,点击“Build Phases”选项卡,在“Link Binary with Librarles” 选项中,新增“AlipaySDK.framework”和“SystemConfiguration.framework” 两个系统库文件。如果项目中已有这两个库文件,可不必再增加,(如下动态图,我添加一个SystemConfiguration.framework的方法)
5.在“AlipayHeader.h”头文件中设置kPartnerID、kSellerAccount、kAppScheme、kPrivateKey的值(注意,建议除appScheme以外的字段都从服务器请求):
/** * partner:合作身份者ID,以 2088 开头由 16 位纯数字组成的字符串。 * */#define kPartnerID @"xxx"/** * seller:支付宝收款账号,手机号码或邮箱格式。 */#define kSellerAccount @"xxx"/** * 支付宝服务器主动通知商户 网站里指定的页面 http 路径。 */#define kNotifyURL @"xxx"/** * appSckeme:应用注册scheme,在Info.plist定义URLtypes,处理支付宝回调 */#define kAppScheme @"integratedAlipay"/** * private_key:商户方的私钥,pkcs8 格式。 */#define kPrivateKey @"xxx"
因为本工程的kAppScheme是写好的,这样工程在配置好其他的参数之后就可以直接运行了,所以kAppScheme固定了,这里如果更改了,请在工程的Info的选项卡里也相应的更改(如下图所示),其他的“xxx”都需要换成公司签约支付宝时返回的邮件内容中的值:
6.在需要用的地方导入“AlipayHeader.h”,并使用“[AlipayRequestConfig alipayWithPartner:...”方法进行支付;
例如button事件的写法如下:
- (IBAction)payWithAli:(UIButton *)sender { [AlipayRequestConfig alipayWithPartner:kPartnerID seller:kSellerAccount tradeNO:[AlipayToolKit genTradeNoWithTime] productName:@"邮票" productDescription:@"全真邮票" amount:@"0.8" notifyURL:kNotifyURL itBPay:@"30m"];}
在AppDelegate中处理事件回调(可直接复制下面内容粘贴到AppDelegate中):
7.在AppDelegate中处理事件回调(可直接复制下面内容粘贴到AppDelegate中):
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { //如果极简 SDK 不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给 SDK if ([url.host isEqualToString:@"safepay"]) { [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { NSLog(@"result = %@",resultDic); }]; if ([url.host isEqualToString:@"platformapi"]){//支付宝钱包快登授权返回 authCode [[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) { NSLog(@"result = %@",resultDic); }]; } return YES;}
这个方法用来查看用户的支付状态,详细的参数说明请查看官方文档。
好了,教程到这里就全部结束了,点击button,就会跳到支付宝进行支付,如果没有安装支付宝客户端,会跳到支付宝的网页。我们现在需要做的,就是button里面的内容设置一行而已,是不是非常的简单?
有什么技术问题可以加我微信帮大家解决:
转载地址:http://winann.blog.51cto.com/4424329/1601654
1 0
- 玩转支付宝支付全过程
- 支付宝支付--手机支付(转)
- WebView支付宝wap支付转支付宝客户端支付
- 玩转微信支付全过程
- 玩转苹果自带支付
- app支付--支付宝支付
- 支付宝支付--手机支付
- 支付-支付宝APP支付
- 支付--支付宝APP支付
- 支付宝 支付认识
- iOS 支付宝支付
- ios 支付宝支付
- android支付宝支付
- Android 支付宝【支付】
- 支付宝支付流程
- 支付宝快捷支付
- 支付宝支付
- 支付宝支付
- 【华为OJ】【064-记负均正II】
- 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘
- 1069: [SCOI2007]最大土地面积
- 【华为OJ】【065-字符逆序】
- C语言数组
- 玩转支付宝支付全过程
- 如何成为优秀的架构师
- JSP页面引用JavaScript和Css路径问题
- 系统架构师-基础到企业应用架构-系列索引
- 结构体、共用体和位运算
- APM/PIX4飞控3G/4G数传实现附源码
- 我读《精进》——04 怎样学习
- 前端编程-如何纠错-学习笔记
- 广度/宽度优先搜索(BFS)详解