美文网首页
阿里百川授权

阿里百川授权

作者: 小虾米的时光机 | 来源:发表于2021-08-11 19:11 被阅读0次

    最近阿里百川SDK升级,授权方式大改,以前的授权服务直接停了,导致未授权的 一直授权不成功,作为一个以前从来没有使用过阿里百川的小白,大致的总结了一下处理步骤

    一、以前的授权方式是:H5授权方式

    image.png

    大致说下步骤 :就是客户端需要自己组装URL ,这个URL需要包含淘宝授权后的域名 组装完了后 通过 code 服务端去换 token 然后服务端回调我们是否授权成功

    二、现在的方式:通过 authorize4AppKey 方法后就可以了

    image.png

    阿里百川文档中 只说了 使用 authorize4AppKey 这个方法可以进行新的授权 ,但是找遍了所有地方 ,没有任何地方有相关的使用说明,demo里也完全没有相关信息

    其他的地方 基本和之前的一致

    三、新的授权方式步骤

    1. 更新最新的SDK 文档地址:
      https://aff-open.taobao.com/#!/document

      image.png
    2. 修改至工程没有问题

    3. 找到以前工程的授权的地方 openTradeUrl
      、、、
      /// 绑定
      /// - Parameters:
      /// - url: 授权链接
      /// - parentController: 父视图
      func bind(url: String,
      parentController: UIViewController) {
      let showParam = AlibcTradeShowParams()
      showParam.isNeedOpenByAliApp = true
      showParam.isPushBCWebView = false
      showParam.failMode = self.configuration?.failedMode ?? .aliAppDownloadPage

       let 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 还是上一个的

    1. 我们APP端通过 authorize4AppKey 获得了accessToken 后 ,这个时候需要后端配合处理,需要新加一个接口,我们把accessToken 传给服务端 服务端 不用拿code 换token 然后授权 ,现在就可以用我们获得的 accessToken 直接去淘宝授权 然后返回客户端结果 ,客户端保持返回的信息然后 刷新数据 继续做之前要走的步骤就可以了

    总结:
    总的来说 ,此次的升级 ,中间确实方便了不少 ,唯一不足就是文档资料太少 希望百川文档资料实时更新 demo实时更新 方法使用步骤可以简单易懂点

    相关文章

      网友评论

          本文标题:阿里百川授权

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