新聞中心
在本系列隨筆的前面,主要就是介紹微信公眾號的門戶應(yīng)用開發(fā),最近把整個微信框架進(jìn)行了擴(kuò)展補充,增加了***的企業(yè)號的API封裝和開發(fā),后續(xù)主要介紹如何利用C#進(jìn)行微信企業(yè)號的開發(fā)工作,本篇作為微信企業(yè)號的開發(fā)的起步篇,介紹微信企業(yè)號的配置和使用。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、海城ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的海城網(wǎng)站制作公司
1、微信企業(yè)號的注冊和登陸
企業(yè)號是繼公眾號、訂閱號的另外一種微信類型,它主要是面對企業(yè)的。企業(yè)號是微信為企業(yè)客戶提供的移動應(yīng)用入口??梢詭椭髽I(yè)建立員工、上下游供應(yīng)鏈與企業(yè) IT 系統(tǒng)間的連接。利用 企業(yè)號 ,企業(yè)或第三方合作伙伴可以幫助企業(yè)快速、低成本的實現(xiàn)高質(zhì)量的移動輕應(yīng)用,實現(xiàn)生產(chǎn)、管理、協(xié)作、運營的 移動化 。
個人覺得企業(yè)號***的亮點是可以不限數(shù)量的消息發(fā)送,也就是可以在企業(yè)員工之間暢通交流。相對于公眾號和訂閱號,發(fā)送消息的謹(jǐn)慎程度,微信企業(yè)號可謂給人眼前一亮的感覺。不過微信企業(yè)號是需要內(nèi)部建立好通訊錄,關(guān)注者需要匹配通訊錄的微信號、郵箱、電話號碼任一個通過才可以關(guān)注,也就是可以防止其他外來人員的自由關(guān)注了,另外如果為了安全考慮,還可以設(shè)置二次驗證,也就是一個審核過程。
企業(yè)號的認(rèn)證和公眾號一樣,需要提供相關(guān)的企業(yè)資質(zhì)文件,并且認(rèn)證每年都要收取費用,否則可能有人員和功能的一些限制。覺得微信真是想著方法賺錢,目前已有的收費模式有,訂閱號、公眾號、企業(yè)號、開放平臺,好像都有認(rèn)證收費的了,而且微信小店也還需要收2萬的押金,一切都是錢呀。
好了,其他不多說,微信的注冊地址是:https://qy.weixin.qq.com,一個郵箱不能同時注冊微信公眾號和微信企業(yè)號。
對于企業(yè)開通企業(yè)號并開始使用需要四步
1) 企業(yè)到微信官網(wǎng)( http://qy.weixin.qq.com )申請開通;
2) 開通后,企業(yè)在企業(yè)號管理后臺導(dǎo)入成員,發(fā)布二維碼;
3) 企業(yè)調(diào)用企業(yè)號 api 與企業(yè)自有系統(tǒng)對接開發(fā);
4) 員工關(guān)注,收到微信信息,在微信中與企業(yè)交互
注冊好企業(yè)號,就可以通過微信掃一掃,掃描企業(yè)二維碼進(jìn)行登錄了,掃描的時候,需要微信進(jìn)行確認(rèn),才可以繼續(xù)輸入密碼進(jìn)行登錄,操作界面如下所示(左邊是手機(jī)截圖,右邊是網(wǎng)頁截圖)。
登錄后我們就可以看到對應(yīng)的電腦端的管理界面了。
2、設(shè)置開發(fā)回調(diào)模式
如果開發(fā)過微信公眾號,那么我們就知道,如果需要在微信服務(wù)器和網(wǎng)站服務(wù)器之間建立連接關(guān)系,實現(xiàn)消息的轉(zhuǎn)發(fā)和處理,那么就應(yīng)該設(shè)置一個回調(diào)模式,需要配置好相關(guān)的參數(shù)。然后在自己 網(wǎng)站服務(wù)器里面建立一個處理微信服務(wù)器消息的入口。
進(jìn)入配置后,我們需要修改相關(guān)的URL、Token、EncodingAESKey等參數(shù),主要是URL,這個就是和公眾號的入口處理一樣的,需要我們發(fā)布到網(wǎng)站服務(wù)器上的處理入口。
Token和AESKey可以根據(jù)提示動態(tài)生成一個即可,AESKey好像必須是23位的,所以這個一般是讓它自己生成的,這個主要用來加密解密使用的。
URL、Token、EncodingAESKey三個參數(shù)說明。
1)URL是企業(yè)應(yīng)用接收企業(yè)號推送請求的訪問協(xié)議和地址,支持http或https協(xié)議。
2)Token可由企業(yè)任意填寫,用于生成簽名。
3)EncodingAESKey用于消息體的加密,是AES密鑰的Base64編碼。
驗證URL、Token以及加密的詳細(xì)處理請參考后續(xù) “接收消息時的加解密處理” 的部分。
我公司的企業(yè)號配置后的界面如下所示。
這個URL里面指向的頁面功能,需要對數(shù)據(jù)進(jìn)行解析并返回給微信服務(wù)器,因此我們需要在服務(wù)器上預(yù)先部署好這個處理功能入口。
除了上面的幾個函數(shù),還有一個CorpID的參數(shù)需要使用,我們可以在后臺主界面-設(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)測試的數(shù)據(jù)是通過Get方式發(fā)送的,因此我們的處理邏輯代碼如下所示,和公眾號的類似處理,只是實現(xiàn)部分不太一樣而已。
- ///
- /// 企業(yè)號回調(diào)信息接口。統(tǒng)一接收并處理信息的入口。
- ///
- public class corpapi : IHttpHandler
- {
- ///
- /// 處理企業(yè)號的信息
- ///
- ///
- 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();
- }
- }
- ///
- /// 成為開發(fā)者的***步,驗證并相應(yīng)服務(wù)器的數(shù)據(jù)
- ///
- private void Auth()
- {
- #region 獲取關(guān)鍵參數(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而已。
- ///
- /// 企業(yè)號基礎(chǔ)操作API實現(xiàn)
- ///
- public class CorpBasicApi : ICorpBasicApi
- {
- ///
- /// 驗證企業(yè)號簽名
- ///
- /// 企業(yè)號配置的Token
- /// 簽名內(nèi)容
- /// 時間戳
- /// nonce參數(shù)
- /// 企業(yè)號ID標(biāo)識
- /// 加密鍵
- /// 內(nèi)容字符串
- /// 返回的字符串
- ///
- 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);
- }
原文出自:http://www.cnblogs.com/wuhuacong/p/3991735.html
當(dāng)前標(biāo)題:微信企業(yè)號的配置和使用
網(wǎng)頁鏈接:http://www.dlmjj.cn/article/dhdipdh.html


咨詢
建站咨詢
