美文网首页
2018-04-17 微信带参数的二维码

2018-04-17 微信带参数的二维码

作者: 863536 | 来源:发表于2018-04-17 09:32 被阅读0次

    原始代码记录

     public ActionResult Index()
            {
                if (Request.HttpMethod.ToLower() == "post") {
                    bb();
                }
                else
                {
                    string echoStr = Request.QueryString["echoStr"];
                    string token = Request.QueryString["token"];
    
                    if (CheckSignature())
                    {
                        if (!string.IsNullOrEmpty(echoStr))
                        {
                            Response.Write(echoStr);
                            Response.End();
                        }
                    }
                }
                return View();
            }
    
    public void bb() {
      
                //接收数据
                System.IO.StreamReader reader = new System.IO.StreamReader(Request.InputStream);
                String xmlData = reader.ReadToEnd();
                XElement xdoc = XElement.Parse(xmlData);
    
                //解析XML
                var toUserName = xdoc.Element("ToUserName").Value;
                var fromUserName = xdoc.Element("FromUserName").Value;
                var createTime = xdoc.Element("CreateTime").Value;
                string key= xdoc.Element("EventKey").Value;
                var content = xdoc.Element("Ticket").Value;
                DateTime datatime = DateTime.Now;
                if (!string.IsNullOrEmpty(key)) {
                    
                    AccessToken Token = wxApi.GetToken("wx0b024f521540d37e", "0bfcdde311c42067a1ece9eb2aa7ef48");
                    userin User = wxApi.GetNickname(Token.Accesstoken, fromUserName);
                    string a = User.Nickname;
    
    
                    string createSql = "insert into TgCount values('" + key + "','" + createTime + "','" + a + "','" + toUserName + "','" + datatime + "')";
                    using (DbOperator dboperator = ConnectionManager.CreateReadConnection())
                    {
                        dboperator.ExecuteNonQuery(createSql, 30000);
                    }
    
                }
    
                //int datetime = 1460541339;
    
                ////回复内容
                //StringBuilder resxml = new StringBuilder(
                //string.Format("<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime>", fromUserName, toUserName, datetime));
                //resxml.AppendFormat("<MsgType><![CDATA[text]]></MsgType><Content><![CDATA[{0}]]></Content><FuncFlag>0</FuncFlag></xml>", content);
                //string msg = resxml.ToString();
    
    
            }
    
    
      public bool CheckSignature()
            {
                string WeChat_Token = "test123";
                //  string WeChat_Key = Request.QueryString["key"];
    
                //  DataTable dtWeChat = wechatdal.GetList("wechat_key='" + WeChat_Key + "'").Tables[0];
    
                //if (dtWeChat.Rows.Count > 0)
                //{
                //    WeChat_Token = dtWeChat.Rows[0]["wechat_token"].ToString();
                //}
    
                //从微信服务器接收传递过来的数据
                string signature = Request.QueryString["signature"]; //微信加密签名
                string timestamp = Request.QueryString["timestamp"]; //时间戳
                string nonce = Request.QueryString["nonce"];//随机数
                string[] ArrTmp = { WeChat_Token, timestamp, nonce };
                Array.Sort(ArrTmp);     //字典排序
                string tmpStr = string.Join("", ArrTmp);//将三个字符串组成一个字符串
                tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//进行sha1加密
                tmpStr = tmpStr.ToLower();
                //加过密的字符串与微信发送的signature进行比较,一样则通过微信验证,否则失败。
                if (tmpStr == signature)
                {
                    return true;
                }
                else
                {
                    return false;
                }
    
            }
    

    相关文章

      网友评论

          本文标题:2018-04-17 微信带参数的二维码

          本文链接:https://www.haomeiwen.com/subject/tzqukftx.html