?在本系列隨筆的前面,主要就是介紹微信公眾號的門戶應用開發(fā),最近把整個微信框架進行了擴展補充,增加了最新的企業(yè)號的API封裝和開發(fā),後續(xù)主要介紹如何利用C#進行微信企業(yè)號的開發(fā)工作,本篇作為微信企業(yè)號的開發(fā)的起步篇,介紹微信企業(yè)號的配置和使用。
1、微信企業(yè)號的註冊和登陸
企業(yè)號是繼公眾號、訂閱號的另外一種微信類型,它主要是面對企業(yè)的。企業(yè)號是微信為企業(yè)客戶提供的行動應用入口??梢詭椭髽I(yè)建立員工、上下游供應鏈與企業(yè) IT 系統(tǒng)間的連結。利用 企業(yè)號 ,企業(yè)或第三方合作夥伴可以幫助企業(yè)快速、低成本的實現(xiàn)高品質(zhì)的行動輕應用,實現(xiàn)生產(chǎn)、管理、協(xié)作、營運的 行動化 。
個人覺得企業(yè)號最大的亮點是可以不限數(shù)量的消息發(fā)送,也就是可以在企業(yè)員工之間暢通交流。相對於公眾號和訂閱號,發(fā)送訊息的謹慎程度,微信企業(yè)號可謂給人眼前一亮的感覺。不過微信企業(yè)號是需要內(nèi)部建立好通訊錄,關注者需要匹配通訊錄的微信號、郵箱、電話號碼任一個通過才可以關注,也就是可以防止其他外來人員的自由關注了,另外如果為了安全考慮,還可以設定二次驗證,也就是一個審核過程。
企業(yè)號的認證和公眾號一樣,需要提供相關的企業(yè)資質(zhì)文件,並且認證每年都要收取費用,否則可能有人員和功能的一些限制。覺得微信真是想著方法賺錢,目前已有的收費模式有,訂閱號碼、公眾號、企業(yè)號、開放平臺,好像都有認證收費的了,而且微信小店也還需要收2萬的押金,一切都是錢呀。
好了,其他不多說,微信的註冊地址是:https://qy.weixin.qq.com,一個郵箱不能同時註冊微信公眾號和微信企業(yè)號。
對於企業(yè)開通企業(yè)號並開始使用需要四步驟
1)?企業(yè)到微信官網(wǎng)(?http://qy.weixin.qq.com?)申請開通;
2)?開通後,企業(yè)在企業(yè)號管理後臺導入成員,發(fā)布二維碼;
3)?企業(yè)調(diào)用企業(yè)號?api?與企業(yè)自有系統(tǒng)對接開發(fā);
4)?員工關注,收到微信訊息,在微信中與企業(yè)交互
註冊好企業(yè)號,就可以透過微信掃一掃,掃描企業(yè)二維碼進行登錄了,掃描的時候,需要微信進行確認,才可以繼續(xù)輸入密碼進行登錄,操作界面如下所示(左邊是手機截圖,右邊是網(wǎng)頁截圖) 。
?
登入後我們就可以看到對應的電腦端的管理介面了。
2、設定開發(fā)回調(diào)模式
如果開發(fā)過微信公眾號,那麼我們就知道,如果需要在微信伺服器和網(wǎng)站伺服器之間建立連接關係,實現(xiàn)訊息的轉(zhuǎn)發(fā)和處理,那麼就應該設置一個回調(diào)模式,需要配置相關的參數(shù)。然後在自己?網(wǎng)站伺服器裡面建立一個處理微信伺服器訊息的入口。
?
進入設定後,我們需要修改相關的URL、Token、EncodingAESKey等參數(shù),主要是URL,這個就是和公眾號的入口處理一樣的,需要我們發(fā)佈到網(wǎng)站伺服器上的處理入口。
Token和AESKey可以根據(jù)提示動態(tài)產(chǎn)生一個即可,AESKey好像必須是23位的,所以這個一般是讓它自己產(chǎn)生的,這個主要用來加密解密使用的。
URL、Token、EncodingAESKey三個參數(shù)說明。
1)URL是企業(yè)應用程式接收企業(yè)號推播請求的存取協(xié)定和位址,支援http或https協(xié)定。
2)Token可由企業(yè)任意填寫,用於產(chǎn)生簽名。
3)EncodingAESKey用於訊息體的加密,是AES金鑰的Base64編碼。
驗證URL、Token以及加密的詳細處理請參考後續(xù) “接收訊息時的加解密處理” 的部分。
我公司的企業(yè)號配置後的介面如下圖所示。
?這個URL裡面指向的頁面功能,需要對資料進行解析並傳回給微信伺服器,因此我們需要在伺服器上預先部署好這個處理功能入口。
除了上面的幾個函數(shù),還有一個CorpID的參數(shù)需要使用,我們可以在後臺主介面-設定裡面查看到。
然後我們?yōu)榱朔奖憔W(wǎng)站後臺使用,我們和公眾號的配置一樣,把它放到了Web.Config裡面,如下所示。
3、實現(xiàn)回調(diào)頁面的功能開發(fā)
前面介紹了幾個配置項,需要在回調(diào)頁裡面使用的,本小節(jié)繼續(xù)介紹如何實現(xiàn)企業(yè)號資訊的回發(fā),使之通過回調(diào)測試的操作。
由於回調(diào)測試的資料是透過Get方式發(fā)送的,因此我們的處理邏輯程式碼如下所示,和公眾號的類似處理,只是實現(xiàn)部分不太一樣而已。
????///?<summary> ????///?企業(yè)號回調(diào)信息接口。統(tǒng)一接收并處理信息的入口。????///?</summary> ????public?class?corpapi?:?IHttpHandler ????{????????///?<summary> ????????///?處理企業(yè)號的信息????????///?</summary> ????????///?<param name="context"></param> ????????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(); ????????????} ????????}????????///?<summary> ????????///?成為開發(fā)者的第一步,驗證并相應服務器的數(shù)據(jù)????????///?</summary> ????????private?void?Auth() ????????{????????????#region?獲取關鍵參數(shù)????????????string?token?=?ConfigurationManager.AppSettings["CorpToken"];//從配置文件獲取Token ????????????if?(string.IsNullOrEmpty(token)) ????????????{ ????????????????LogTextHelper.Error(string.Format("CorpToken?配置項沒有配置!")); ????????????}????????????string?encodingAESKey?=?ConfigurationManager.AppSettings["EncodingAESKey"];//從配置文件獲取EncodingAESKey ????????????if?(string.IsNullOrEmpty(encodingAESKey)) ????????????{ ????????????????LogTextHelper.Error(string.Format("EncodingAESKey?配置項沒有配置!")); ????????????}????????????string?corpId?=?ConfigurationManager.AppSettings["CorpId"];//從配置文件獲取corpId ????????????if?(string.IsNullOrEmpty(corpId)) ????????????{ ????????????????LogTextHelper.Error(string.Format("CorpId?配置項沒有配置!")); ????????????}? ????????????#endregion ????????????string?echoString?=?HttpContext.Current.Request.QueryString["echoStr"];????????????string?signature?=?HttpContext.Current.Request.QueryString["msg_signature"];//企業(yè)號的?msg_signature ????????????string?timestamp?=?HttpContext.Current.Request.QueryString["timestamp"];????????????string?nonce?=?HttpContext.Current.Request.QueryString["nonce"];????????????string?decryptEchoString?=?"";????????????if?(new?CorpBasicApi().CheckSignature(token,?signature,?timestamp,?nonce,?corpId,?encodingAESKey,?echoString,?ref?decryptEchoString)) ????????????{????????????????if?(!string.IsNullOrEmpty(decryptEchoString)) ????????????????{ ????????????????????HttpContext.Current.Response.Write(decryptEchoString); ????????????????????HttpContext.Current.Response.End(); ????????????????} ????????????} ????????}
具體的處理代碼如下所示,裡面的一個加解密處理的類別是微信企業(yè)號附錄裡面提供的,我使用了C#版本的SDK而已。
????///?<summary> ????///?企業(yè)號基礎操作API實現(xiàn)????///?</summary> ????public?class?CorpBasicApi?:?ICorpBasicApi ????{????????///?<summary> ????????///?驗證企業(yè)號簽名????????///?</summary> ????????///?<param name="token">企業(yè)號配置的Token</param> ????????///?<param name="signature">簽名內(nèi)容</param> ????????///?<param name="timestamp">時間戳</param> ????????///?<param name="nonce">nonce參數(shù)</param> ????????///?<param name="corpId">企業(yè)號ID標識</param> ????????///?<param name="encodingAESKey">加密鍵</param> ????????///?<param name="echostr">內(nèi)容字符串</param> ????????///?<param name="retEchostr">返回的字符串</param> ????????///?<returns></returns> ????????public?bool?CheckSignature(string?token,?string?signature,?string?timestamp,?string?nonce,?string?corpId,?string?encodingAESKey,?string?echostr,?ref?string?retEchostr) ????????{ ????????????WXBizMsgCrypt?wxcpt?=?new?WXBizMsgCrypt(token,?encodingAESKey,?corpId);????????????int?result?=?wxcpt.VerifyURL(signature,?timestamp,?nonce,?echostr,?ref?retEchostr);????????????if?(result?!=?0) ????????????{ ????????????????LogTextHelper.Error("ERR:?VerifyURL?fail,?ret:?"?+?result);????????????????return?false; ????????????}????????????return?true;????????????//ret==0表示驗證成功,retEchostr參數(shù)表示明文,用戶需要將retEchostr作為get請求的返回參數(shù),返回給企業(yè)號。????????????//?HttpUtils.SetResponse(retEchostr); ????????}
?更多C#開發(fā)微信入口網(wǎng)站及應用-微信企業(yè)號的設定與使用?相關文章請關注PHP中文網(wǎng)!

熱AI工具

Undress AI Tool
免費脫衣圖片

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

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

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

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

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