/// <summary> /// 登录校验. /// </summary> /// <returns>校验状态.</returns> /// <param name="iUserInfo">用户信息.</param> private void loginCheck(OneSDKUserInfo iUserInfo) { this.UpdateStatus(SDKStatus.LoginChecking); if (true == string.IsNullOrEmpty(this._loginCheckBaseUrl)) { this.Error("loginCheck()::The base url of login check is invalid!!!"); this.UpdateStatus(SDKStatus.LoginCheckFailed); return; } string _loginCheckUrl = this._loginCheckBaseUrl; this.Info("loginCheck()::Url:{0}", _loginCheckUrl); if (true == string.IsNullOrEmpty(_loginCheckUrl)) { this.Error("loginCheck()::The url of login check is invalid!!!"); this.UpdateStatus(SDKStatus.LoginCheckFailed); return; } // 详细数据 string _jsonData = GetLoginCheckInfoJson(iUserInfo); if (true == string.IsNullOrEmpty(_jsonData)) { this.Error("createLoginCheckURL():JsonConvert Failed!!!(Data:{0})", iUserInfo.ToString()); this.UpdateStatus(SDKStatus.LoginCheckFailed); return; } HttpWebResponse _response = executeHttpPost(_loginCheckUrl, _jsonData); if (null == _response) { this.UpdateStatus(SDKStatus.LoginCheckFailed); return; } this.Info("loginCheck()::Result:{0}", _response.StatusCode); if (HttpStatusCode.OK != _response.StatusCode) { if (null != this._loginCheckFailed) { this._loginCheckFailed(_response.StatusCode.ToString()); } this.UpdateStatus(SDKStatus.LoginCheckFailed); return; } if (null != this._loginCheckSuccessed) { this._loginCheckSuccessed(_response.StatusCode.ToString()); } this.UpdateStatus(SDKStatus.LoginCheckSuccessed); }
/// <summary> /// 应用. /// </summary> /// <param name="iUserInfo">用户数据.</param> public void Apply(OneSDKUserInfo iUserInfo) { this.Reset(); this.app = iUserInfo.ProductCode; this.sdk = iUserInfo.ChannelId; this.uin = iUserInfo.ChannelUserId; this.sess = iUserInfo.Token; this.channel = iUserInfo.ChannelId; this.platform = BuildInfo.GetInstance().PlatformType.ToString(); this.option = "OneSDK"; }
/// <summary> /// 取得登录校验用信息(Json格式). /// </summary> /// <returns>登录校验用信息(Json格式).</returns> /// <param name="iUserInfo">易接用户信息.</param> private string GetLoginCheckInfoJson(OneSDKUserInfo iUserInfo) { OneSDKLoginCheckInfo _checkInfo = new OneSDKLoginCheckInfo(); if (null == _checkInfo) { this.UpdateStatus(SDKStatus.LoginCheckFailed); return(null); } _checkInfo.Apply(iUserInfo); // 详细数据 string _jsonData = UtilsJson <OneSDKLoginCheckInfo> .ConvertToJsonString(_checkInfo); if (true == string.IsNullOrEmpty(_jsonData)) { this.Error("createLoginCheckURL():JsonConvert Failed!!!(Data:{0})", _checkInfo.ToString()); this.UpdateStatus(SDKStatus.LoginCheckFailed); return(null); } return(_jsonData); }
/// <summary> /// 解析登录信息. /// </summary> /// <returns>Json数据对象.</returns> /// <param name="iJsonDetail">Json详细.</param> public SDKAccountBaseInfo ParserLoginResponseInfo(string iJsonDetail) { // 登录完成 this.UpdateStatus(SDKStatus.LoginCompleted); if (null == this._userInfo) { this._userInfo = new OneSDKUserInfo(); } if (null == this._userInfo) { this.Error("ParserLoginResponseInfo()::Memory New Error!!!!"); return(this._userInfo); } this._userInfo.Reset(); SFJSONObject _sfjson = new SFJSONObject(iJsonDetail); if (null == _sfjson) { return(null); } string _status = (string)_sfjson.get("result"); string _customParams = (string)_sfjson.get("customParams"); this.Info("ParserLoginResponseInfo()::CustomParams:{0}", _customParams); // 登出 if (true == S_LOGOUT.Equals(_status)) { this._sfUserInfo = null; this.UpdateStatus(SDKStatus.Logouted); // 重登录 if (true == this._isLogin) { this.ReLogin(); } // 登录成功 } else if (true == S_LOGIN_SUCCESS.Equals(_status)) { this.UpdateStatus(SDKStatus.LoginCompleted); SFJSONObject _userinfoTmp = (SFJSONObject)_sfjson.get("userinfo"); if (null != _userinfoTmp) { this._userInfo.UserID = long.Parse((string)_userinfoTmp.get("id")); this._userInfo.ChannelId = (string)_userinfoTmp.get("channelid"); this._userInfo.ChannelUserId = (string)_userinfoTmp.get("channeluserid"); this._userInfo.UserName = (string)_userinfoTmp.get("username"); this._userInfo.Token = (string)_userinfoTmp.get("token"); this._userInfo.ProductCode = (string)_userinfoTmp.get("productcode"); this._sfUserInfo = new SFOnlineUser( this._userInfo.UserID, this._userInfo.ChannelId, this._userInfo.ChannelUserId, this._userInfo.UserName, this._userInfo.Token, this._userInfo.ProductCode); } if (null != this._loginCheckCallback) { // 校验数据 string _checkInfo = GetLoginCheckInfoJson(this._userInfo); if (true == string.IsNullOrEmpty(_checkInfo)) { this.Error("ParserLoginResponseInfo():JsonConvert Failed!!!(Data:{0})", this._userInfo.ToString()); this.UpdateStatus(SDKStatus.LoginCheckFailed); return(null); } this.Info("ParserLoginResponseInfo()::CheckInfo:{0}", _checkInfo); this._loginCheckCallback(_checkInfo, this._loginCheckSuccessed, this._loginCheckFailed); } else { // 登录校验&更新状态 loginCheck(this._userInfo); } // 登录失败 } else if (true == S_LOGIN_FAILED.Equals(_status)) { this.UpdateStatus(SDKStatus.LoginFailed); // 重登录 if (true == this._isLogin) { this.ReLogin(); } } this.Info("ParserLoginResponseInfo()::UserResultInfo:{0}", this._userInfo.ToString()); return(this._userInfo); }