亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
方法一:使用MVC
方法二:使用Web Forms
首頁(yè) 微信小程序 微信開發(fā) Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證

Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證

Feb 22, 2017 pm 03:34 PM
微信公眾平臺(tái)

? ? 要對(duì)接微信公眾平臺(tái)的"開發(fā)模式",即對(duì)接到自己的網(wǎng)站程序,必須在注冊(cè)成功之后(見Senparc.Weixin.MP SDK?微信公眾平臺(tái)開發(fā)教程(一):微信公眾平臺(tái)注冊(cè)),等待官方審核,審核通過之后,會(huì)在后臺(tái)頂部出現(xiàn)“高級(jí)功能”菜單。

? ? 使用“高級(jí)功能”>“開發(fā)模式”之前,必須有一個(gè)已經(jīng)部署在Internet上,可以用80端口訪問的網(wǎng)站(域名或IP訪問都可以),一些開發(fā)的準(zhǔn)備工作見文章:Senparc.Weixin.MP SDK?微信公眾平臺(tái)開發(fā)教程(二):成為開發(fā)者

? ? 首次進(jìn)入“高級(jí)功能”后界面如下:

Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證

? ? 我們看到默認(rèn)情況下,“編輯模式”是開啟的,要使用“開發(fā)模式”,必須先關(guān)閉“編輯模式”。

? ? 點(diǎn)擊進(jìn)入編輯模式。如下圖:

Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證

? ? 點(diǎn)擊右上角的滑塊,關(guān)閉“編輯功能”。

Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證

? ?然后回到“高級(jí)功能”,進(jìn)入“開發(fā)模式”,如下圖:

Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證

? ? 進(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

Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證

? ? 在提交的時(shí)候,微信服務(wù)器會(huì)對(duì)填寫的URL,使用Token進(jìn)行一次Get方式請(qǐng)求的驗(yàn)證,如果順利通過,則保存成功,如果不通過,會(huì)給出錯(cuò)誤信息,并且所填寫的信息是無法保存的。

? ? 為了更加直觀地演示這個(gè)URL對(duì)應(yīng)的程序中,應(yīng)高包含哪些必要元素,我這里給出Senparc.Weixin.MP的實(shí)現(xiàn)方法(我會(huì)分別以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ù)庫(kù)中),如:

        public readonly string Token = "weixin";//與微信公眾賬號(hào)后臺(tái)的Token設(shè)置保持一致,區(qū)分大小寫。

3、建立一個(gè)名稱為Index,用于Get請(qǐng)求的Action,如:

        /// <summary>
        /// 微信后臺(tái)驗(yàn)證地址(使用Get),微信后臺(tái)的“接口配置信息”的Url填寫如:http://ipnx.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可以填入微信后臺(tái)。");
            }
        }

  至此,這些代碼編譯后按照要求部署到網(wǎng)站上,并且在“接口配置信息”中填寫http://ipnx.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";//與微信公眾賬號(hào)后臺(tái)的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 - 僅在微信后臺(tái)填寫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或其他方式請(qǐng)求
            }
             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)證請(qǐng)求的方法,已經(jīng)做了封裝。這里直接使用是為了簡(jiǎn)化代碼突出重點(diǎn),感興趣的朋友可以直接看源代碼。

? ? 用以上MVC和Web Forms兩種方法的任意一種,已經(jīng)可以讓后臺(tái)驗(yàn)證通過。但是注意,光有Get的方法,尚不能與微信用戶發(fā)來的信息通訊,因?yàn)橥ㄟ^前面的教程我們知道,微信后臺(tái)的Url是通過Get方式請(qǐng)求,而微信客戶端的請(qǐng)求是由Post方式請(qǐng)求的,關(guān)于Post的方法,我會(huì)在后面的教程中詳細(xì)說明。

? ? 并且,在目前的設(shè)置狀態(tài)下,即便你寫了Post相關(guān)的方法,通過驗(yàn)證之后也并不表示你的服務(wù)器已經(jīng)可以接收到微信服務(wù)器的消息了,還有最后一步:手動(dòng)打開“開發(fā)者模式”:

Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證

? ? 現(xiàn)在這個(gè)微信賬號(hào)已經(jīng)成功切換到了“開發(fā)者模式”,所有微信客戶端發(fā)送到該公眾賬號(hào)的消息,都將轉(zhuǎn)發(fā)到剛才填寫的Url中。

? ? 下一篇我們將介紹如何使用最“粗礦”的方式響應(yīng)客戶端的發(fā)來的Post請(qǐng)求。

? ? 了解了“粗礦”方法之后,我們會(huì)正式進(jìn)入“精致”和“簡(jiǎn)潔”的Senparc.Weixin.MP SDK的方法。

更多Senparc.Weixin.MP SDK 微信公眾平臺(tái)開發(fā)教程(三):微信公眾平臺(tái)開發(fā)驗(yàn)證?相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!


本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

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

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72