您的位置:首页 > 移动开发 > 微信开发

微信小程序获取openid服务器端代码

2017-02-25 20:01 288 查看
        string JsCode2SessionUrl = "";

        protected void Page_Load(object sender, EventArgs e)

        {

            JsCode2SessionUrl = "https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code";

            if (Request["Action"] == "ActionLogin")

            {

                string str_encryptedData = Request["encryptedData"];

                string iv = Request["iv"];

                //小程序appid和appsecret配置

                string appid = Request["appid"];

                string secret = Request["secret"];

                //如果不传过来可以在web.config里配置

                appid = ConfigurationManager.AppSettings["wx_appid"];

                secret = ConfigurationManager.AppSettings["wx_key"];

                string code = Request["code"];

                string sessionId = JsCode2Session(appid, secret, code);

                //Session["sessionId"] = sessionId;

                if (sessionId == "")

                {

                    Response.Write("{\"result\":\"session_key和openid取不到\",\"success\":false}");

                    Response.End();

                }

                string session_key = sessionId.Split(new Char[] { '#' })[0];

                string openid = sessionId.Split(new Char[] { '#' })[1];

                //Response.Write(sessionId);

                Response.Write("{\"result\":\"" + openid + "\",\"success\":true}");

                Response.End();

            }

        }

        //code换取session_key,openid

        //<summary>

        //code换取session_key,openid

        //</summary>

        //<param name="appid"></param>

        //<param name="secret"></param>

        //<param name="code"></param>

        //<returns></returns>

        public string JsCode2Session(string appid, string secret, string code)

        {

            var url = string.Format(JsCode2SessionUrl, appid, secret, code);

            var str = GetFunction(url);

            try

            {

                JsonData jo = JsonMapper.ToObject(str);

                string session_key = jo["session_key"].ToString();

                string weixinID = jo["openid"].ToString();

                return session_key + "#" + weixinID;

            }

            catch (Exception ex)

            {

                return "";

            }

        }

        public string GetFunction(string url)

        {

            string serviceAddress = url;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);

            request.Method = "GET";

            request.ContentType = "textml;charset=UTF-8";

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Stream myResponseStream = response.GetResponseStream();

            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);

            string retString = myStreamReader.ReadToEnd();

            myStreamReader.Close();

            myResponseStream.Close();

            //Response.Write(retString);

            return retString;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: