最近阿里百川SDK升級,授權(quán)方式大改顶吮,以前的授權(quán)服務直接停了,導致未授權(quán)的 一直授權(quán)不成功粪薛,作為一個以前從來沒有使用過阿里百川的小白悴了,大致的總結(jié)了一下處理步驟
一、以前的授權(quán)方式是:H5授權(quán)方式
大致說下步驟 :就是客戶端需要自己組裝URL 违寿,這個URL需要包含淘寶授權(quán)后的域名 組裝完了后 通過 code 服務端去換 token 然后服務端回調(diào)我們是否授權(quán)成功
二湃交、現(xiàn)在的方式:通過 authorize4AppKey 方法后就可以了
阿里百川文檔中 只說了 使用 authorize4AppKey 這個方法可以進行新的授權(quán) ,但是找遍了所有地方 藤巢,沒有任何地方有相關(guān)的使用說明搞莺,demo里也完全沒有相關(guān)信息
其他的地方 基本和之前的一致
三、新的授權(quán)方式步驟
-
更新最新的SDK 文檔地址:
https://aff-open.taobao.com/#!/document
image.png 修改至工程沒有問題
-
找到以前工程的授權(quán)的地方 openTradeUrl
掂咒、才沧、、
/// 綁定
/// - Parameters:
/// - url: 授權(quán)鏈接
/// - 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()
}
嫉戚、刨裆、、
這個地方需要注意 在授權(quán)之前需要 logout() 彬檀,不然用戶有多個淘寶賬號 帆啃,如果有的淘寶號不能授權(quán),會出現(xiàn)使.authorize4AppKey 授權(quán)的時候 如果我APP不登出 第一次使用可以授權(quán)的淘寶賬號進行授權(quán) 然后解綁 并且把淘寶賬號換成不可以授權(quán)的淘寶賬號 這個時候調(diào)用 authorize4AppKey 返回我這邊accessToken 還是上一個的
- 我們APP端通過 authorize4AppKey 獲得了accessToken 后 窍帝,這個時候需要后端配合處理努潘,需要新加一個接口,我們把accessToken 傳給服務端 服務端 不用拿code 換token 然后授權(quán) ,現(xiàn)在就可以用我們獲得的 accessToken 直接去淘寶授權(quán) 然后返回客戶端結(jié)果 疯坤,客戶端保持返回的信息然后 刷新數(shù)據(jù) 繼續(xù)做之前要走的步驟就可以了
總結(jié):
總的來說 报慕,此次的升級 ,中間確實方便了不少 压怠,唯一不足就是文檔資料太少 希望百川文檔資料實時更新 demo實時更新 方法使用步驟可以簡單易懂點