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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

企业微信H5_集成消息解密类,消息推送Get及Post回调处理

發(fā)布時(shí)間:2024/9/27 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业微信H5_集成消息解密类,消息推送Get及Post回调处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

          • 一、 驗(yàn)證URL有效性
            • 1. 閱讀文檔
            • 2. 文檔分析
            • 3. 加解密方案說明
            • 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)證消息到填寫的URL,請(qǐng)求方式為GET。
企業(yè)的接收消息服務(wù)器接收到驗(yàn)證請(qǐng)求后,需要作出正確的響應(yīng)才能通過URL驗(yàn)證

2. 文檔分析

從文檔可以知道,咱們?cè)賾?yīng)用管理配置的接收消息服務(wù)期配置的url,企業(yè)微信會(huì)發(fā)送一個(gè)get請(qǐng)求攜帶4個(gè)參數(shù)(msg_signature、timestamp、nonce、echostr)來驗(yàn)證URL有效性

3. 加解密方案說明

點(diǎn)擊進(jìn)入 加解密方案說明

4. 下載加解密算法

鑒于加解密算法相對(duì)復(fù)雜,企業(yè)微信提供了算法庫,目前已有c++/python/php/java/golang/c#等語言版本。均提供了解密、加密、驗(yàn)證URL三個(gè)接口,企業(yè)可根據(jù)自身需要下載,下載下載地址

5. 案例分析

打開Readme.txt

注意事項(xiàng) 1.com\qq\weixin\mp\aes目錄下是用戶需要用到的接入企業(yè)微信的接口,其中WXBizMsgCrypt.java文件提供的WXBizMsgCrypt類封裝了用戶接入企業(yè)微信的三個(gè)接口,其它的類文件用戶用于實(shí)現(xiàn)加解密,用戶無須關(guān)心。sample.java文件提供了接口的使用求例。 2.WXBizMsgCrypt封裝了VerifyURL, DecryptMsg, EncryptMsg三個(gè)接口,分別用于開發(fā)者驗(yàn)證回調(diào)url,收到用戶回復(fù)消息的解密以及開發(fā)者回復(fù)消息的加密過程。使用方法可以參考Sample.java文件。 3.加解密協(xié)議請(qǐng)參考企業(yè)微信官方文檔。 4.請(qǐng)開發(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無限制權(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目錄下覆蓋原來的文件,如果安裝了JDK,將兩個(gè)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的依賴

二、實(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ù)制過來,將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è)微信傳過來的參數(shù)sVerifyMsgSig、sVerifyTimeStamp、sVerifyNonce、sVerifyEchoStr
寫法如圖

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è)微信傳遞過來的參數(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ù)制過來,將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è)微信傳過來的參數(shù)sVerifyMsgSig, sReqTimeStamp, sReqNonce, sRespData,其中sRespData是咱們的消息體
寫法如圖

3.4. 重啟項(xiàng)目

3.5. 發(fā)送消息

3.6. 驗(yàn)證

3.7. 日志監(jiān)控

控制臺(tái)日志

解密decrypt企業(yè)微信推送的消息->sMsg:<xml><ToUserName><![CDATA[wwea98220fdcd8a38d]]></ToUserName><FromUserName><![CDATA[ZeXin]]></FromUserName><CreateTime>1646043916</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[你好,測(cè)試企業(yè)微信處理消息]]></Content><MsgId>7069704788922636053</MsgId><AgentID>1000002</AgentID></xml> Content:你好,測(cè)試企業(yè)微信處理消息 回復(fù)->data:<xml><ToUserName><![CDATA[ZeXin]]></ToUserName><FromUserName><![CDATA[ZeXin]]></FromUserName><CreateTime>1646043916</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[this is a test]]></Content></xml>
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ǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。