校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > .net開發微信公眾平臺實例教程

.net開發微信公眾平臺實例教程

熱門標簽:百度地圖怎樣做地圖標注 浦發電話機器人提醒還款 400電話如何申請取消 電銷語音機器人型號參數 柳州電銷機器人公司 征途美甲店地圖標注 騰訊地圖標注手機 太原400電話上門辦理 昆明語音電銷機器人價格

本文實例講述了.net開發微信公眾平臺的方法。分享給大家供大家參考。具體實現方法如下:

一、說明:

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

二、接口配置過程:

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

復制代碼 代碼如下:
const string Token = "aka";//定義一個局部變量不可以被修改,這里定義的變量要與接口配置信息中填寫的Token一致
protected void Page_Load(object sender, EventArgs e)
{
        string postStr = "";
        Valid();//校驗簽名,當填入的信息提交之后頁面有提示“你已成功成為公眾平臺開發者,可以使用公眾平臺的開發功能”這個的時候,接下來你就需要注釋掉這個校驗的方法,使得后面的消息回復得以正常運作
        if (Request.HttpMethod.ToLower() == "post")//當普通微信用戶向公眾賬號發消息時,微信服務器將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();
            }
        }
}

復制代碼 代碼如下:
/// summary>
/// 驗證微信簽名
/// /summary>
/// returns>/returns>
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)//開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信。開發者通過檢驗signature對請求進行校驗,若確認此次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,否則接入失敗
        {
            return true;
        }
        else
            return false;
}

/// summary>
/// 獲取post返回來的數據
/// /summary>
/// returns>/returns>
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);
}

/// summary>
///返回微信信息結果
/// /summary>
/// param name="weixinXML">/param>
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 += "xml>ToUserName>![CDATA[" + model.FromUserName + "]]>/ToUserName>FromUserName>![CDATA[" + model.ToUserName + "]]>/FromUserName>CreateTime>" + ConvertDateTimeInt(DateTime.Now) + "/CreateTime>";
                if (!string.IsNullOrEmpty(model.Content))//如果接收到消息
                {
                    if (model.Content.Contains(" 你好") || model.Content.Contains(" 好") || model.Content.Contains("hi") || model.Content.Contains("hello"))// 你好
                    {
                        resxml += "MsgType>![CDATA[text]]>/MsgType>Content>![CDATA[你好,有事請留言,偶會及時回復你的。]]>/Content>FuncFlag>0/FuncFlag>/xml>";
                    }

                 }

                 else//沒有接收到消息
                {
                    resxml += "MsgType>![CDATA[text]]>/MsgType>Content>![CDATA[親,感謝您對我的關注,有事請留言。]]>/Content>FuncFlag>0/FuncFlag>/xml>";
                }

                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 += "xml>ToUserName>![CDATA[" + model.FromUserName + "]]>/ToUserName>FromUserName>![CDATA[" + model.ToUserName + "]]>/FromUserName>CreateTime>" + ConvertDateTimeInt(DateTime.Now) + "/CreateTime>MsgType>![CDATA[news]]>/MsgType>ArticleCount>1/ArticleCount>Articles>item>Title>![CDATA[歡迎您的光臨!]]>/Title>Description>![CDATA[非常感謝您的關注!]]>/Description>PicUrl>![CDATA[http://...jpg]]>/PicUrl>Url>![CDATA[http://www.baidu.com/]]>/Url>/item>/Articles>FuncFlag>0/FuncFlag>/xml>";
                Response.Write(resxml);
            }
            else//如果是其余的消息類型
            {
                var model = new
                {
                    ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText,
                    FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText,
                    CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText,
                };
                resxml += "xml>ToUserName>![CDATA[" + model.FromUserName + "]]>/ToUserName>FromUserName>![CDATA[" + model.ToUserName + "]]>/FromUserName>CreateTime>" + ConvertDateTimeInt(DateTime.Now) + "/CreateTime>MsgType>![CDATA[text]]>/MsgType>Content>![CDATA[親,感謝您對我的關注,有事請留言,我會及時回復你的哦。]]>/Content>FuncFlag>0/FuncFlag>/xml>";
                Response.Write(resxml);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        Response.End();

}
/// summary>
/// datetime轉換成unixtime
/// /summary>
/// param name="time">/param>
/// returns>/returns>
private int ConvertDateTimeInt(System.DateTime time)
{
        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
        return (int)(time - startTime).TotalSeconds;
}
/// summary>
/// 寫日志(用于跟蹤),可以將想打印出的內容計入一個文本文件里面,便于測試
/// /summary>
public static void WriteLog(string strMemo, HttpServerUtility server)
{
        string filename = server.MapPath("/logs/log.txt");//在網站項目中建立一個文件夾命名logs(然后在文件夾中隨便建立一個web頁面文件,避免網站在發布到服務器之后看不到預定文件)
        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程序設計有所幫助。

您可能感興趣的文章:
  • 微信小程序 獲取微信OpenId詳解及實例代碼
  • MVC微信網頁授權獲取用戶OpenId
  • PHP通過微信跳轉的Code參數獲取用戶的openid(關鍵代碼)
  • 微信公眾號支付(一)如何獲取用戶openId
  • 微信公眾平臺實現獲取用戶OpenID的方法
  • .net實現微信公眾賬號接口開發實例代碼
  • asp.net微信開發(永久素材管理)
  • asp.net開發微信公眾平臺之獲取用戶消息并處理
  • asp.net微信開發(開發者接入)
  • .NET微信公眾號獲取OpenID和用戶信息

標簽:新疆 白山 陽泉 張家界 蘭州 江蘇 天門 德陽

巨人網絡通訊聲明:本文標題《.net開發微信公眾平臺實例教程》,本文關鍵詞  .net,開發,微信,公眾,平臺,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《.net開發微信公眾平臺實例教程》相關的同類信息!
  • 本頁收集關于.net開發微信公眾平臺實例教程的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国内成人免费视频| 亚洲人一二三区| 蜜臂av日日欢夜夜爽一区| 欧美视频在线一区二区三区| 一区二区在线观看不卡| 欧美影院一区二区| 日本在线不卡视频| 精品处破学生在线二十三| 成人一道本在线| 亚洲欧洲综合另类在线 | 一级特黄大欧美久久久| 成人免费毛片嘿嘿连载视频| 欧美videos中文字幕| 国产在线精品一区二区| 欧美国产一区视频在线观看| 一本一本大道香蕉久在线精品| 色先锋久久av资源部| 亚洲国产欧美一区二区三区丁香婷| 亚洲影院理伦片| 91麻豆精品国产自产在线观看一区| 欧美不卡视频一区| 国产激情视频一区二区三区欧美 | 久久青草欧美一区二区三区| 国产福利电影一区二区三区| 亚洲男女一区二区三区| 欧美视频完全免费看| 蜜乳av一区二区| 中文字幕人成不卡一区| 欧美日韩不卡一区二区| 国产成人av福利| 亚洲综合在线免费观看| 久久综合国产精品| 色婷婷av一区二区三区gif| 免费成人在线网站| 国产精品剧情在线亚洲| 日韩一区国产二区欧美三区| www.日本不卡| 久久电影网站中文字幕| 日韩毛片在线免费观看| 日韩三级伦理片妻子的秘密按摩| 亚洲电影一区二区三区| 精品国产一区二区三区久久久蜜月| 尤物在线观看一区| 久久色在线观看| 欧美日韩一区二区不卡| 成人高清视频在线| 美日韩黄色大片| 亚洲综合清纯丝袜自拍| 国产欧美一区二区精品性| 6080国产精品一区二区| 成人自拍视频在线| 久久精品国产亚洲高清剧情介绍 | 欧美成人精品1314www| eeuss鲁一区二区三区| 久久99精品久久久| 亚洲成a人v欧美综合天堂| 中文字幕中文字幕中文字幕亚洲无线| 国产在线视频不卡二| 亚洲成人黄色影院| 亚洲天堂精品在线观看| 国产日韩精品一区二区三区| 日韩久久免费av| 欧美精品国产精品| 欧美中文一区二区三区| 97国产精品videossex| 国产福利一区二区三区| 国产真实乱子伦精品视频| 天堂精品中文字幕在线| 一区二区三区在线影院| 亚洲日本电影在线| 亚洲婷婷综合久久一本伊一区| 色婷婷综合久久久| 91免费小视频| 色综合欧美在线视频区| 91网址在线看| 9人人澡人人爽人人精品| 成人在线综合网| 成人av综合一区| av成人动漫在线观看| 91免费观看视频在线| 91麻豆swag| 欧美私人免费视频| 欧美日韩和欧美的一区二区| 日本精品一级二级| 在线免费观看日本一区| 色婷婷久久一区二区三区麻豆| 亚洲超丰满肉感bbw| 亚洲国产精品久久不卡毛片| 亚洲一区在线观看网站| 亚洲大片精品永久免费| 日韩精品电影在线| 日本视频一区二区| 国产精品亚洲成人| zzijzzij亚洲日本少妇熟睡| 99精品久久只有精品| 色88888久久久久久影院野外| 精品一区二区三区视频在线观看| 国产精品无遮挡| 亚洲柠檬福利资源导航| 亚洲一区二区成人在线观看| 丝袜亚洲另类欧美| 激情深爱一区二区| 不卡欧美aaaaa| 欧美色老头old∨ideo| 日韩欧美一区二区在线视频| 久久综合久久99| 亚洲免费av在线| 青椒成人免费视频| 成人午夜视频在线观看| 欧美亚洲国产一区二区三区| 日韩一区二区三区在线观看| 国产色产综合色产在线视频| 一区二区三区小说| 国产在线不卡一区| 色综合久久综合| 日韩免费福利电影在线观看| 亚洲欧洲精品一区二区三区不卡 | 久久黄色级2电影| 成人午夜激情影院| 欧美一区日韩一区| 国产精品美女久久久久久久网站| 日韩三级免费观看| 国产精品久线观看视频| 日本中文字幕不卡| 91蝌蚪porny| 欧美tickling挠脚心丨vk| 亚洲视频一区二区在线观看| 奇米影视7777精品一区二区| 99久久99久久综合| 久久亚洲私人国产精品va媚药| 制服丝袜在线91| 亚洲三级在线观看| 国内偷窥港台综合视频在线播放| 蜜桃久久久久久久| 91黄视频在线观看| 久久久久久久av麻豆果冻| 午夜久久久久久久久| 不卡的av电影| 久久久亚洲欧洲日产国码αv| 欧美一区二区成人| 一区二区三区在线看| 国产成人午夜电影网| 欧美一区二区三区日韩| 亚洲亚洲人成综合网络| 风间由美中文字幕在线看视频国产欧美| 久久国产免费看| 欧美日韩在线三区| 亚洲欧美电影一区二区| 成人av电影观看| 国产日本一区二区| 国产精品99久久久久久有的能看| 国产成人免费av在线| 欧美一区二区精品久久911| 一区二区三区欧美久久| av电影天堂一区二区在线观看| 在线中文字幕不卡| 亚洲欧美怡红院| 国产精品资源在线| 久久久久国产精品人| 久久99国产精品久久99| 欧美一级久久久| 麻豆91免费看| 日韩欧美精品在线| 精品一二三四区| 精品理论电影在线观看| 久久99精品国产麻豆不卡| 日韩欧美不卡在线观看视频| 免费看欧美女人艹b| 日韩欧美国产系列| 国产一区二区在线影院| 国产亚洲一区二区三区四区| 国精品**一区二区三区在线蜜桃| av动漫一区二区| 亚洲精品成人天堂一二三| 一本到三区不卡视频| 亚洲人成伊人成综合网小说| 91在线无精精品入口| 亚洲精品欧美综合四区| 欧美亚洲日本一区| 日本欧洲一区二区| 久久网这里都是精品| 成人国产免费视频| 亚洲一区二区欧美激情| 日韩一区二区在线观看视频| 日本不卡1234视频| 久久蜜臀精品av| 91香蕉视频污在线| 日韩激情一区二区| 国产区在线观看成人精品| 99re亚洲国产精品| 婷婷开心久久网| 久久综合久久综合久久| 91香蕉视频污在线| 日本视频一区二区三区| 国产日韩影视精品| 色哟哟欧美精品| 美脚の诱脚舐め脚责91 | 中文字幕一区二区不卡| 91国产丝袜在线播放| 日本免费新一区视频|