第三方登录集成问题

最近在做第三方登录,不同于以往的仅仅是集成友盟或者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>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容