老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網站建設、域名注冊、服務器等服務

.net開發(fā)微信公眾平臺實例教程-創(chuàng)新互聯

本篇內容主要講解“.net開發(fā)微信公眾平臺實例教程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“.net開發(fā)微信公眾平臺實例教程”吧!

為日土等地區(qū)用戶提供了全套網頁設計制作服務,及日土網站建設行業(yè)解決方案。主營業(yè)務為網站制作、成都網站制作、日土網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

具體實現方法如下:

一、說明:

公眾平臺信息接口為開發(fā)者提供了一種新的消息處理方式,只有申請成為開發(fā)者后,你才能使用公眾平臺的開發(fā)功能,在這里你需要填寫一個URL和一個Token,這兩項信息也需要你擁有自己的服務器(外網服務器)資源,其中的Token可由開發(fā)者任意填寫,URL即是接口配置信息的鏈接地址,在本文中我采用的是創(chuàng)建一個簡易網站的方式,在其中的一個頁面的后臺程序中配置相關的接口信息,然后發(fā)布到外網服務器上,最后可以訪問到這個頁面的鏈接地址即是這里應該填寫的URL。

.net開發(fā)微信公眾平臺實例教程

二、接口配置過程:

1.網址接入-校驗簽名:

復制代碼 代碼如下:

const string Token = "aka";//定義一個局部變量不可以被修改,這里定義的變量要與接口配置信息中填寫的Token一致
protected void Page_Load(object sender, EventArgs e)
{
        string postStr = "";
        Valid();//校驗簽名,當填入的信息提交之后頁面有提示“你已成功成為公眾平臺開發(fā)者,可以使用公眾平臺的開發(fā)功能”這個的時候,接下來你就需要注釋掉這個校驗的方法,使得后面的消息回復得以正常運作
        if (Request.HttpMethod.ToLower() == "post")//當普通微信用戶向公眾賬號發(fā)消息時,微信服務器將POST該消息到填寫的URL上
        {
            postStr = PostInput();
            if (string.IsNullOrEmpty(postStr) == false)
            {
                //WriteLog(postStr,Server);//計入日記
                ResponseMsg(postStr);
            }
        }
}
private void Valid()
{
        string echoStr = Request.QueryString["echoStr"].ToString();
        if (CheckSignature())
        {
            if (!string.IsNullOrEmpty(echoStr))
            {
                Response.Write(echoStr);
                Response.End();
            }
        }
}

.net開發(fā)微信公眾平臺實例教程

復制代碼 代碼如下:

///


/// 驗證微信簽名
///

///
private bool CheckSignature()
{
        string signature = Request.QueryString["signature"].ToString();
        string timestamp = Request.QueryString["timestamp"].ToString();
        string nonce = Request.QueryString["nonce"].ToString();
        string[] ArrTmp = { Token, timestamp, nonce };
        Array.Sort(ArrTmp);//字典排序
        string tmpStr = string.Join("", ArrTmp);
        tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//對該字符串進行sha1加密
        tmpStr = tmpStr.ToLower();//對字符串中的字母部分進行小寫轉換,非字母字符不作處理
        //WriteLog(tmpStr, Server);//計入日志
        if (tmpStr == signature)//開發(fā)者獲得加密后的字符串可與signature對比,標識該請求來源于微信。開發(fā)者通過檢驗signature對請求進行校驗,若確認此次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,否則接入失敗
        {
            return true;
        }
        else
            return false;
}

///


/// 獲取post返回來的數據
///

///
private string PostInput()
{
        Stream s = System.Web.HttpContext.Current.Request.InputStream;
        byte[] b = new byte[s.Length];
        s.Read(b, 0, (int)s.Length);
        return Encoding.UTF8.GetString(b);
}

///


///返回微信信息結果
///

///
private void ResponseMsg(string weixinXML)
{
        try
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(weixinXML);//讀取XML字符串
            XmlElement rootElement = doc.DocumentElement;

            XmlNode MsgType = rootElement.SelectSingleNode("MsgType");//獲取字符串中的消息類型

            string resxml = "";
            if (MsgType.InnerText == "text")//如果消息類型為文本消息
            {
                var model = new
                {
                    ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText,
                    FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText,
                    CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText,
                    MsgType = MsgType.InnerText,
                    Content = rootElement.SelectSingleNode("Content").InnerText,
                    MsgId = rootElement.SelectSingleNode("MsgId").InnerText
                };
                resxml += "" + ConvertDateTimeInt(DateTime.Now) + "";
                if (!string.IsNullOrEmpty(model.Content))//如果接收到消息
                {
                    if (model.Content.Contains(" 你好") || model.Content.Contains(" 好") || model.Content.Contains("hi") || model.Content.Contains("hello"))// 你好
                    {
                        resxml += "0
";
                    }

                 }

                 else//沒有接收到消息
                {
                    resxml += "0";
                }

                Response.Write(resxml);
            }
            if (MsgType.InnerText == "image")//如果消息類型為圖片消息
            {
                var model = new
                {
                    ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText,
                    FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText,
                    CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText,
                    MsgType = MsgType.InnerText,
                    PicUrl = rootElement.SelectSingleNode("PicUrl").InnerText,
                    MsgId = rootElement.SelectSingleNode("MsgId").InnerText
                };
                resxml += "" + ConvertDateTimeInt(DateTime.Now) + "1<![CDATA[歡迎您的光臨!]]>0";
                Response.Write(resxml);
            }
            else//如果是其余的消息類型
            {
                var model = new
                {
                    ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText,
                    FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText,
                    CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText,
                };
                resxml += "" + ConvertDateTimeInt(DateTime.Now) + "0";
                Response.Write(resxml);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        Response.End();

}
///


/// datetime轉換成unixtime
///

///
///
private int ConvertDateTimeInt(System.DateTime time)
{
        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
        return (int)(time - startTime).TotalSeconds;
}
///
/// 寫日志(用于跟蹤),可以將想打印出的內容計入一個文本文件里面,便于測試
///

public static void WriteLog(string strMemo, HttpServerUtility server)
{
        string filename = server.MapPath("/logs/log.txt");//在網站項目中建立一個文件夾命名logs(然后在文件夾中隨便建立一個web頁面文件,避免網站在發(fā)布到服務器之后看不到預定文件)
        if (!Directory.Exists(server.MapPath("http://logs//")))
            Directory.CreateDirectory("http://logs//");
        StreamWriter sr = null;
        try
        {
            if (!File.Exists(filename))
            {
                sr = File.CreateText(filename);
            }
            else
            {
                sr = File.AppendText(filename);
            }
            sr.WriteLine(strMemo);
        }
        catch
        {
        }
        finally
        {
            if (sr != null)
                sr.Close();
        }
}

到此,相信大家對“.net開發(fā)微信公眾平臺實例教程”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯建站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!


網站欄目:.net開發(fā)微信公眾平臺實例教程-創(chuàng)新互聯
鏈接URL:http://www.xueling.net.cn/article/coiecj.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 日本视频网| 欧美人与动牲交精品 | 少妇伦子伦情品无吗 | 国产精品久久国产精麻豆99网站 | 免费国无人区码卡二卡 | 国产伦子沙发午休系列资源曝光 | 黑人40厘米全部进去A片 | 日韩综合一区二区 | 欧美特黄aaa| 一本久道综合在线无码88 | 91精品国产综合久久小仙女图片 | 国产精品久久久久久久免费看 | 亚洲精品无码一区二区三区在线高 | 日韩一二三四 | 亚洲乱码av中文一区二区 | 亚洲综合熟女久久久30p | 精品亚洲国产成av人片传媒 | 四虎影视精品成人 | 91激情在线| 在线看片一区 | 国产午夜精品一区二区三区软件 | 久久精品婷婷 | 精品成人久久久 | 超碰在线公开免费 | 人人妻人人插视频 | 黄色在线观看www | 99久久免费精品国产男女性高好 | 一二三四区在线视频 | 国产毛1卡2卡3卡4卡视频 | 国产无遮挡又黄又爽不要VIP软件 | 蜜臀av入口 | 孕妇奶水仑乱A级毛片免费看 | 日韩精品亚洲Aⅴ在线影院 暖暖视频免费高清日本 | 欧美成人精品在线观看 | 久久9国产偷伦 | 亚洲黄色免费看 | 亚洲国产日韩一区二区三区 | 国产日女人 | 国产精品一区二区av麻豆 | 国产农村乱色xxxx | 99久久婷婷国产综合精品免费 |