iOS集成支付宝登录

今天正好需要集成支付宝登录,(注意哦,不是使用支付宝支付,只是支付宝登录。)也有一段时间没写了,正好整理下思路。把过程记录下以后直接参考。


支付宝【登录Only】AFAuthSDK下载入口.

参考官方文档

  1. App支付宝登录授权SDK调用方法
  2. App支付宝登录快速接入

1、开发者网站申请与配置

和大多数的三方一样,需要申请成为开发者-注册app-生成appID等。


申请app

主要是appID和配置你需要用支付宝的哪些功能。这里我选择了
· 获取会员信息
· 第三方授权1


配置好需要的功能

配置好后提交审核即可。这里暂时用不到支付宝给我们提供的沙盒模式,那个用于支付功能测试不错的。

2、回到项目

将下载好的sdk拖入工程中。并配置项目的Link Binary如图:
登录:“AFAuthSDK.framework”
登录+支付:“AlipaySDK.framework”
按需集成,这里说明一点。以前由于上架审核的机制问题,所以都是AlipaySDK,但是Apple自从2018年1月左右审核机制对于支付功能的规范后,导致很多app上架失败。针对这个问题,微信、支付宝等三方登录均将授权登录部分单独提供sdk(auth_login_only)。


Link Binary

3、别急,到代码了

· import 
    //你在info中/或plist中设置的appScheme
    NSString *appScheme = @"你的appScheme";
    //authStr参数后台获取!和开发中心配置的app有关系,包含appid\name等等信息。
    NSString *authStr = @"后台获取的authStr";
    //没有安装支付宝客户端的跳到网页授权时会在这个方法里回调
    [[AFAuthSDK defaultService] authv2WithInfo:authStr fromScheme:appScheme callback:^(NSDictionary *result) {
        // 解析 auth code
        NSString *resultString = result[@"result"];
        NSString *authCode = nil;
        if (resultString.length>0) {
            NSArray *resultArr = [resultString componentsSeparatedByString:@"&"];
            for (NSString *subResult in resultArr) {
                if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
                    authCode = [subResult substringFromIndex:10];
                    break;
                }
            }
        }
        NSLog(@"resultString = %@",resultString);
//        NSLog(@"authv2WithInfo授权结果 authCode = %@", authCode?:@"");
    }];

4、不调用block?

写完以上代码会发现并不能回调。解决:
在你的appdelegate中继续写:

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{
    //授权返回码
    [[AFAuthSDK defaultService]processAuthv2Result:url standbyCallback:^(NSDictionary *result) {
    }];
    
    return YES;
}

以上也是在只用到支付宝登录,不需要支付的时候最简洁的做法了把。

不用到支付功能的真的没必要使用AliPaySDK.framework.

当然,你也可以使用友盟、shareSDK等方式集成,借助于后者的不利就是多集成很多无效垃圾代码。当然,凡事阴阳,后者的便利是在于我们需要集成微信、新浪、微博、支付宝、QQ、Twitter、Facebook等一大大大大大堆的三方登录。
Tips: shareSDK对国外平台的集成比较友好,友盟SDK最近一段时间没用过不知道。

简洁且简单.


The End.

你可能感兴趣的:(iOS集成支付宝登录)