首页
登录 | 注册

iOS开发中支付宝支付的集成(其实很简单)

最近项目中要使用支付宝支付,记得之前集成支付宝支付是挺麻烦的一件事,可这次集成支付宝支付却顺利、方便了许多,感谢支付宝开放平台的技术人员将集成文档写的越来越方便我们这些开发人员使用。先附上支付宝支付集成的官方文档https://docs.open.alipay.com/204/105295/

大概的集成流程就是1.下载官方demo  2.将AlipaySDK.bundle、AlipaySDK.framework两个框架导入到项目中并添加支付宝SDK依赖的系统库。 3.在AppDelegate中拷贝官方代码

// 仅支持iOS9以上系统

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options

{

    //6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK)的调用[如果用6.2api调用会没有回调],对国内平台没有影响

    BOOL result = [[UMSocialManager defaultManager handleOpenURL:url options:options];

    if (!result) {

        // 其他如支付等SDK的回调

        if ([url.host isEqualToString:@"safepay"]) {

            //跳转支付宝钱包进行支付,处理支付结果

            [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

                NSLog(@"result = %@",resultDic);

            }];

        }

    }

    return result;

}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

{

    BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];

    if (!result) {

        // 其他如支付等SDK的回调

        if ([url.host isEqualToString:@"safepay"]) {

            //跳转支付宝钱包进行支付,处理支付结果

            [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

                NSLog(@"result = %@",resultDic);

            }];

        }

    }

    return result;

}


- (BOOL)application:(UIApplication *)application

            openURL:(NSURL *)url

  sourceApplication:(NSString *)sourceApplication

         annotation:(id)annotation {

    

    if ([url.host isEqualToString:@"safepay"]) {

        //跳转支付宝钱包进行支付,处理支付结果

        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

            NSLog(@"result = %@",resultDic);

        }];

    }

    return YES;

}

4.在需要使用支付宝支付的控制器中导入头文件

5.在URL Types的URL Schemes中填写自己定义的具有唯一标识度的字符串,这是为了在支付宝App支付后能成功跳转回本App中,这个URL Schemes要和支付时使用的支付代码中schemeStr参数一致。

6.进行支付

//应用注册scheme,AliSDKDemo-Info.plist定义URL types

            NSString *appScheme = @"唯一标识符";

            NSString * orderString = responseObject[@"data"][@"niu_index_response"];

            // NOTE: 调用支付结果开始支付

            [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {

                NSLog(@"reslut = %@",resultDic);

                NSString * memo = resultDic[@"memo"];

                NSLog(@"===memo:%@", memo);

                if ([resultDic[@"ResultStatus"] isEqualToString:@"9000"]) {

                    

                    [SVProgressHUD showSuccessWithStatus:@"支付成功"];

                }else{

                    [SVProgressHUD showErrorWithStatus:memo];

                }

                

            }];

支付方法:

/**

 *  支付接口

 *

 *  @param orderStr       订单信息

 *  @param schemeStr      调用支付的app注册在info.plist中的scheme

 *  @param completionBlock 支付结果回调Block,用于wap支付结果回调(非跳转钱包支付)

 */

- (void)payOrder:(NSString *)orderStr

      fromScheme:(NSString *)schemeStr

        callback:(CompletionBlock)completionBlock;

订单信息是通过和后台交互,我们自己的后台返回给我们的订单信息。


支付宝支付就这样集成了,个人感觉简单了许多,希望帮助到寻求帮助的朋友们!




相关文章

  • 嗯...这个问题十分不好回答啊(捋下鱼须).闲鱼作为flutter领域的先驱者,以及fish_redux.flutter_boost等当红flutter库的作者,当然是欢迎广大的开发者多多使用flutter相关技术栈 逃~:).咳咳,不过呢 ...
  • 选择scrum任务看板管理工具的要点
    现在市面上的任务管理工具太多了,不可能一个一个的试用,简单的说几个必备特性,或者可以帮助缩小范围. 目标: 在尽量简单.简洁的情况之下提高我们团队的工作效率. 选择一个合适的工具并匹配我们的工作模式会事半功倍,就是提高效率,降低成本,而非增 ...
  • 作者:郑锴,花名铁杰,阿里巴巴高级技术专家,Apache Hadoop PMC,Apache Kerby 创立者.深耕分布式系统开发和开源大数据多年,先后专注在安全,存储和计算领域.之前在 Intel,目前转战阿里云上,致力于提供更好用更有 ...
  • 现如今,六西格玛设计管理的知名度是越来越高了,很多企业为了能够更好的发展,开始选择实施六西格玛设计管理,并且已经有企业成功的检验推行六西格玛设计管理会给企业带来显着的成效.那么,六西格玛设计在研发管理中是怎么应用的? 六西格玛设计管理 1. ...
  • 六西格玛设计DFSS在研发管理中是怎么应的
    六西格玛设计DFSS在研发管理中是怎么应用的? 现如今,六西格玛管理的知名度是越来越高了,很多企业为了能够更好的发展,开始选择实施六西格玛管理,并且已经有企业成功的检验推行六西格玛管理会给企业带来显着的成效.那么,六西格玛设计在研发管理中是 ...
  • 从虚拟化前端Bug学习分析Kernel Dump
    前言 也许大家都知道,分析 Kernel Dump 有个常用的工具叫 Crash,在我刚开始学习分析 Kernel Dump 的时候,总是花大量的时间折腾这个工具的用法,却总是记不住这个工具的功能.后来有一次在参加某次内部分享的时候,有位大 ...

2019 jeepshoe.net webmaster#jeepshoe.net
13 q. 0.325 s.
京ICP备10005923号