bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

.net如何開發微信公眾平臺

這篇文章主要為大家展示了“.net如何開發微信公眾平臺”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“.net如何開發微信公眾平臺”這篇文章吧。

蛟河ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

公眾平臺信息http://www.php.cn/code/11829.html" target="_blank">接口為開發者提供了一種新的消息處理方式,只有申請成為開發者后,你才能使用公眾平臺的開發功能,在這里你需要填寫一個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();
            }
        }
}

.net如何開發微信公眾平臺

/// <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("//logs//")))
            Directory.CreateDirectory("//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如何開發微信公眾平臺”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

新聞標題:.net如何開發微信公眾平臺
轉載源于:http://vcdvsql.cn/article32/jhjgpc.html

成都網站建設公司_創新互聯,為您提供品牌網站建設網站建設云服務器網站策劃商城網站電子商務

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作