企业微信H5_集成消息解密类,消息推送Get及Post回调处理
文章目錄
- 一、 驗證URL有效性
- 1. 閱讀文檔
- 2. 文檔分析
- 3. 加解密方案說明
- 4. 下載加解密算法
- 5. 案例分析
- 二、實戰(zhàn)集成
- 2.1. 工具類拷貝
- 2.2. 依賴引入
- 2.3. 案例1集成
- 2.4. 參數(shù)處理
- 2.5. 重啟項目
- 2.6. 驗證URL有效性
- 2.7. 驗證
- 三、消息接收與處理
- 3.1. 文檔閱讀
- 3.2. 案例2拷貝
- 3.3. 參數(shù)處理
- 3.4. 重啟項目
- 3.5. 發(fā)送消息
- 3.6. 驗證
- 3.7. 日志監(jiān)控
- 3.8. 收到回復(fù)消息
- 四、源碼分享
- 4.1. 后端源碼
- 4.2. 前端源碼
一、 驗證URL有效性
官網(wǎng)文檔:https://developer.work.weixin.qq.com/document/path/90238
1. 閱讀文檔
當(dāng)點擊“保存”提交以上信息時,企業(yè)微信會發(fā)送一條驗證消息到填寫的URL,請求方式為GET。
企業(yè)的接收消息服務(wù)器接收到驗證請求后,需要作出正確的響應(yīng)才能通過URL驗證
2. 文檔分析
從文檔可以知道,咱們再應(yīng)用管理配置的接收消息服務(wù)期配置的url,企業(yè)微信會發(fā)送一個get請求攜帶4個參數(shù)(msg_signature、timestamp、nonce、echostr)來驗證URL有效性
3. 加解密方案說明
點擊進入 加解密方案說明
4. 下載加解密算法
鑒于加解密算法相對復(fù)雜,企業(yè)微信提供了算法庫,目前已有c++/python/php/java/golang/c#等語言版本。均提供了解密、加密、驗證URL三個接口,企業(yè)可根據(jù)自身需要下載,下載下載地址
5. 案例分析
打開Readme.txt
注意事項 1.com\qq\weixin\mp\aes目錄下是用戶需要用到的接入企業(yè)微信的接口,其中WXBizMsgCrypt.java文件提供的WXBizMsgCrypt類封裝了用戶接入企業(yè)微信的三個接口,其它的類文件用戶用于實現(xiàn)加解密,用戶無須關(guān)心。sample.java文件提供了接口的使用求例。 2.WXBizMsgCrypt封裝了VerifyURL, DecryptMsg, EncryptMsg三個接口,分別用于開發(fā)者驗證回調(diào)url,收到用戶回復(fù)消息的解密以及開發(fā)者回復(fù)消息的加密過程。使用方法可以參考Sample.java文件。 3.加解密協(xié)議請參考企業(yè)微信官方文檔。 4.請開發(fā)者使用jdk1.6以上的版本。針對org.apache.commons.codec.binary.Base64,需要導(dǎo)入架包commons-codec-1.9(或commons-codec-1.8等其他版本),我們有提供,官方下載地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi****請?zhí)貏e注意****** 5.異常java.security.InvalidKeyException:illegal Key Size的解決方案: 在官方網(wǎng)站下載JCE無限制權(quán)限策略文件(JDK7的下載地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html下載后解壓,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。如果安裝了JRE,將兩個jar文件放到%JRE_HOME%\lib\security目錄下覆蓋原來的文件,如果安裝了JDK,將兩個jar文件放到%JDK_HOME%\jre\lib\security目錄下覆蓋原來文件從Readme.txt文件內(nèi)容我們分析如下:
1.com\qq\weixin\mp\aes目錄下提供了一些加解密的工具類
2.WXBizMsgCrypt用途在于回調(diào)url,收到用戶回復(fù)消息的解密以及開發(fā)者回復(fù)消息的加密過程。Sample.java文件為案例代碼
3.commons-codec-1.9的依賴
二、實戰(zhàn)集成
2.1. 工具類拷貝
將com\qq\weixin\mp\aes目錄下的工具類復(fù)制到項目的com.gblfy.qywxinner.qywxdecode包下面
2.2. 依賴引入
在項目的pom.xml文件中引入commons-codec依賴
2.3. 案例1集成
在項目com.gblfy.qywxinner.controller包下的MessageController類中添加callback方法,將Sample.java類中將案例1代碼復(fù)制過來,將sToken、sCorpID、sEncodingAESKey配置信息替換為自己的
2.4. 參數(shù)處理
由于企業(yè)微信會攜帶4個參數(shù)(msg_signature、timestamp、nonce、echostr)請求咱們的配置驗證url有效性的地址(http://4663588nl3.zicp.vip/message/callback),因此,咱們需要從callback方法中接收企業(yè)微信傳過來的參數(shù)sVerifyMsgSig、sVerifyTimeStamp、sVerifyNonce、sVerifyEchoStr
寫法如圖
2.5. 重啟項目
略
2.6. 驗證URL有效性
然后,執(zhí)行以下操作,重新保存
2.7. 驗證
點擊保存機會請求咱們的配置的url地址,進入咱們callback的方法中,進行加解密操作,然后,返回。
三、消息接收與處理
3.1. 文檔閱讀
接收企業(yè)微信傳遞過來的參數(shù)和回復(fù)
請求方式為POST,同一個地址(http://4663588nl3.zicp.vip/message/callback)
3.2. 案例2拷貝
在項目com.gblfy.qywxinner.controller包下的MessageController類中添加callbackData方法,將Sample.java類中將案例2代碼復(fù)制過來,將sToken、sCorpID、sEncodingAESKey配置信息替換為自己的
3.3. 參數(shù)處理
由于企業(yè)微信會攜帶4個參數(shù)(msg_signature、timestamp、nonce)請求咱們的配置驗證url有效性的地址(http://4663588nl3.zicp.vip/message/callback),因此,咱們需要從callback方法中接收企業(yè)微信傳過來的參數(shù)sVerifyMsgSig, sReqTimeStamp, sReqNonce, sRespData,其中sRespData是咱們的消息體
寫法如圖
3.4. 重啟項目
略
3.5. 發(fā)送消息
3.6. 驗證
3.7. 日志監(jiān)控
控制臺日志
3.8. 收到回復(fù)消息
四、源碼分享
4.1. 后端源碼
后端:https://gitee.com/gblfy/qywx-inner-java
4.2. 前端源碼
前端:https://gitee.com/gblfy/qywx-vuejs
總結(jié)
以上是生活随笔為你收集整理的企业微信H5_集成消息解密类,消息推送Get及Post回调处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: openoffice 安装windows
- 下一篇: 使用 VSCode 开发 uniapp