private string GetCatchUserToken(UserLogonCatchInfo userinfo) { //缓存玩家的登录信息到Cookies //userinfo.SNSID = (byte)this.SNSID; userinfo.MarkTimestamp(); userinfo.Sign = userinfo.MarkSign(this.APIKeySecretManager.ql_1.AppSecret); var base64data = userinfo.Serializer(); return(base64data); }
private int do_WEB_ALL_UserLogon(string unionId, UserLogonCatchInfo userinfo, byte SNSID, out DataSet ds) { return(Core.DBTools.Data.DataProcedureHelper.WEB_ALL_UserLogon( _unionId: unionId, _Gender: userinfo.Sex, _header: userinfo.HeadImg, _ip: this.HttpContext.Connection.RemoteIpAddress.ToString(), _nickName: userinfo.NickName, _openId: userinfo.OpenID, _snsId: userinfo.SNSID, outDataSet: out ds )); }
public IActionResult wx_app(string code, string appId = "11") { if (string.IsNullOrEmpty(code)) { return(WriteFail(notHasCodeValue)); } var _apiConfig = Global.Instance.APIKeySecretManager.GetConfigValue(appId, "wx"); if (_apiConfig == null) { return(WriteFail("输入了错误的微信AppId")); } var appid = _apiConfig.AppId; var secret = _apiConfig.AppSecret; var url = string.Format(get_accessToken, appid, secret, code); var res = HttpHelper.GetString(url); if (string.IsNullOrEmpty(res)) { return(WriteFail(invaildCode)); } var access_token = Newtonsoft.Json.JsonConvert.DeserializeObject <accessToken_INFO>(res); if (access_token == null || !access_token.IsValidData) { Global.Instance.QLDebug.WriteErrorString("access_token.access_token = " + res); return(WriteFail(canNotGetUserInfo)); } url = string.Format(get_userInfo, access_token.access_token, access_token.openid); res = HttpHelper.GetString(url); if (string.IsNullOrEmpty(res)) { Global.Instance.QLDebug.WriteErrorString("access_token.res = " + res); return(WriteFail(canNotGetUserInfo)); } //获取到用户信息的json字符串 var userinfo = Newtonsoft.Json.JsonConvert.DeserializeObject <user_INFO>(res); if (userinfo == null || !userinfo.IsValidData) { Global.Instance.QLDebug.WriteErrorString("access_token.userinfo = " + res); return(WriteFail(canNotBingUserInfo)); } Uri headImgUri; if (System.Uri.TryCreate(userinfo.headimgurl, UriKind.Absolute, out headImgUri)) { var oldPath = userinfo.headimgurl; userinfo.headimgurl = $"{headImgUri.Scheme}://{this.ConfigManager.WxHeadImgHost}{headImgUri.PathAndQuery}"; this.WriteLog($@"玩家{userinfo.nickname} 头像 源地址:{oldPath} 新地址:{userinfo.headimgurl}"); } var cacheInfo = new UserLogonCatchInfo() { HeadImg = userinfo.headimgurl + "", NickName = userinfo.nickname + "", OpenID = userinfo.openid, UnionID = userinfo.unionid, Sex = (byte)(userinfo.sex == 1 ? 1 : 2), RegionHost = this.ConfigManager.RegionHost, SNSID = (byte)_apiConfig.SNSSetID }; return(ProcessUserLogonResponse(cacheInfo)); }
private IActionResult ProcessUserLogonResponse(UserLogonCatchInfo userinfo) { IWebParamData param = null; //尝试获取该用户的分享参数 //if (!string.IsNullOrEmpty(userinfo.UnionID)) //{ // try // { // var url = RedisTools.ReadShareParam(userinfo.UnionID); // if (!string.IsNullOrEmpty(url)) // { // param = Uyi.Web.WebParamData.FromUrl(url); // } // } // catch { } //} if (param == null) { param = new WebParamData(); } int parentUser = 0; //if (!int.TryParse(param["parent"], out parentUser)) //{ // int.TryParse(context.Request["parent"], out parentUser); //} //初始化数据 string openid = userinfo.OpenID; string unionId = userinfo.UnionID; string headimg = userinfo.HeadImg; string nickname = userinfo.NickName; //调用数据接口 DataSet ds; int retVal = do_WEB_ALL_UserLogon(unionId, userinfo, userinfo.SNSID, out ds); this.WriteLog($"玩家登陆:retVal = {retVal}"); switch (retVal) { case 1: break; case -2: { return(Json(new { status = "showbox", msg = "您的账号已被封停,请联系客服", })); } default: { return(Json(new { status = "showtip", msg = "服务器维护中...", })); } } var dr = ds.Tables[0].Rows[0]; var userid = dr.GetData("userid").ConvertToUInt32(); if (userid <= 0) { return(WriteFail("登录失败")); } //userinfo.HeadImg = userinfo.HeadImg; //userinfo.NickName = dr["nickname"].ToString(); var catch_userTokken = GetCatchUserToken(userinfo); param["status"] = "success"; param["accesstoken"] = GetUserAccessToken(userid); param["catchtoken"] = catch_userTokken; //UyiDebug.WriteLog($"用户APP登录输出:{param.ToJson()}"); //响应结果数据 return(Json(param)); }