日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《微信企业号开发日志》之企业号接入

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《微信企业号开发日志》之企业号接入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

微信企業號申請注冊流程

回調模式

在回調模式下,企業不僅可以主動調用企業號接口,還可以接收用戶的消息或事件。接收的信息使用XML數據格式、UTF8編碼,并以AES方式加密

企業號的每個應用都有自己的回調模式開關。在管理端開啟并設置好相關參數后,此應用的回調模式才生效。

針對加解密的處理,微信提供了各種語言的庫,企業可以在附錄中下載。下載地址


開啟應用的回調模式

當你開啟應用的回調模式時,企業號會要求你填寫應用的URL、Token、EncodingAESKey三個參數。

URL是企業應用接收企業號推送請求的訪問協議和地址,支持http或https協議。

Token可由企業任意填寫,用于生成簽名。

EncodingAESKey用于消息體的加密,是AES密鑰的Base64編碼。

驗證URL、Token以及加密的詳細處理請參考后續'接收消息時的加解密處理'的章節。


驗證URL有效性

當你提交以上信息時,企業號將發送GET請求到填寫的URL上,GET請求攜帶四個參數,企業在獲取時需要做urldecode處理,否則會驗證不成功。

參數 描述 是否必帶
msg_signature 微信加密簽名,msg_signature結合了企業填寫的token、請求中的timestamp、nonce參數、加密的消息體
timestamp 時間戳
nonce 隨機數
echostr 加密的隨機字符串,以msg_encrypt格式提供。需要解密并返回echostr明文,解密后有random、msg_len、msg、$CorpID四個字段,其中msg即為echostr明文 首次校驗時必帶

企業通過參數msg_signature對請求進行校驗,如果確認此次GET請求來自企業號,那么企業應用對echostr參數解密并原樣返回echostr明文(不能加引號),則接入驗證生效,回調模式才能開啟。

?

?

我們在項目下新建一個一般處理程序:QYWX.ashx

先來獲取驗證回調所需要的參數

//微信接入的測試string token = ConfigurationManager.AppSettings["CorpToken"];//從配置文件獲取Tokenstring CorpID = ConfigurationManager.AppSettings["CorpID"];//從配置文件獲取Tokenstring EncodingAESKey = ConfigurationManager.AppSettings["EncodingAESKey"];//從配置文件獲取Tokenstring signature = context.Request["msg_signature"];string timestamp = context.Request["timestamp"];string nonce = context.Request["nonce"];
       string echostr = context.Request["echostr"];

其中CorpTokenCorpIDEncodingAESKey是在配置文件中配置的,方便更改,配置文件節點如下:

<appSettings ><!--企業號配置信息--><add key="CorpToken" value="XXXXXXXXXX"/><add key="CorpID" value="XXXXXXXXXXXXX"/><add key="EncodingAESKey" value="1v82IRu54erxBj3v1hItooXOXXXXXXXXXXXXXXX"/></appSettings>

現在,我們來寫驗證處理流程

新建一個驗證類CheckSignatureQY.cs

結構如圖所示:

說明: Check為靜態方法,,這個類很簡單,現在貼上全部代碼:

public class CheckSignatureQY{/// <summary>/// 在網站沒有提供Token(或傳入為null)的情況下的默認Token,建議在網站中進行配置。/// </summary>public const string Token = "weixin";/// <summary>/// 微信鏈接服務器驗證憑證/// </summary>/// <param name="sVerifyMsgSig">微信加密簽名,msg_signature結合了企業填寫的token、請求中的timestamp、nonce參數、加密的消息體 </param>/// <param name="sVerifyTimeStamp">時間戳</param>/// <param name="sVerifyNonce">隨機數</param>/// <param name="sVerifyEchoStr">加密的隨機字符串,以msg_encrypt格式提供。需要解密并返回echostr明文,解密后有random、msg_len、msg、$CorpID四個字段,其中msg即為echostr明文 </param>/// <param name="sEncodingAESKey">EncodingAESKey用于消息體的加密,是AES密鑰的Base64編碼。</param>/// <param name="sCorpID">帳號信息 CorpID</param>/// <param name="sEchoStr"></param>/// <param name="sToken"></param>/// <returns></returns>public static bool Check(string sVerifyMsgSig, string sVerifyTimeStamp, string sVerifyNonce, string sVerifyEchoStr, string sEncodingAESKey, string sCorpID, ref string sEchoStr, string sToken = null){sToken = String.IsNullOrEmpty(sToken) ? Token : sToken;WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(sToken, sEncodingAESKey, sCorpID);int ret = 0;ret = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce, sVerifyEchoStr, ref sEchoStr);if (ret != 0)sEchoStr = "ERR: VerifyURL fail, ret: " + ret;return ret == 0;}}

?

說明:WXBizMsgCrypt??? 為微信官方的加密類:下載傳送門

?

完成了CheckSignatureQY類以后,我們就要在QYWX.ashx中調用,微信驗證的方法為GET,所以我們在QYWX.ashx中寫入如下代碼:

       if (context.Request.HttpMethod == "GET")//驗證 { string sEchoStr = "";bool check = CheckSignatureQY.Check(signature, timestamp, nonce, echostr, EncodingAESKey, CorpID, ref sEchoStr, token);//True表示成功//WriteText(check ? "True" : "False");//check為True成功,Flase失敗,失敗信息在SechoStrWriteContent(sEchoStr); //返回隨機字符串則表示驗證通過 }

?

然后在微信調用界面中

?

點擊完成就會完成了微信驗證啦,如圖所示:

本節到此結束

?

轉載于:https://www.cnblogs.com/GarsonZhang/p/4037289.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的《微信企业号开发日志》之企业号接入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。