前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开发中支付宝支付的集成(其实很简单)

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

作者头像
用户1451823
发布2018-09-13 15:31:11
7420
发布2018-09-13 15:31:11
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337700

最近项目中要使用支付宝支付,记得之前集成支付宝支付是挺麻烦的一件事,可这次集成支付宝支付却顺利、方便了许多,感谢支付宝开放平台的技术人员将集成文档写的越来越方便我们这些开发人员使用。先附上支付宝支付集成的官方文档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.2的api调用会没有回调,对国内平台没有影响

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.在需要使用支付宝支付的控制器中导入头文件

代码语言:javascript
复制
# import <AlipaySDK/AlipaySDK.h>

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

6.进行支付

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

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

NSString * orderString = responseObject@"data";

// 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;

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年09月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档