作者公司是做淘客的,本文会介绍淘宝授权登录的介入流程,淘客返现等逻辑想要了解的可以看作者的其他文章,或者是私聊作者,qq号见个人资料。
1.注册APP
淘宝授权登录的SDK是阿里百川的不是淘宝的,有些开发者初次了解的时候可能有误解。阿里百川开放平台需要一个淘宝账号去登录,地址:https://baichuan.taobao.com。
淘宝授权登录及淘宝其他相关电商功能(领券、返现)都在电商服务里面,去电商服务里面注册APP信息。
2.集成SDK
用cocoapods集成SDK
#source ‘http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git’
pod ‘AlibcTradeSDK’
导入这个SDK的时候先切换一下源,不然会出现找不到SDK的情况。
3.初始化SDK
导入头文件
#import <AlibabaAuthSDK/albbsdk.h>
#import <ShareSDK/ShareSDK.h>
// 百川平台基础SDK初始化,加载并初始化各个业务能力插件
[[AlibcTradeSDK sharedInstance] asyncInitWithSuccess:^{
} failure:^(NSError *error) {
//NSLog(@"Init failed: %@", error.description);
}];
// 开发阶段打开日志开关,方便排查错误信息
//默认调试模式打开日志,release关闭,可以不调用下面的函数
[[AlibcTradeSDK sharedInstance] setDebugLogOpen:NO];
// 配置全局的淘客参数
//如果没有阿里妈妈的淘客账号,setTaokeParams函数需要调用
AlibcTradeTaokeParams *taokeParams = [[AlibcTradeTaokeParams alloc] init];
taokeParams.pid = kBaiChuanPID; //mm_XXXXX为你自己申请的阿里妈妈淘客pid
[[AlibcTradeSDK sharedInstance] setTaokeParams:taokeParams];
//设置全局的app标识,在电商模块里等同于isv_code
//没有申请过isv_code的接入方,默认不需要调用该函数
//[[AlibcTradeSDK sharedInstance] setISVCode:@"your_isv_code"];
// 设置全局配置,是否强制使用h5,若设置成yes,则跳转淘宝页面会用h5打开。
[[AlibcTradeSDK sharedInstance] setIsForceH5:NO];
4.设置 URL Schemes
URL Scheme为tbopen{AppKey},如tbopen123456
5.添加安全图片
注意文件名不能修改,不然会导致找不到文件
6.授权登录
if(![[ALBBSession sharedInstance] isLogin]){
[[ALBBSDK sharedInstance] auth:self successCallback:^(ALBBSession *session) {
ALBBUser *user = [session getUser];
} failureCallback:^(ALBBSession *session, NSError *error) {
[self showAlert:@"授权失败" type:ENAlertType_Tost];
}];
}else{
ALBBSession *session=[ALBBSession sharedInstance];
ALBBUser *user = [session getUser];
}
淘宝授权的时候,先判断是是否已经授权,若已经授权了不用再打开淘宝去授权,直接获取授权信息即可。若没有授权过,则打开淘宝APP去授权。
返回信息在 ALBBUser类里面,属性有 nick(昵称)、avatarUrl(头像)、openId、openSid、topAccessToken、topAuthCode。拿到这些信息,再去走自己的三方登录接口或者淘宝授权接口即可达到登录的目的。
7.跳转淘宝页面
id<AlibcTradePage> page = [AlibcTradePageFactory page:url];
//打开店铺
//id<AlibcTradePage> page = [AlibcTradePageFactory shopPage: @”12333333”];
//淘客信息
AlibcTradeTaokeParams *taoKeParams=[[AlibcTradeTaokeParams alloc] init];
taoKeParams.pid= kBaiChuanPID; //
//打开方式
AlibcTradeShowParams* showParam = [[AlibcTradeShowParams alloc] init];
showParam.openType = AlibcOpenTypeNative;
//showParam.linkKey = @"tmall_scheme";//加上会拉起天猫,不加拉起淘宝
//showParam.linkKey = @"taobao_scheme";
[[AlibcTradeSDK sharedInstance].tradeService show:self.navigationController page:page showParams:showParam taoKeParams:taoKeParams trackParam:nil tradeProcessSuccessCallback:nil tradeProcessFailedCallback:nil];
打开淘宝会有三种模式,参数是 openType,是一个枚举,选择AlibcOpenTypeNative会打开淘宝的APP。
typedef NS_ENUM(NSUInteger, AlibcOpenType) {
/** 智能判断 /
AlibcOpenTypeAuto,
/* 强制跳手淘 /
AlibcOpenTypeNative,
/* 强制h5展示 */
AlibcOpenTypeH5
};
打开淘宝页面可以两种形式,一种是用淘宝相关页面的URL去打开,一种是用淘宝的数据id去打开。
linkKey来确定打开的是天猫还是淘宝,要注意的是天猫的商品在淘宝APP都是存在的。这个参数不传默认打开淘宝。