微信小程序 获取openid 存入数据库 C#

        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 = "wx86星星点灯ca6";
                secret = "ab2bcae0星星点灯1836177824";


                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();
                }
                else
                {


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






                    //给数据看里写入用户的openId
                    MySqlDataReader reader1 = MysqlHelper.ExecuteReader("select * from yg_users where openId='" + openid + "'");
                    try
                    {
                        if (reader1.Read())
                        {
                            Log.Error("" + openid, "东海房产用户信息表查询到记录———不进行插入操作———————");
                        }
                        else
                        {
                            Log.Error("", "东海房产信息表查询不到记录———进行插入操作———————");
                            //无用户进行插入操作
                            int result1 = MysqlHelper.ExecuteNonQuery("insert into yg_users(openId,createdAt) values('" + openid + "', '" + DateTime.Now.ToString() + "')");
                            //Response.Write(result1);
                        }
                    }
                    catch
                    {
                        Log.Error("", "查询用户信息表———异常———————关闭reader");
                        reader1.Close();
                        //throw new HttpResponseException(HttpStatusCode.NotFound);
                    }
                    finally
                    {
                        Log.Error("" + openid, "查询用户信息表结束——————————关闭reader");
                        reader1.Close();
                    }




                    Log.Error("" + openid, "东海房产用户信息表返回openId———————");
                    //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;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值