コード例 #1
0
 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();
         }
     }
 }
コード例 #2
0
ファイル: BasePage.cs プロジェクト: tumoxuese/XSTORE_V3
 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);
     }
 }