Esempio n. 1
0
        /// <summary>
        /// 获取openid和access_token
        /// </summary>
        /// <returns></returns>
        public ActionResult getOpenid(string code, string state, string goBackUrl)
        {
            //string orderXml = "Code:" + code + ",State:" + state;
            //var fileStream = System.IO.File.OpenWrite(Server.MapPath("~/1.txt"));
            //fileStream.Write(Encoding.Default.GetBytes(orderXml), 0, Encoding.Default.GetByteCount(orderXml));
            //fileStream.Close();
            StringBuilder url = new StringBuilder();

            url.AppendFormat("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}", ConfigurationManager.AppSettings["WEPAY_WEB_APPID"].ToString().Trim());
            url.AppendFormat("&secret={0}", ConfigurationManager.AppSettings["WEPAY_WEb_AppSecret"].ToString().Trim());
            url.AppendFormat("&code={0}&grant_type=authorization_code", code);
            //url.AppendFormat(" &scope=snsapi_userinfo");
            var client  = new HttpClient();
            var retJson = client.GetAsync(url.ToString()).Result.Content.ReadAsStringAsync().Result;

            OAuthResponeData oAuth = null;
            bool             ok    = false;

            try
            {
                oAuth = JsonConvert.DeserializeObject <OAuthResponeData>(retJson);
                //var fileStream = System.IO.File.OpenWrite(Server.MapPath("~/1.txt"));
                //fileStream.Write(Encoding.Default.GetBytes(retJson), 0, Encoding.Default.GetByteCount(retJson));
                //fileStream.Close();
                ok = (oAuth != null && !string.IsNullOrEmpty(oAuth.openid));
            }
            catch (Exception ex)
            {
                //Utils.AppContext.ErrorLog("weixin error", ex.Message, ex);
                ok = false;
            }
            if (!ok)
            {
                // Utils.AppContext.ErrorLog("weixin error ret:", retJson);
                return(RedirectToAction("Login", "Account", new { redirectUrl = goBackUrl, wxLogin = false }));
            }
            //var getNameUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + oAuth.access_token + "&openid=" + oAuth.openid;
            //var rtJs = client.GetAsync(getNameUrl).Result.Content.ReadAsStringAsync().Result;
            //UserInfoR userinfo = null;
            //userinfo = JsonConvert.DeserializeObject<UserInfoR>(retJson);
            //if (userinfo)
            //{

            //}
            return(Redirect(goBackUrl + "?openid=" + oAuth.openid));
        }
Esempio n. 2
0
        /// <summary>
        /// 获得openid
        /// </summary>
        /// <param name="code"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public ActionResult OtherGetOpenId(string code, string state)
        {
            StringBuilder url = new StringBuilder();

            url.AppendFormat("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}", ConfigurationManager.AppSettings["AppId"].ToString().Trim());
            url.AppendFormat("&secret={0}", ConfigurationManager.AppSettings["AppSecret"].ToString().Trim());
            url.AppendFormat("&code={0}&grant_type=authorization_code", code);
            var client             = new HttpClient();
            var retJson            = client.GetAsync(url.ToString()).Result.Content.ReadAsStringAsync().Result;
            OAuthResponeData oAuth = null;

            try
            {
                oAuth = JsonConvert.DeserializeObject <OAuthResponeData>(retJson);
            }
            catch (Exception ex)
            {
                return(Content("<script type='text/javascript'>alert('微信授权失败!');location.href='/Account/Login';</script>"));
            }
            return(Redirect("/Account/Login?openid=" + oAuth.openid));
        }