国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
1、微信帳號
2、微信選單定義
?3、接入微信的鏈接處理
4、使用開發(fā)方式建立選單
4、我創(chuàng)建的菜單案例
首頁 微信小程式 微信開發(fā) C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

Feb 16, 2017 pm 04:27 PM

微信應(yīng)用如火如荼,許多公司都希望搭上資訊快車,這個(gè)是一個(gè)商機(jī),也是一個(gè)技術(shù)的方向,因此,有空研究下、學(xué)習(xí)下微信的相關(guān)開發(fā),也就成為日常計(jì)劃的重要事情之一了。本系列文章希望從一個(gè)循序漸進(jìn)的角度上,全面介紹微信的相關(guān)開發(fā)過程和相關(guān)經(jīng)驗(yàn)總結(jié),希望給大家了解一下相關(guān)的開發(fā)歷程。本隨筆主要針對微信開發(fā)過程的前期準(zhǔn)備和一些初始的工作的介紹。

在寫下本文的之前一周時(shí)間裡,我主要是參考一些介紹文章以及微信公眾平臺的相關(guān)接口說明,並結(jié)合C#的代碼開發(fā),整理了自己公司的門戶界面,實(shí)現(xiàn)了微信工作號的初步使用者互動(dòng)和資訊展示工作,隨著工作的進(jìn)一步開展,越來越多的功能可能加入,並希望從應(yīng)用角度上擴(kuò)展微信的接口,從而實(shí)現(xiàn)我對微信接口的技術(shù)探秘和了解過程。

1、微信帳號

要開發(fā)使用微信的平臺API,就需要到微信的公眾平臺(https://mp.weixin.qq.com/)去註冊,擁有一個(gè)服務(wù)號碼訂閱號,服務(wù)號碼主要面對企業(yè)和組織,訂閱號碼主要面向組織和個(gè)人,他們之間有一定的差異,根據(jù)不同的需要自己申請對應(yīng)的帳號即可。

為了使用一些高級的接口,你可能需要擁有服務(wù)號和高級的認(rèn)證。帳號註冊過程,需要下載一個(gè)申請表格,列印並蓋公章,另外還需要申請人拿著身分證拍照(有點(diǎn)怪異,呵呵),然後上傳到伺服器進(jìn)行審核,一般很快就能取得核準(zhǔn)。

我以公司名義申請了服務(wù)號,帳號註冊後,會(huì)在主界面上顯示你的相關(guān)信息,另外給你申請一個(gè)二維碼的東西,掃描二維碼即可進(jìn)入公司的微信關(guān)注確認(rèn)對話框,非常方便。如下就是我申請後的公司帳號二維碼,可以直接使用掃描。

C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

2、微信選單定義

微信有兩種方式的選單定義,一種是編輯模式,一種是開發(fā)模式,兩者互斥,也就是說,一旦我們採用了開發(fā)模式,就不能使用編輯模式了,反過來也一樣。編輯下的選單,其實(shí)也是可以管理的,但微信不支持,覺得很不爽。

一般情況下,如果我們剛剛申請了微信號碼,可以使用編輯選單測試一下,根據(jù)說明編輯一些選單試試。雖然微信說24小時(shí)內(nèi)更新,不過一般很快,最快可能一兩分鐘就更新了,感覺還是不錯(cuò)的。

使用開發(fā)者模式,你需要根據(jù)微信的要求,在伺服器上放置一個(gè)頁面鏈接,使用C#開發(fā)的,可以採用***.ashx的命名方式,使用Asp.NET的一般處理程序即可,不需要使用普通的頁面。

使用開發(fā)模式的選單,也就是可以呼叫微信API進(jìn)行選單建立的工作,對於呼叫微信的API(微信有很多API可以呼叫),我們需要知道,有幾個(gè)參數(shù)的重要性,所以在開發(fā)模式打開的時(shí)候,會(huì)給你列出這些參數(shù),如下圖。

C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

?3、接入微信的鏈接處理

上面說了,你申請開發(fā)模式對菜單或?qū)ζ渌鸄PI的調(diào)用,你需要順利通過接入微信的測試,也就是確認(rèn)你填寫的鏈接存在並能順利經(jīng)過微信的回調(diào)測試。微信提供了一個(gè)PHP的頁面處理例子,如果我們是C#開發(fā)的呢,可以搜一下就會(huì)得到答案,我的處理方式如下所示。

創(chuàng)建一個(gè)一般處理程序,然後在其處理頁裡面增加一個(gè)處理邏輯,如果是非POST方式的內(nèi)容,就是表示微信進(jìn)行的Get測試,你需要增加一些處理邏輯,把它給你的內(nèi)容傳回去即可,如果是POST方式的,就是微信伺服器對介面訊息的請求操作了,後面介紹。

????///?<summary>
????///?微信接口。統(tǒng)一接收并處理信息的入口。????///?</summary>
????public?class?wxapi?:?IHttpHandler
????{????????public?void?ProcessRequest(HttpContext?context)
????????{????????????string?postString?=?string.Empty;????????????if?(HttpContext.Current.Request.HttpMethod.ToUpper()?==?"POST")
????????????{????????????????using?(Stream?stream?=?HttpContext.Current.Request.InputStream)
????????????????{
????????????????????Byte[]?postBytes?=?new?Byte[stream.Length];
????????????????????stream.Read(postBytes,?0,?(Int32)stream.Length);
????????????????????postString?=?Encoding.UTF8.GetString(postBytes);
????????????????}????????????????if?(!string.IsNullOrEmpty(postString))
????????????????{
????????????????????Execute(postString);
????????????????}
????????????}????????????else
????????????{????????????????Auth();?//微信接入的測試????????????}
????????}

一般來說,Auth函數(shù)裡面,就是要對相關(guān)的參數(shù)進(jìn)行獲取,然後進(jìn)行處理返回給微信伺服器。

????????????string?token?=?"****";//你申請的時(shí)候填寫的Token

????????????string?echoString?=?HttpContext.Current.Request.QueryString["echoStr"];????????????string?signature?=?HttpContext.Current.Request.QueryString["signature"];????????????string?timestamp?=?HttpContext.Current.Request.QueryString["timestamp"];????????????string?nonce?=?HttpContext.Current.Request.QueryString["nonce"];

完整的Author函數(shù)程式碼如下所示,其中我把業(yè)務(wù)邏輯進(jìn)行進(jìn)一步抽取到了一個(gè)新的類別裡面,方便業(yè)務(wù)邏輯的管理。

????????///?<summary>
????????///?成為開發(fā)者的第一步,驗(yàn)證并相應(yīng)服務(wù)器的數(shù)據(jù)????????///?</summary>
????????private?void?Auth()
????????{????????????string?token?=?ConfigurationManager.AppSettings["WeixinToken"];//從配置文件獲取Token
????????????if?(string.IsNullOrEmpty(token))
????????????{
????????????????LogTextHelper.Error(string.Format("WeixinToken?配置項(xiàng)沒有配置!"));
????????????}????????????string?echoString?=?HttpContext.Current.Request.QueryString["echoStr"];????????????string?signature?=?HttpContext.Current.Request.QueryString["signature"];????????????string?timestamp?=?HttpContext.Current.Request.QueryString["timestamp"];????????????string?nonce?=?HttpContext.Current.Request.QueryString["nonce"];????????????if?(new?BasicApi().CheckSignature(token,?signature,?timestamp,?nonce))
????????????{????????????????if?(!string.IsNullOrEmpty(echoString))
????????????????{
????????????????????HttpContext.Current.Response.Write(echoString);
????????????????????HttpContext.Current.Response.End();
????????????????}
????????????}
????????}

而對微信參數(shù)的簽章並回傳的操作CheckSignature,程式碼如下圖所示。

????????///?<summary>
????????///?驗(yàn)證微信簽名????????///?</summary>
????????public?bool?CheckSignature(string?token,?string?signature,?string?timestamp,?string?nonce)
????????{????????????string[]?ArrTmp?=?{?token,?timestamp,?nonce?};

????????????Array.Sort(ArrTmp);????????????string?tmpStr?=?string.Join("",?ArrTmp);

????????????tmpStr?=?FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr,?"SHA1");
????????????tmpStr?=?tmpStr.ToLower();????????????if?(tmpStr?==?signature)
????????????{????????????????return?true;
????????????}????????????else
????????????{????????????????return?false;
????????????}
????????}

4、使用開發(fā)方式建立選單

一旦你順利通過微信的認(rèn)證,那麼它就讓你以開發(fā)方式呼叫它的API,並且可以隨意創(chuàng)建你的選單了。

創(chuàng)建選單的方式,你可以透過下面的位置進(jìn)入到他的API處理介面裡面。

C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

進(jìn)入後,你會(huì)發(fā)現(xiàn)微信把很多訊息的處理,分門別類放到不同的分類裡面了。

C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

其實(shí)我們現(xiàn)在初步要做的就是如何看看,使用程式碼方式呼叫建立選單,進(jìn)入選單的API偵錯(cuò)介面裡面。

C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

你會(huì)發(fā)現(xiàn)裡面還需要輸入一個(gè)Access_Token的東西,這個(gè)是一個(gè)會(huì)話身份認(rèn)證,因此你還需要到介面裡面去找這個(gè)如何創(chuàng)建的。下面圖的兩個(gè)紅色部分,就是我們開始的時(shí)候,微信提示我們「開發(fā)者憑證」的兩個(gè)關(guān)鍵參數(shù)。

C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

弄完這些,你就可以根據(jù)獲得的Access_Token進(jìn)行選單的創(chuàng)建工作了,根據(jù)選單的定義,它分為幾類,可以分為URL方式(View),事件方式(Click)。

click:用戶點(diǎn)擊click類型按鈕後,微信伺服器會(huì)透過訊息介面推播訊息類型為event 的結(jié)構(gòu)給開發(fā)者(參考訊息介面指南),並且?guī)习粹o中開發(fā)者填寫的key值,開發(fā)者可以透過自訂的key值與使用者互動(dòng);
view:使用者點(diǎn)擊view類型按鈕後,微信用戶端將會(huì)開啟開發(fā)者在按鈕中填寫的url值 (即網(wǎng)頁連結(jié)),達(dá)到開啟網(wǎng)頁的目的,建議與網(wǎng)頁授權(quán)取得使用者基本資訊介面結(jié)合,取得使用者的登入個(gè)人資訊。

?

4、我創(chuàng)建的菜單案例

在隨筆的開始,我公佈了一個(gè)二維碼,一旦使用微信掃一掃,進(jìn)行關(guān)注服務(wù)號後,那麼就可以看到我自己創(chuàng)建的菜單了。主選單一般最多三列,每個(gè)主選單還可以有子選單,他們的文字都有限制的。

我們來看看我公司的微信門戶菜單,看起來是不是很酷呢。

C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信接口

?

更多C#開發(fā)微信入口網(wǎng)站及應(yīng)用(1)--開始使用微信介面相關(guān)文章請關(guān)注PHP中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)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脫衣器

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)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)