国产探花免费观看_亚洲丰满少妇自慰呻吟_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秒后會自動回復你!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 称多县| 永昌县| 昭觉县| 郴州市| 田阳县| 深泽县| 吉隆县| 宾川县| 阿城市| 勃利县| 山阴县| 闸北区| 沁源县| 伊宁县| 夏河县| 西乌| 房产| 宾川县| 偃师市| 阜阳市| 辽阳市| 平罗县| 偃师市| 宝兴县| 衢州市| 肃北| 佛山市| 镇坪县| 鄂托克旗| 广宁县| 体育| 高碑店市| 南江县| 梁山县| 莆田市| 临夏市| 玉山县| 桂东县| 云阳县| 卓资县| 新化县|