/// <summary>
 /// 创建登录验证url,Url完整格式为: http://fzlogin.wywlwx.com.cn/login/index/id/{渠道Id}/token/{验证TokenId}
 /// </summary>
 /// <returns></returns>
 private string CreateLoginCheckURL(SDKOnlineUser userInfo)
 {
     if (mCurrentUser == null)
     {
         return null;
     }
     string url = "";
     if (true)//(GameManager.Instance.isTestServer)
     {
         url = "http://www.xupule.cn/nbf/index.php/login/check.html";
     }
     else
     {
        // url = "http://web.fu-5.xyz/nbf/index.php/login/check.html";
     }
     if (string.IsNullOrEmpty(url))
     {
         return "";
     }
     StringBuilder builder = new StringBuilder(url);
     builder.Append("?gmid=");
     //builder.Append(GameManager.Instance.gameKey);
     builder.Append("&agentid=");
     //builder.Append(ConfigInfo.WBFlag.ToString());
     builder.Append("&uin=");
     builder.Append(mCurrentUser.getChannelUserId());
     builder.Append("&sess=");
     builder.Append(SDKUtils.ToUrlEncode(mCurrentUser.getToken()));
     builder.Append("&ext1=");
     builder.Append("&ext2=");
     return builder.ToString();
 }
    private void SwitchUser(Dictionary<string, object> userinfo, bool needLogout)
    {
        //登录用户信息
        SDKOnlineUser newUser = mCurrentUser.Clone();
        newUser.UpdateData(userinfo);

        //登录验证
        StartCoroutine(LoginCheck(newUser, () =>
        {
            OnSwitchUserSuccess(needLogout);
        }));
    }
    /// <summary>
    /// SDK登录成功后的处理
    /// </summary>
    /// <param name="userinfo"></param>
    private void OnLoginSuccess(Dictionary<string, object> userinfo)
    {
        Debug.Log("AndroidSingleSDKHelper::OnLoginSuccess() Called!!");
        if (userinfo == null)
        {
            OnLoginFailed();
            return;
        }

        //登录用户信息
        SDKOnlineUser newUser = mCurrentUser.Clone();
        newUser.UpdateData(userinfo);

        //登录验证
        StartCoroutine(LoginCheck(newUser, () =>
        {
            OnLoginCheckSuccess();
        }));
    }
    /// <summary>
    /// 登录验证
    /// </summary>
    private IEnumerator LoginCheck(SDKOnlineUser userInfo, LoginCheckFinishDelegate finishCheckDelegate)
    {
        Debug.Log("AndroidSingleSDKHelper::LoginCheck() Called!!");
        mCurSDKPhase = SDKPhase.LoginCheck;

        //如果SDK角色信息为空,直接走登录验证失败的流程
        if (userInfo == null)
        {
            Debug.LogError("AndroidSingleSDKHelper::LoginCheck-> userInfo == null!!");
          //  UICommonManager.GetInstance().bubbleLoopTipsControl.ShowTips("登录验证失败");
            OnLoginCheckFailed();
            yield break;
        }

        //如果SDK不需要登录验证,直接走登录验证成功的流程
        if (!userInfo.getNeedLoginCheck())
        {
            Debug.Log("AndroidSingleSDKHelper::LoginCheck-> user.getNeedLoginCheck == false");
            //更新当前用户信息
            mCurrentUser = userInfo;

            //调用代理
            finishCheckDelegate();
            yield break;
        }

        //生成登录验证Url地址
        string url = CreateLoginCheckURL();
        Debug.Log("AndroidSingleSDKHelper::LoginCheck-> url = " + url);
        //WWW用Post方式请求登录验证结果
        WWW www = new WWW(url);
        yield return www;

        string result = "";
        if (www.isDone && string.IsNullOrEmpty(www.error))
        {
            result = www.text;
        }
        Debug.Log("AndroidSingleSDKHelper::LoginCheck-> result = " + result);

        //解析登录验证返回的信息
        var respondDict = Json.Deserialize(result) as Dictionary<string, object>;
        if (respondDict == null)
        {
            //如果登录验证返回的信息为空,直接走登录验证失败的流程
            Debug.LogError("AndroidSingleSDKHelper::LoginCheck-> respondDict == null!!!");
          //  UICommonManager.GetInstance().bubbleLoopTipsControl.ShowTips("登录验证失败");
            OnLoginCheckFailed();
            //finishCheckDelegate();
            yield break;
        }

        string type = (string)respondDict["code"];
        if (type == null || !(type == "1"))
        {
            //如果登录验证返回的登录验证的标志不是SUCCESS,直接走登录验证失败的流程
            Debug.LogError("AndroidSingleSDKHelper::LoginCheck-> respondDict[result] != SUCCESS!!!");
           // UICommonManager.GetInstance().bubbleLoopTipsControl.ShowTips("登录验证失败");
            OnLoginCheckFailed();
            //finishCheckDelegate();
            yield break;
        }

        //如果登录验证返回用户信息是空,直接走登录验证失败的流程
        if (respondDict["info"] == null)
        {
            Debug.LogError("AndroidSingleSDKHelper::LoginCheck-> respondDict[userinfo] == null!!!");
           // UICommonManager.GetInstance().bubbleLoopTipsControl.ShowTips("登录验证失败");
            OnLoginCheckFailed();
            yield break;
        }
        
        //登录验证成功处理
        var userinfoDic = respondDict["info"] as Dictionary<string, object>;

        //更新当前用户信息
        userInfo.UpdateData(userinfoDic);
        mCurrentUser = userInfo;

        //调用代理
        finishCheckDelegate();
         
    }