/// <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(); }