/// <summary> /// 登录 并获取信息 存放到session中 /// </summary> /// <param name="domain"></param> /// <param name="openId"></param> /// <param name="passWord"></param> protected async System.Threading.Tasks.Task <bool> LoginSuccess(string domain, string openId, string passWord) { string info = domain + "|" + openId + "|" + passWord + "|"; var service = new Services.WxUserService(); var tokenValue = await service.GetToken(domain, openId, passWord); if (tokenValue.Contains("invalid_client")) { throw new Comm.YYException.YYException("登录失败" + info + tokenValue + ",请联系管理员"); } //if (tokenValue.Contains("invalid_grant")) //{ // //ModelState.AddModelError("", "登录失败,请联系管理员"); // throw new Comm.YYException.YYException("登录失败"+ info + tokenValue + ",请联系管理员"); //} Session["tokenInfo"] = ""; Session["accessToken"] = ""; Session["refreshToken"] = ""; if (tokenValue.Contains("invalid_grant")) //没有权限 { Session["Binding"] = "0"; } else { Sys.Models.TokenInfo tokenInfo = new Sys.Models.TokenInfo(tokenValue); Session["Binding"] = "1"; Session["tokenInfo"] = tokenValue; Session["accessToken"] = tokenInfo.access_token; Session["refreshToken"] = tokenInfo.refresh_token; } return(true); }
/// <summary> /// 上报地理位置 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnEvent_LocationRequest(RequestMessageEvent_Location requestMessage) { bool flag = false; string msg = ""; try { flag = new Services.WxUserService().ReportPosition(new Sys.Models.WxUserInfo() { OpenId = requestMessage.FromUserName, Latitude = requestMessage.Latitude, Longitude = requestMessage.Longitude }); } catch (Comm.YYException.YYException ex) { msg = ex.Message; logs.Error("上报地理位置失败", ex); } catch (Exception ex) { msg = ex.Message; logs.Error("上报地理位置失败", ex); } //var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageNews>(requestMessage); //var markersList = new List<Senparc.Weixin.MP.Entities.BaiduMap.BaiduMarkers>(); //markersList.Add(new Senparc.Weixin.MP.Entities.BaiduMap.BaiduMarkers() //{ // Latitude = requestMessage.Latitude, // Longitude = requestMessage.Longitude, // Color = "red", // Label = "S", // Size = Senparc.Weixin.MP.Entities.BaiduMap.BaiduMarkerSize.Default, //}); return(null); //这里是微信客户端(通过微信服务器)自动发送过来的位置信息 var responseMessage = CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = msg.ToString(); return(responseMessage);//这里也可以返回null(需要注意写日志时候null的问题) }
/// <summary> /// 获取信息 /// </summary> /// <param name="domain"></param> /// <param name="token"></param> /// <param name="openId"></param> /// <returns></returns> public async System.Threading.Tasks.Task GetMineInfo(string domain, string token, string openId) { try { var service = new Services.WxUserService(); var userValue = await service.GetMe(domain, token, openId); JObject jo = JObject.Parse(userValue); if (jo["Error"] != null) { if (Convert.ToBoolean(jo["Error"].ToString())) { //ModelState.AddModelError("", jo["Msg"].ToString()); throw new Comm.YYException.YYException(jo["Msg"].ToString()); } Session[domain] = jo["Info"].ToString(); } } catch { } }