? ? 要對接微信公眾平臺的"開發(fā)模式",即對接到自己的網(wǎng)站程序,必須在注冊成功之后(見Senparc.Weixin.MP SDK?微信公眾平臺開發(fā)教程(一):微信公眾平臺注冊),等待官方審核,審核通過之后,會在后臺頂部出現(xiàn)“高級功能”菜單。
? ? 使用“高級功能”>“開發(fā)模式”之前,必須有一個(gè)已經(jīng)部署在Internet上,可以用80端口訪問的網(wǎng)站(域名或IP訪問都可以),一些開發(fā)的準(zhǔn)備工作見文章:Senparc.Weixin.MP SDK?微信公眾平臺開發(fā)教程(二):成為開發(fā)者
? ? 首次進(jìn)入“高級功能”后界面如下:
? ? 我們看到默認(rèn)情況下,“編輯模式”是開啟的,要使用“開發(fā)模式”,必須先關(guān)閉“編輯模式”。
? ? 點(diǎn)擊進(jìn)入編輯模式。如下圖:
? ? 點(diǎn)擊右上角的滑塊,關(guān)閉“編輯功能”。
? ?然后回到“高級功能”,進(jìn)入“開發(fā)模式”,如下圖:
? ? 進(jìn)入開發(fā)模式后,我們需要設(shè)置與微信服務(wù)器通訊的Url,以及只有我們自己知道的Token(千萬不可泄露)。
? ? 官方已經(jīng)提供了一個(gè)PHP版本的示例:http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip,你也可以根據(jù)官方API的說明用自己的語言編寫。
? ? 在Senparc.Weixin.MP的開源項(xiàng)目中,我們也提供了ASP.NET MVC和ASP.NET Web Forms兩種可以直接部署的Demo:https://github.com/JeffreySu/WeiXinMPSDK
? ? 在提交的時(shí)候,微信服務(wù)器會對填寫的URL,使用Token進(jìn)行一次Get方式請求的驗(yàn)證,如果順利通過,則保存成功,如果不通過,會給出錯(cuò)誤信息,并且所填寫的信息是無法保存的。
? ? 為了更加直觀地演示這個(gè)URL對應(yīng)的程序中,應(yīng)高包含哪些必要元素,我這里給出Senparc.Weixin.MP的實(shí)現(xiàn)方法(我會分別以MVC和WebForms為例):
方法一:使用MVC
? ? 1、建立一個(gè)Controller,如WeixinController.cs,引用Senparc.Weixin.MP.dll(using Senparc.Weixin.MP.dll),最新的DLL見開源項(xiàng)目的Senparc.Weixin.MP.BuildOutPut文件夾https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.BuildOutPut
? ? 2、設(shè)置一個(gè)私有變量(當(dāng)然你也可以保存在數(shù)據(jù)庫中),如:
public readonly string Token = "weixin";//與微信公眾賬號后臺的Token設(shè)置保持一致,區(qū)分大小寫。
3、建立一個(gè)名稱為Index,用于Get請求的Action,如:
/// <summary> /// 微信后臺驗(yàn)證地址(使用Get),微信后臺的“接口配置信息”的Url填寫如:http://m.miracleart.cn/ /// </summary> [HttpGet] [ActionName("Index")] public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { return Content(echostr); //返回隨機(jī)字符串則表示驗(yàn)證通過 } else { return Content("failed:" + signature + "," + MP.CheckSignature.GetSignature(timestamp, nonce, Token)+"。如果您在瀏覽器中看到這條信息,表明此Url可以填入微信后臺。"); } }
至此,這些代碼編譯后按照要求部署到網(wǎng)站上,并且在“接口配置信息”中填寫http://m.miracleart.cn/,Token填寫weixin。
上述代碼完整的WeixinController.cs可以看這里。
方法二:使用Web Forms
Web Forms的驗(yàn)證過程和MVC是一樣的,只是寫法上有點(diǎn)差別,這里直接給出代碼(也要using Senparc.Weixin.MP.dll),假設(shè)文件名為根目錄下weixin.aspx:
public partial class Weixin : System.Web.UI.Page { private readonly string Token = "weixin";//與微信公眾賬號后臺的Token設(shè)置保持一致,區(qū)分大小寫。 protected void Page_Load(object sender, EventArgs e) { string signature = Request["signature"]; string timestamp = Request["timestamp"]; string nonce = Request["nonce"]; string echostr = Request["echostr"]; if (Request.HttpMethod == "GET") { //get method - 僅在微信后臺填寫URL驗(yàn)證時(shí)觸發(fā) if (CheckSignature.Check(signature, timestamp, nonce, Token)) { WriteContent(echostr); //返回隨機(jī)字符串則表示驗(yàn)證通過 } else { WriteContent("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token)); } } else { //判斷Post或其他方式請求 } Response.End(); } private void WriteContent(string str) { Response.Output.Write(str); } }
按照上面的代碼,在“接口配置信息”中,Url應(yīng)當(dāng)填寫http://YourDomain/weixin.aspx,Token應(yīng)當(dāng)填寫weixin。
? ? 上述weixin.aspx.cs完整代碼看這里(當(dāng)然你也可以寫成ashx進(jìn)一步提高效率)。
? ??
? ??CheckSignature.Check()方法是Senparc.Weixin.MP SDK中一個(gè)驗(yàn)證請求的方法,已經(jīng)做了封裝。這里直接使用是為了簡化代碼突出重點(diǎn),感興趣的朋友可以直接看源代碼。
? ? 用以上MVC和Web Forms兩種方法的任意一種,已經(jīng)可以讓后臺驗(yàn)證通過。但是注意,光有Get的方法,尚不能與微信用戶發(fā)來的信息通訊,因?yàn)橥ㄟ^前面的教程我們知道,微信后臺的Url是通過Get方式請求,而微信客戶端的請求是由Post方式請求的,關(guān)于Post的方法,我會在后面的教程中詳細(xì)說明。
? ? 并且,在目前的設(shè)置狀態(tài)下,即便你寫了Post相關(guān)的方法,通過驗(yàn)證之后也并不表示你的服務(wù)器已經(jīng)可以接收到微信服務(wù)器的消息了,還有最后一步:手動打開“開發(fā)者模式”:
? ? 現(xiàn)在這個(gè)微信賬號已經(jīng)成功切換到了“開發(fā)者模式”,所有微信客戶端發(fā)送到該公眾賬號的消息,都將轉(zhuǎn)發(fā)到剛才填寫的Url中。
? ? 下一篇我們將介紹如何使用最“粗礦”的方式響應(yīng)客戶端的發(fā)來的Post請求。
? ? 了解了“粗礦”方法之后,我們會正式進(jìn)入“精致”和“簡潔”的Senparc.Weixin.MP SDK的方法。
更多Senparc.Weixin.MP SDK 微信公眾平臺開發(fā)教程(三):微信公眾平臺開發(fā)驗(yàn)證?相關(guān)文章請關(guān)注PHP中文網(wǎng)!

熱AI工具

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

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

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

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版
神級代碼編輯軟件(SublimeText3)