在本系列隨筆的前面,主要是介紹微信公眾號的門戶應用開發,最近把整個微信框架進行了擴展補充,增加了最新的企業號的API封裝和開發,後續主要介紹如何利用C#進行微信企業號的開發工作,本篇作為微信企業號的開發的起步篇,介紹微信企業號的配置和使用。
1、微信企業號的註冊和登陸
企業號是繼公眾號、訂閱號的另外一種微信類型,它主要是面對企業的。企業號是微信為企業客戶提供的行動應用入口。可以幫助企業建立員工、上下游供應鏈與企業 IT 系統間的連結。利用 企業號 ,企業或第三方合作夥伴可以幫助企業快速、低成本的實現高品質的行動輕應用,實現生產、管理、協作、營運的 行動化 。
個人覺得企業號最大的亮點是可以不限數量的消息發送,也就是可以在企業員工之間暢通交流。相對於公眾號和訂閱號,發送訊息的謹慎程度,微信企業號可謂給人眼前一亮的感覺。不過微信企業號是需要內部建立好通訊錄,關注者需要匹配通訊錄的微信號、郵箱、電話號碼任一個通過才可以關注,也就是可以防止其他外來人員的自由關注了,另外如果為了安全考慮,還可以設定二次驗證,也就是一個審核過程。
企業號的認證和公眾號一樣,需要提供相關的企業資質文件,並且認證每年都要收取費用,否則可能有人員和功能的一些限制。覺得微信真是想著方法賺錢,目前已有的收費模式有,訂閱號碼、公眾號、企業號、開放平台,好像都有認證收費的了,而且微信小店也還需要收2萬的押金,一切都是錢呀。
好了,其他不多說,微信的註冊地址是:https://qy.weixin.qq.com,一個郵箱不能同時註冊微信公眾號和微信企業號。
對於企業開通企業號並開始使用需要四步驟
1) 企業到微信官網( http://qy.weixin.qq.com )申請開通;
2) 開通後,企業在企業號管理後台導入成員,發布二維碼;
3) 企業調用企業號 api 與企業自有系統對接開發;
#4) 員工關注,收到微信訊息,在微信中與企業交互
註冊好企業號,就可以透過微信掃一掃,掃描企業二維碼進行登錄了,掃描的時候,需要微信進行確認,才可以繼續輸入密碼登入,操作介面如下所示(左邊是手機截圖,右邊是網頁截圖)。
登入後我們就可以看到對應的電腦端的管理介面了。
2、設定開發回呼模式
如果開發過微信公眾號,那麼我們就知道,如果需要在微信伺服器和網站伺服器之間建立連接關係,實現訊息的轉發和處理,那麼就應該設定一個回呼模式,需要配置好相關的參數。然後在自己 網站伺服器裡面建立一個處理微信伺服器訊息的入口。
進入設定後,我們需要修改相關的URL、Token、EncodingAESKey等參數,主要是URL,這個就是跟公眾號的入口處理一樣的,需要我們發布到網站伺服器上的處理入口。
Token和AESKey可以根據提示動態產生一個即可,AESKey好像一定是23位的,所以這個一般是讓它自己產生的,這個主要用來加密解密使用的。
URL、Token、EncodingAESKey三個參數說明。
1)URL是企業應用程式接收企業號推送請求的存取協定和位址,支援http或https協定。
2)Token可由企業任意填寫,用於產生簽名。
3)EncodingAESKey用於訊息體的加密,是AES金鑰的Base64編碼。
驗證URL、Token以及加密的詳細處理請參考後續 “接收訊息時的加解密處理” 的部分。
我公司的企業號配置後的介面如下所示。
這個URL裡面所指向的頁面功能,需要將資料解析並傳回給微信伺服器,因此我們需要在伺服器上預先部署好這個處理功能入口。
除了上面的幾個函數,還有一個CorpID的參數要使用,我們可以在後台主介面-設定裡面查看到。
然後我們為了方便網站後台使用,我們和公眾號的配置一樣,把它放到了Web.Config裡面,如下所示。
3、實作回呼頁面的功能開發
前面介紹了幾個配置項,需要在回呼頁裡面使用的,本小節繼續介紹如何實現企業號資訊的回發,使其通過回調測試的操作。
由於回呼測試的資料是透過Get方式發送的,因此我們的處理邏輯程式碼如下所示,和公眾號的類似處理,只是實作部分不太一樣而已。
/// <summary> /// 企业号回调信息接口。统一接收并处理信息的入口。 /// </summary> public class corpapi : IHttpHandler { /// <summary> /// 处理企业号的信息 /// </summary> /// <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> /// 成为开发者的第一步,验证并相应服务器的数据 /// </summary> private void Auth() { #region 获取关键参数 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"];//企业号的 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(); } } }
具體的處理程式碼如下所示,裡面的一個加解密處理的類別是微信企業號附錄裡面提供的,我使用了C#版本的SDK而已。
/// <summary> /// 企业号基础操作API实现 /// </summary> public class CorpBasicApi : ICorpBasicApi { /// <summary> /// 验证企业号签名 /// </summary> /// <param>企业号配置的Token /// <param>签名内容 /// <param>时间戳 /// <param>nonce参数 /// <param>企业号ID标识 /// <param>加密键 /// <param>内容字符串 /// <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参数表示明文,用户需要将retEchostr作为get请求的返回参数,返回给企业号。 // HttpUtils.SetResponse(retEchostr); }
更多C#開發微信入口網站及應用微信企業號的設定與使用 相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

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