最近在接觸微信開發(fā),也有在看php的程式碼,不過最後還是使用c#語言了;
在後臺(tái)新建了index.ashx文件,這樣速度比較快;
首先頂部引用了
using System.IO;
using System.Xml;
#一個(gè)是為了實(shí)作接收xml檔案流,一個(gè)是為了後面對(duì)xml檔案的處理;
public?class?index?:?IHttpHandler?{ ????private?readonly?string?Token?=?"xxxx";//與微信公眾賬號(hào)后臺(tái)的Token設(shè)置保持一致,區(qū)分大小寫。 ???? ????public?void?ProcessRequest?(HttpContext?context)?{ ????????context.Response.ContentType?=?"text/plain"; ????????string?signature?=?context.Request["signature"]; ????????string?timestamp?=?context.Request["timestamp"]; ????????string?nonce?=?context.Request["nonce"]; ????????string?echostr?=?context.Request["echostr"]; ????????if?(context.Request.HttpMethod?==?"GET") ????????{ ????????????if?(CheckSign(signature,?timestamp,?nonce)) ????????????{ ????????????????context.Response.Output.Write(echostr); ????????????} ????????} ????????else ????????{ ????????????//post?method?-?當(dāng)有用戶想公眾賬號(hào)發(fā)送消息時(shí)觸發(fā),寫事件 ????????} ????????context.Response.End(); ????}
首先設(shè)定好Token,接收各種參數(shù),請(qǐng)求方式是以get的方式發(fā)送;
這裡主要呢是CheckSign()函數(shù);
public?bool?CheckSign(string?signature,?string?timestamp,?string?nonce) ????{ ????????string[]?strs?=?new?string[]?{?Token,?timestamp,?nonce?}; ????????Array.Sort(strs);//排序 ????????string?strNew?=?string.Join("",?strs);//連接成字符串 ????????strNew?=?System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strNew,?"SHA1");//加密 ????????if?(signature?==?strNew.ToLower()) ????????????return?true; ????????return?false; ????}
其實(shí)這裡的意識(shí)就是接收到A/B/C/D,E為自訂,B/C/E生成F,與A比較,相等回傳輸出D;
string?xmlFromWeChat?=?new?StreamReader(context.Request.InputStream).ReadToEnd();//讀取XML流 ????????????XmlDocument?xmldocument?=?new?XmlDocument(); ????????????xmldocument.LoadXml(xmlFromWeChat);加載字符串 ????????????string?fromContent?=?xmldocument.GetElementsByTagName("Content").Item(0).InnerText; ????????????string?fromMsgType?=?xmldocument.GetElementsByTagName("MsgType").Item(0).InnerText;
寫的不好指出哈! !
這樣我們就可以對(duì)接收到的資料進(jìn)行判斷,做出對(duì)應(yīng)的操作,最主要的還是要熟悉介面;
?
下面就一個(gè)例子說明一下,可能沒有抽象的很好:
public?string?receiveText(string?xmlFromWeChat) ????{ ????????XmlDocument?xmlText?=?new?XmlDocument(); ????????xmlText.LoadXml(xmlFromWeChat); ????????string?content; ????????string?xmlStr; ????????string?keyword?=?xmlText.GetElementsByTagName("Content").Item(0).InnerText.Trim(); ???????? ???????????????content?=?"歡迎關(guān)注xxx!"; ???????????????string[]?defArray?=?{?xmlText.GetElementsByTagName("FromUserName").Item(0).InnerText,? ??????????????????????????????xmlText.GetElementsByTagName("ToUserName").Item(0).InnerText,? ??????????????????????????????ConvertDateTimeInt(DateTime.Now).ToString(), ??????????????????????????????content}; ???????????????xmlStr?=?transmitText(defArray); ??????????????? ????????} ???????? ???????? ????????return?xmlStr; ????}
public?string?transmitText(string[]?xmlArray) ????{ ????????string?xmlstring?=?@"<xml> ????????????????????????????<tousername></tousername> ????????????????????????????<fromusername></fromusername> ????????????????????????????<createtime>{2}</createtime> ????????????????????????????<msgtype></msgtype> ????????????????????????????<content></content> ????????????????????????????</xml>"; ????????string?xmlstr?=?string.Format(xmlstring,?xmlArray); ????????return?xmlstr; ????}
這樣子就完成的一個(gè)簡單的回復(fù)了;

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

PHP是一種開源的腳本語言,廣泛應(yīng)用於網(wǎng)頁開發(fā)和伺服器端編程,尤其在微信開發(fā)中得到了廣泛的應(yīng)用。如今,越來越多的企業(yè)和開發(fā)者開始使用PHP進(jìn)行微信開發(fā),因?yàn)樗蔀榱苏嬲囊讓W(xué)易用的開發(fā)語言。在微信開發(fā)中,訊息的加密和解密是一個(gè)非常重要的問題,因?yàn)樗鼈兩婕百Y料的安全性。對(duì)於沒有加密和解密方式的消息,駭客可以輕鬆取得其中的數(shù)據(jù),對(duì)用戶造成威脅

在微信公眾號(hào)開發(fā)中,投票功能經(jīng)常被運(yùn)用。投票功能是讓使用者快速參與互動(dòng)的好方式,也是舉辦活動(dòng)和調(diào)查意見的重要工具。本文將為您介紹如何使用PHP實(shí)作微信投票功能。在取得微信公眾號(hào)授權(quán)首先,你需要取得微信公眾號(hào)的授權(quán)。在微信公眾平臺(tái)上,你需要設(shè)定微信公眾號(hào)碼的api地址、官方帳號(hào)和公眾號(hào)碼對(duì)應(yīng)的token。在我們使用PHP語言開發(fā)的過程中,我們需要使用微信官方提供的PH

隨著微信的普及,越來越多的企業(yè)開始將其作為行銷工具。而微信群發(fā)功能,則是企業(yè)進(jìn)行微信行銷的重要手段之一。但是,如果只依靠手動(dòng)發(fā)送,對(duì)於行銷人員來說是一件極為費(fèi)時(shí)費(fèi)力的工作。所以,開發(fā)一款微信群發(fā)工具就顯得格外重要。本文將介紹如何使用PHP開發(fā)微信群發(fā)工具。一、準(zhǔn)備工作開發(fā)微信群發(fā)工具,我們需要掌握以下幾個(gè)技術(shù)點(diǎn):PHP基礎(chǔ)知識(shí)微信公眾平臺(tái)開發(fā)開發(fā)工具:Sub

微信是目前全球用戶規(guī)模最大的社群平臺(tái)之一,隨著行動(dòng)網(wǎng)路的普及,越來越多的企業(yè)開始意識(shí)到微信行銷的重要性。在進(jìn)行微信行銷時(shí),客服服務(wù)是至關(guān)重要的一環(huán)。為了更好地管理客服聊天窗口,我們可以藉助PHP語言進(jìn)行微信開發(fā)。一、PHP微信開發(fā)簡介PHP是一種開源的伺服器端腳本語言,廣泛用於Web開發(fā)領(lǐng)域。結(jié)合微信公眾平臺(tái)提供的開發(fā)接口,我們可以使用PHP語言進(jìn)行微信

在微信公眾號(hào)開發(fā)中,使用者標(biāo)籤管理是一個(gè)非常重要的功能,可以讓開發(fā)者更了解和管理自己的使用者。本篇文章將介紹如何使用PHP實(shí)作微信使用者標(biāo)籤管理功能。一、取得微信用戶openid在使用微信用戶標(biāo)籤管理功能之前,我們首先需要取得用戶的openid。在微信公眾號(hào)開發(fā)中,透過使用者授權(quán)的方式取得openid是比較常見的做法。在使用者授權(quán)完成後,我們可以透過以下程式碼取得用

隨著微信成為了人們生活中越來越重要的通訊工具,其敏捷的訊息傳遞功能迅速受到廣大企業(yè)和個(gè)人的青睞。對(duì)企業(yè)而言,將微信發(fā)展為一個(gè)行銷平臺(tái)已經(jīng)成為趨勢(shì),而微信開發(fā)的重要性也逐漸凸顯。在其中,群發(fā)功能更是被廣泛使用,那麼,作為PHP程式設(shè)計(jì)師,如何實(shí)現(xiàn)群發(fā)訊息發(fā)送記錄呢?以下將為大家簡單介紹一下。 1.了解微信公眾號(hào)相關(guān)開發(fā)知識(shí)在了解如何實(shí)現(xiàn)群發(fā)訊息發(fā)送記錄之前,我

如何使用PHP實(shí)現(xiàn)微信公眾號(hào)開發(fā)微信公眾號(hào)已經(jīng)成為了許多企業(yè)推廣和互動(dòng)的重要管道,而PHP作為常用的Web語言,也可以用來進(jìn)行微信公眾號(hào)的開發(fā)。本文將介紹使用PHP實(shí)現(xiàn)微信公眾號(hào)開發(fā)的具體步驟。第一步:取得微信公眾號(hào)的開發(fā)者帳號(hào)在開始微信公眾號(hào)開發(fā)之前,需要先去申請(qǐng)一個(gè)微信公眾號(hào)的開發(fā)者帳號(hào)。具體的註冊(cè)流程可參考微信公眾平臺(tái)的官方網(wǎng)

隨著網(wǎng)路和行動(dòng)智慧型裝置的發(fā)展,微信成為了社交和行銷領(lǐng)域不可或缺的一部分。在這個(gè)越來越數(shù)位化的時(shí)代,如何使用PHP進(jìn)行微信開發(fā)已經(jīng)成為了許多開發(fā)者的關(guān)注點(diǎn)。本文主要介紹如何使用PHP進(jìn)行微信發(fā)展的相關(guān)知識(shí)點(diǎn),以及其中的一些技巧和注意事項(xiàng)。一、開發(fā)環(huán)境準(zhǔn)備在進(jìn)行微信開發(fā)之前,首先需要準(zhǔn)備好對(duì)應(yīng)的開發(fā)環(huán)境。具體來說,需要安裝PHP的運(yùn)作環(huán)境,以及微信公眾平臺(tái)提
