美文网首页第三方登录分享
第三方登录集成问题

第三方登录集成问题

作者: 我只是个仙 | 来源:发表于2017-01-10 15:48 被阅读564次

    最近在做第三方登录,不同于以往的仅仅是集成友盟或者shareSDK,而是自己集成几大开发者平台的sdk自己来做,所以还是会遇到一些问题,以下是一部分记录,共享给大家,希望能够帮助的一些有问题的朋友们。多多交流。

    一、微博集成

    • 问:21322错误

    • 答:原因微博开发者平台上填写的redirect URL和你在APP中填写不一致

    • 问:Error_code = 21338,Error = "sso package or sign error"

    • 答:这是由于平台设置的bundle id 和 工程设置的bundle id不对应造成的。

    • 问:微博授权 无法打开微博APP,一直走SSO 网页授权,并且报错 “无法连接网络请点击重试”

    • 答:需要在info.plist文件中做如下添加

    .png
    • 问:微博授权Oauth2.0网页授权的时候,关闭页面一直没有回调
    • 答:三个 openURL:(NSURL)url方法最好都要写(iOS系统有关),避免因为没有实现回调方法而导致这种问题
      代码如下:
      WBAuthorizeRequest *request = [WBAuthorizeRequest request];
      request.redirectURI = Weibo_Redirect_url;
      request.scope = @"all";
      request.userInfo = @{@"SSO_From": @"YYBThirdLoginViewController",
      @"Other_Info_1": [NSNumber numberWithInt:123],
      @"Other_Info_2": @[@"obj1", @"obj2"],
      @"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
      [WeiboSDK sendRequest:request];

    二、QQ集成

    这个暂时没遇到什么问题,仅仅贴一下代码
    <pre><code>
    _tencent = [[TencentOAuth alloc]initWithAppId:QQ_APP_Id andDelegate:self];
    NSArray* permissions = [NSArray arrayWithObjects:
    kOPEN_PERMISSION_GET_USER_INFO,
    kOPEN_PERMISSION_GET_SIMPLE_USER_INFO,
    kOPEN_PERMISSION_GET_INFO,
    nil];
    [_tencent authorize:permissions];
    </pre></code>

    三、微信集成

    同上
    <pre><code>
    if([WXApi isWXAppInstalled] && [WXApi isWXAppSupportApi])
    {
    SendAuthReq *req = [[SendAuthReq alloc] init];
    req.scope = @"snsapi_userinfo,snsapi_base";
    req.state = @"";
    BOOL bo = [WXApi sendReq:req];
    if (bo)
    {
    //TODO:成功要做的
    }
    else
    {
    //TODO:失败要做的
    }
    } else
    {
    //TODO:未安装微信客户端
    }
    </pre></code>

    四、支付宝集成

    • 问:调起支付宝APP失败
    • 答:需要在info.plist中url types添加如下配置
    支付宝配置.png
    • 问:调用支付宝APP之后,一直提示“应用签名验证失败,请联系商户”
    • 答:
    1 、仔细检查自己调用alipay的API时所传参数正确性,一个key都不能错以及每个key的长度
    2、sign加密一定要是pkcs8格式的私钥进行加密,这一步不能搞错,不管是服务端来做还是移动端做

    代码如下:

    <pre><code>NSString * infoStr = [NSString stringWithFormat:@"apiname="com.alipay.account.auth"&method="alipay.open.auth.sdk.code.get"&app_id="%@"&app_name="mc"&biz_type="openservice"&pid="%@"&product_id="APP_FAST_LOGIN"&scope="kuaijie"&target_id="%@"&auth_type="AUTHACCOUNT"",ALI_APP_ID,ALI_PID,@"gd199206150723"];

    id<DataSigner> signer = CreateRSADataSigner(ALI_Sign);

    NSString * signStr = [signer signString:infoStr];

    infoStr = [NSString stringWithFormat:@"sign_type="RSA"&%@&sign="%@"",infoStr,signStr];

    [[AlipaySDK defaultService] auth_V2WithInfo:infoStr fromScheme:kAPPScheme callback:^(NSDictionary *resultDic)

    {

    //TODO:你的处理

    }];
    </pre></code>

    相关文章

      网友评论

        本文标题:第三方登录集成问题

        本文链接:https://www.haomeiwen.com/subject/strxmttx.html