protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { WeiXinOath wxOath = new WeiXinOath(); string postStr = ""; if (Request.HttpMethod.ToLower() == "post") { Stream s = System.Web.HttpContext.Current.Request.InputStream; byte[] b = new byte[s.Length]; s.Read(b, 0, (int)s.Length); postStr = Encoding.UTF8.GetString(b); } else { wxOath.Auth(); } } }
protected string RedrectWeiXin() { try { LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "重新获取openid:"); string url = HttpContext.Current.Request.Url.AbsolutePath; string query = HttpContext.Current.Request.Url.Query; string RedirectUri = homeUrl + url + query; WeiXinOath wxOath = new WeiXinOath(); WxUserInfo wxUserInfo = new WxUserInfo(); if (Session == null || string.IsNullOrEmpty(Session[Constant.OpenId].ObjToStr())) { LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "OpenId不存在:"); var code = Request.QueryString[Constant.WxCode]; LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "code:" + code); #region 根据code获取openid if (code != null && !string.IsNullOrEmpty(code)) { OauthToken oathToken = new OauthToken(); oathToken = wxOath.GetOauthToken(code);//获取用户openid Session[Constant.OpenId] = oathToken.openid; LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "openid:" + oathToken.openid); #region 存入用户信息 wxUserInfo = wxOath.GetWebUserInfo(accessToken, oathToken.openid); LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "存入用户信息:" + JsonConvert.SerializeObject(wxUserInfo)); var wxUserDB = context.Query <UserWeiChat>().FirstOrDefault(o => o.openid.Equals(oathToken.openid)); if (wxUserDB == null) { context.Insert(new UserWeiChat { createtime = DateTime.Now, headpic = wxUserInfo.headimgurl, nickname = wxUserInfo.nickname, openid = wxUserInfo.openid, unionid = string.Empty }); } else { wxUserDB.headpic = wxUserInfo.headimgurl; wxUserDB.nickname = wxUserInfo.nickname; context.Update(wxUserDB); } #endregion return(oathToken.openid); } else { wxOath.GetCode(RedirectUri); return(string.Empty); } #endregion } { return(Session[Constant.OpenId].ObjToStr()); } } catch (Exception ex) { LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "数据异常:" + ex.InnerException.Message); MessageBox.Show(this, "system_alert", "数据异常:" + ex.Message + ":" + ex.StackTrace); return(string.Empty); } }