最近阿里百川SDK升级,授权方式大改,以前的授权服务直接停了,导致未授权的 一直授权不成功,作为一个以前从来没有使用过阿里百川的小白,大致的总结了一下处理步骤
一、以前的授权方式是:H5授权方式
大致说下步骤 :就是客户端需要自己组装URL ,这个URL需要包含淘宝授权后的域名 组装完了后 通过 code 服务端去换 token 然后服务端回调我们是否授权成功
二、现在的方式:通过 authorize4AppKey 方法后就可以了
阿里百川文档中 只说了 使用 authorize4AppKey 这个方法可以进行新的授权 ,但是找遍了所有地方 ,没有任何地方有相关的使用说明,demo里也完全没有相关信息
其他的地方 基本和之前的一致
三、新的授权方式步骤
-
更新最新的SDK 文档地址:
https://aff-open.taobao.com/#!/document
修改至工程没有问题
-
找到以前工程的授权的地方 openTradeUrl
、、、
/// 绑定
/// - Parameters:
/// - url: 授权链接
/// - parentController: 父视图
func bind(url: String,
parentController: UIViewController) {
let showParam = AlibcTradeShowParams()
showParam.isNeedOpenByAliApp = true
showParam.isPushBCWebView = false
showParam.failMode = self.configuration?.failedMode ?? .aliAppDownloadPagelet taokeParam = AlibcTradeTaokeParams() taokeParam.pid = self.configuration?.pid AlibcTradeUltimateSDK.sharedInstance().tradeService().openTradeUrl(url, parentController: parentController, showParams: showParam, taoKeParams: taokeParam, trackParam: nil) { error,result in if let error = error { self.configuration?.bindFailed( error: error) } }
}
、、、
这个方法替换成新的方法
、、、
func startAuth(parentController: UIViewController,completion: @escaping (Bool) -> Void) {
self.logout()
self.loginAuth(parentController: parentController) {
AlibcTradeUltimateSDK.sharedInstance().tradeService().authorize4AppKey("和后端保持一致使用的APPKey", appName: nil, appLogo: nil, currentVC: parentController) { error, accessToken, expire in
if let accessTokenNew = accessToken,accessTokenNew.count > 0{
CPSJump.updateTaoBaoaAcessToken(accessToken: accessTokenNew) { isSuccess in
completion(isSuccess)
}
}else{
self.configuration?.bindFailed( error: error)
completion(false)
}
}
}
}
/// 登录
func loginAuth(parentController: UIViewController,
success: @escaping SuccessHandler) {
if self.isLogin() {
success()
} else {
AlibcTradeUltimateSDK.sharedInstance().loginService().setH5Only(false)
AlibcTradeUltimateSDK.sharedInstance().loginService().auth(parentController) { _ in
success()
} failure: { (error) in
/// 登录失败
self.configuration?.loginFailed( error: error)
}
}
}
/// 退出
func logout() {
AlibcTradeUltimateSDK.sharedInstance().loginService().logout()
}
、、、
这个地方需要注意 在授权之前需要 logout() ,不然用户有多个淘宝账号 ,如果有的淘宝号不能授权,会出现使.authorize4AppKey 授权的时候 如果我APP不登出 第一次使用可以授权的淘宝账号进行授权 然后解绑 并且把淘宝账号换成不可以授权的淘宝账号 这个时候调用 authorize4AppKey 返回我这边accessToken 还是上一个的
- 我们APP端通过 authorize4AppKey 获得了accessToken 后 ,这个时候需要后端配合处理,需要新加一个接口,我们把accessToken 传给服务端 服务端 不用拿code 换token 然后授权 ,现在就可以用我们获得的 accessToken 直接去淘宝授权 然后返回客户端结果 ,客户端保持返回的信息然后 刷新数据 继续做之前要走的步骤就可以了
总结:
总的来说 ,此次的升级 ,中间确实方便了不少 ,唯一不足就是文档资料太少 希望百川文档资料实时更新 demo实时更新 方法使用步骤可以简单易懂点