国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

微信開發基礎教程

2019-11-17 02:01:45
字體:
來源:轉載
供稿:網友

微信開發基礎教程

微信開發學習筆記----

1.正確填寫服務器配置信息

其中Url為我們的要接收并處理微信服務器發送的消息的一般處理程序地址,如:http://sadi.qrenlei.cn/WXTest.ashx

Token是一個開發者自定義的驗證字符串,可任意填寫。

點擊提交前,需要把咱們的包含一般處理程序的網站發布到服務器上。

2.一般處理程序的編寫

          if (Request.HttpMethod.ToLower() == "get")            {                Validate();            }         public void Validate()        {                 //微信接口接入驗證代碼                string signature = Request["signature"];                string token = "Your token";                string timestamp = Request["timestamp"];                string nonce = Request["nonce"];                string echostr = Request["echostr"];                string[] temp = { token, timestamp, nonce };                Array.Sort(temp);                string str = string.Join("", temp);                string sha1Str = FormsAuthentication.HashPassWordForStoringInConfigFile(str, "SHA1");                if (sha1Str.ToLower() == signature.ToLower())                {                    Response.Write(echostr);                }        }

服務器端配置好后,點擊“提交”按鈕,就會提示成功接入的信息。

3.接收消息

當普通微信用戶向公眾賬號發消息時,微信服務器將POST消息的xml數據包到開發者填寫的URL上。

            else if (Request.HttpMethod.ToLower() == "post")            {                //微信服務器發送信息是通過post請求,向發送者以流的形式發送xml                Stream xmlStream = Request.InputStream;                XmlDocument doc = new XmlDocument();                doc.Load(xmlStream);                XmlElement root = doc.DocumentElement;                string toUserName = root.SelectSingleNode("ToUserName").InnerText;                string fromUserName = root.SelectSingleNode("FromUserName").InnerText;                int createTime = int.Parse(root.SelectSingleNode("CreateTime").InnerText);                string msgType = root.SelectSingleNode("MsgType").InnerText;                string content = root.SelectSingleNode("Content").InnerText;                long msgId = Int64.Parse(root.SelectSingleNode("MsgId").InnerText);                            }     //因為服務器返回的是時間戳,即現在的時間與1970年1月1日8時0分0秒的秒數差,所以可以用此函數對時間進行處理        public DateTime GetDateTime(int timeSpan)        {            return new DateTime(1970,1,1,8,0,0).AddSeconds(timeSpan);        }        

4.返回消息

//微信服務器接收信息是通過post請求,向接收者以流的形式發送xml                /*                 格式為:                    <xml>                    <ToUserName><![CDATA[toUser]]>          </ToUserName>                    <FromUserName><![CDATA[fromUser]]></FromUserName>                    <CreateTime>12345678</CreateTime>                    <MsgType><![CDATA[text]]></MsgType>                    <Content><![CDATA[你好]]></Content>                    </xml>                 */                string reXml = string.Format(@"<xml>                    <ToUserName><![CDATA[{0}]]></ToUserName>                    <FromUserName><![CDATA[{1}]]></FromUserName>                    <CreateTime>{2}</CreateTime>                    <MsgType><![CDATA[text]]></MsgType>                    <Content><![CDATA[{3}]]></Content>                    </xml>", fromUserName, toUserName, GetSecond(), "已接收到你的消息[服務器自動回復]");                Response.Write(reXml);     
       public int GetSecond()          {              return (int)(DateTime.Now - new DateTime(1970, 1, 1, 8, 0, 0)).TotalSeconds;          }  

現在可以測試一下你的公眾號,向公眾號發送一個文本消息,公眾號在5秒后會自動回復你!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广饶县| 许昌县| 广昌县| 砀山县| 五台县| 清新县| 西安市| 双鸭山市| 沂南县| 洪泽县| 施秉县| 浦县| 开封县| 堆龙德庆县| 辽源市| 临武县| 灵石县| 当阳市| 丰台区| 岳普湖县| 岢岚县| 鹰潭市| 无棣县| 南昌市| 平乐县| 枣强县| 长海县| 福泉市| 平凉市| 大同市| 绿春县| 西城区| 商水县| 隆昌县| 张家川| 临猗县| 东辽县| 宁远县| 长垣县| 景谷| 三都|