public object ActivePhoneNumber(string phoneNumber, int code) { int Status = db.ActiveAccountByPhoneAndCode(phoneNumber, code).First().Value; // Invalid Phone Number if (Status == 1) { return(new ResponseVM(RequestTypeEnumVM.Error, Token.InvalidPhoneNotFound)); } //Invalid Active Code if (Status == 2) { return(new ResponseVM(RequestTypeEnumVM.Error, Token.InvalidCode)); } //Already Activated if (Status == 3) { return(new ResponseVM(RequestTypeEnumVM.Info, Token.AlreadyActivated)); } var User = db.Users.First(c => c.PhoneNumber == phoneNumber); LanguageService.SetCulture(User.LanguageType.Code); //Now Create Access Token AccessTokenVM AccessToken = CreateS.CreateToken(User, User.LanguageType.Code, false); //Activated return(new ResponseVM(RequestTypeEnumVM.Success, Token.Activated, new { IsActivePhone = true, UserInformation = new UsersData().GetUserIformation(User.Id), AccessToken })); }
/** * snsapi_base * **/ public async Task <ActionResult> OAuthSnsApiBase() { string code = Request.QueryString["code"]; try { if (!string.IsNullOrEmpty(code)) { OAuthToken oauthToken = await WeChatHepler.GetAsync <OAuthToken>( $"https://api.weixin.qq.com/sns/oauth2/access_token?appid={SettingsManager.WeiXin.AppId}&secret={SettingsManager.WeiXin.AppSecret}&code={code}&grant_type=authorization_code"); string accesstoken = string.Empty; AccessTokenVM tokenVm = await WeChatHepler.GetAccessTokenAsync(SettingsManager.WeiXin.AppId, SettingsManager.WeiXin.AppSecret); if (!string.IsNullOrEmpty(tokenVm?.access_token)) { accesstoken = tokenVm.access_token; } if (oauthToken != null && !string.IsNullOrEmpty(oauthToken.openid)) { OAuthUserInfo userInfo = await WeChatHepler.GetAsync <OAuthUserInfo>( $"https://api.weixin.qq.com/cgi-bin/user/info?access_token={accesstoken}&openid={oauthToken.openid}&lang=zh_CN"); if (userInfo != null) { Log("获取到用户信息nickName:" + userInfo.nickname); // return View(userInfo); //BatchSendMessagesVM message = new BatchSendMessagesVM { Touser = new string[] { userInfo.Openid, "oBjaPuA6nUCz6ufJFtse-3sDYB4I" }, Msgtype = "text", Text = new Message { Content = "测试消息!" } }; var message = new SingleSendMessagesVM { ToUser = userInfo.Openid, MsgType = "text", Text = new Message { Content = "单发测试消息!" } }; string json = JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented, new JsonSerializerSettings { ContractResolver = new LowercaseContractResolver() }); Log("post:" + json); HttpContent content = new StringContent(json); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var oo = await WeChatHepler.SingleSendMessagesAsync(accesstoken, content); Log("群发消息:" + oo.ErrMsg); ViewData["headImage"] = userInfo.headimgurl; ViewData["openid"] = userInfo.Openid; ViewData["nickName"] = userInfo.nickname; if (userInfo.sex == 0) { ViewData["sex"] = "未知"; } else if (userInfo.sex == 1) { ViewData["sex"] = "男"; } else { ViewData["sex"] = "女"; } ViewData["province"] = userInfo.province; ViewData["city"] = userInfo.city; } else { Log("未获取到用户信息"); } } else { Log("access_token:" + oauthToken.access_token + ",openid:" + oauthToken.openid); } } else { return(Redirect( $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={SettingsManager.WeiXin.AppId}&redirect_uri={"http://" + Request.Url.Host + Url.Action("OAuthSnsApiBase")}&response_type=code&scope=snsapi_base&state=123456#wechat_redirect")); } } catch (Exception ex) { Log(ex.Message); ViewData["errmsg"] = ex.Message; } return(View()); }
public object Login(string userName, string password, bool isRemmberMe) { CheckedService CheckedS = new CheckedService(db); CreateService CreateS = new CreateService(db); UserService UserS = new UserService(); string Culture = LanguageService.DefaultLangage; UserVM UserData = new UserVM { Id = db.Users_CheckFromUserNameIsValid(userName).First(), UserName = userName, Password = password }; //Create User Login And Check Is Block //Check User Name Used if (!UserData.Id.HasValue) { return(new ResponseVM(RequestTypeEnumVM.Error, Token.InvalidData)); } //Add User Login With Statues Login Right Now User User = CreateS.UserLogin(UserData); if (User == null) { return(new ResponseVM(RequestTypeEnumVM.Error, Token.InvalidData)); } if (User.IsPhoneActivated == false) { return(new ResponseVM(RequestTypeEnumVM.Error, Token.YouAreNotActive, new { IsActivePhone = false, UserInformation = new { PhoneNumber = User.PhoneNumber } })); } //Check last Login is Block if (User.IsBlocked) { //retuen message Account Block return(new ResponseVM(RequestTypeEnumVM.Error, Token.YoureAccountIsBlocked)); } else //Check last Login Statues if (!User.IsSuccessLogin) { return(new ResponseVM(RequestTypeEnumVM.Error, Token.InvalidData)); } /* * Check user role mustbe if Client or Client **Notes** any user login in app basically included role client */ if (!CheckedS.Roles(User.UserRoles, new int[] { RoleEnumVM.Client })) { return(new ResponseVM(RequestTypeEnumVM.Error, Token.YouNotClient)); } Culture = User.LanguageType.Code; LanguageService.SetCulture(Culture); //Now Create Access Token AccessTokenVM AccessToken = CreateS.CreateToken(User, Culture, isRemmberMe); ResponseVM Res = new ResponseVM(); Res.RequestType = RequestTypeEnumVM.Success; Res.Data = new { IsActivePhone = true, UserInformation = new UsersData().GetUserIformation(User.Id), AccessToken }; //return the token return(Res); }