当前访客身份:游客 [ 登录  | 注册加入尚学堂]
直播

尚哥

拥有积分:3
这家伙太懒,还没有签名!

博客分类

笔记中心

课题中心

提问中心

答题中心

解答题中心

2分钟快速集成支付宝快捷支付

尚哥 发表于 2年前 (2015-01-14 09:14:15)  |  评论(0)  |  阅读次数(32249)| 0 人收藏此文章,   我要收藏   

        本文介绍了iOS快速集成支付宝支付的方法,本文中介绍的方法是经过一次封装,因此配置完成之后调用仅需一行代码即可支付宝支付,非常的方便,希望大家喜欢。


        我只是根据官方的文档,对支付宝的SDK做了进一步封装,其中密钥的生成很简单,需要看官方的文档,官方的文档我在工程附件目录里也有一份,如果需要马上集成,没工夫研究的话,可以大致看一下密钥的生成即可,其他的配置我会在下面进行讨论j_0003.gif



        要在iOS应用里集成支付宝支付,需要公司和支付宝签约,然后生成相应的密钥。密钥的生成支付宝的开发文档里已经说的非常清楚了,这里就不再讨论j_0012.gif



        虽然支付宝的文档说的非常的详细,比微信支付强100倍(微信支付的坑多的跟月球表面一样,如果有需要,我会在接下来的博客中讨论微信支付j_0002.gif),不过有一点需要提醒的是:大部分用户根本就找不到支付宝的SDK和文档在哪里下载!这也是我开始做支付宝支付时候头疼的事情:要做支付宝支付,你需要先找到官方的文档和SDK才行!j_0025.gif



        不过上面我也说了,附件中又支付宝目前最新的开发文档,工程中也集成了支付宝最新的SDK和开发文档,当然,既然我找到了,就不会让大家失望j_0002.gif。下面奉上支付宝的完整的文档和SDK下载地址供大家下载:支付宝SDK、API文档官方下载地址。 这个下载页面是官方的下载页面。j_0063.gif



        也可以看我的这篇博客:支付宝SDK下载问题。好了,废话不多说了,下面就正式开始本教程的内容j_0007.gif:(提醒:如果动态图无法查看,可:“右键-在新标签中打开连接”查看即可:


        1. 下载附件,点击2分钟快速集成支付宝快捷支付-51cto下载中心下载压缩包,需要2积分,也可以在github上免费下载:2分钟快速集成支付宝快捷支付-github下载

         github下载如图所示:

wKioL1Sw4FmxRCxbAARD2bwzWac911.jpg


        2.将工程中的IntegratedAlipay文件夹导入工程中,记得选copy(注意:工程名也是:IntegratedAlipay,不要导错了,应该是:“存放目录/IntegratedAlipay/IntegratedAlipay”路径下的IntegratedAlipay目录,有点儿小啰嗦哈~j_0016.gif);

        

wKiom1Sw4TDD6KonAAGcYXSwdQI050.jpg


        

        3.点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search” 搜索,对“Header Search Paths”增加头文件路径:“$(SRCROOT)/项目名称/IntegratedAlipay/AlipayFiles”(注意:不包括引号,如果不是放到项目根目录下,请在项目名称后面加上相应的目录名),可以查看下面的动态图片;

        

wKiom1Sw41_TJY_vABUvhnerrC0018.gif


        4.点击项目名称,点击“Build Phases”选项卡,在“Link Binary with Librarles” 选项中,新增“AlipaySDK.framework”和“SystemConfiguration.framework” 两个系统库文件。如果项目中已有这两个库文件,可不必再增加,(如下动态图,我添加一个SystemConfiguration.framework的方法)

        

wKioL1Sw5X_w4VgRAAeEWMawK3g718.gif




        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”都需要换成公司签约支付宝时返回的邮件内容中的值:

wKiom1Sw5frRZ59nAAYVX2g13qo323.jpg



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

        到这里,就已经实现支付宝的支付了,现在还差最后一步:返回用户的支付状态,请看第七步:


        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里面的内容设置一行而已,是不是非常的简单?j_0028.gif


        最后再啰嗦一遍t_0013.gif,支付宝SDK、API文档和demo下载问题:支付宝SDK下载问题;工程下载地址:51cto下载中心:2分钟快速集成支付宝快捷支付-51cto下载中心和github免费下载:2分钟快速集成支付宝快捷支付-github下载



        如果还有什么问题,或者有其它iOS开发的相关问题,欢迎在博客的下面提问,当然,也可以@我的新浪微博,我会第一时间回复的!希望大家多多支持!j_0002.gifj_0002.gifj_0002.gif


分享到:0
关注微信,跟着我们扩展技术视野。每天推送IT新技术文章,每周聚焦一门新技术。微信二维码如下:
微信公众账号:尚学堂(微信号:bjsxt-java)
北京总部地址:北京市海淀区西三旗桥东建材城西路85号神州科技园B座三层尚学堂 咨询电话:400-009-1906 010-56233821
Copyright 2007-2015 北京尚学堂科技有限公司 京ICP备13018289号-1 京公网安备11010802015183