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