SpringBoot整合WxJava開(kāi)啟消息推送的實(shí)現(xiàn)
接入微信小程序消息推送服務(wù),可以3種方式選擇其一:
1、開(kāi)發(fā)者服務(wù)器接收消息推送
2、云函數(shù)接收消息推送
3、微信云托管服務(wù)接收消息推送
開(kāi)發(fā)者服務(wù)器接收消息推送,開(kāi)發(fā)者需要按照如下步驟完成:
1、填寫服務(wù)器配置
2、驗(yàn)證服務(wù)器地址的有效性
3、據(jù)接口文檔實(shí)現(xiàn)業(yè)務(wù)邏輯,接收消息和事件
1、引入 WxJava 依賴
<!-- web支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 微信小程序開(kāi)發(fā) --> <dependency> <groupId>com.github.binarywang</groupId> <artifactId>wx-java-miniapp-spring-boot-starter</artifactId> <version>4.2.0</version> </dependency>
2、申請(qǐng)微信小程序
使用郵箱注冊(cè)一個(gè)微信小程序賬號(hào),一個(gè)郵箱僅能注冊(cè)一個(gè)微信小程序賬號(hào)
3、微信小程序配置信息
登錄微信小程序后,在:開(kāi)發(fā)–》開(kāi)發(fā)管理 找到小程序的基本信息:
將 AppID,AppSecret 配置在項(xiàng)目配置文件中
# 微信開(kāi)發(fā)配置 wx: # 微信小程序開(kāi)發(fā) miniapp: appid: xxxxxxxxxx secret: xxxxxxxxxx # 配置消息推送需要 token: aesKey: msgDataFormat: # 存儲(chǔ)類型 config-storage: type: redistemplate
配置了 config-storage.type 決定我們獲取的 AccessToken 存放的位置,默認(rèn)存放在本地緩存中,可選存在 redis 中,我們可以存放在 redis 中進(jìn)行可視化管理。
4、消息推送配置
在開(kāi)發(fā)管理頁(yè)面往下滑,找到 “消息推送” 模塊,啟用 “消息推送”
這里我已經(jīng)啟用了,我們點(diǎn)擊修改,重新配置我們的消息推送配置
1、URL,即微信推送消息的時(shí)候,調(diào)用你的 api 接口地址
2、Token,這個(gè)為自定義 token,做參數(shù)校驗(yàn)使用的
3、EncodingAESKey,消息加密密鑰,我們可以選擇隨機(jī)生成
4、消息加密方式,我們?yōu)榱藬?shù)據(jù)安全,選擇 “安全模式”
5、數(shù)據(jù)格式,我們選擇 JSON 或 XML 都行
對(duì)應(yīng)的后臺(tái)配置文件配置為:
# 微信開(kāi)發(fā)配置 wx: # 微信小程序開(kāi)發(fā) miniapp: appid: xxxxxxxxxx secret: xxxxxxxxxx # 配置消息推送需要 token: asurplus_token aesKey: PeQ3KmxFbhko0FdR5WG6Hn8wOuKuhQfr6ZNl7ykRGaM msgDataFormat: JSON # 存儲(chǔ)類型 config-storage: type: redistemplate
5、接收消息推送的 API
import cn.binarywang.wx.miniapp.api.WxMaService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 微信小程序消息推送 */ @Slf4j @RestController @RequestMapping("wx/ma/welcome") public class WxMaMsgController { @Autowired private WxMaService wxMaService; /** * 消息校驗(yàn),確定是微信發(fā)送的消息 * * @param signature * @param timestamp * @param nonce * @param echostr * @return * @throws Exception */ @GetMapping public String doGet(String signature, String timestamp, String nonce, String echostr) { // 消息合法 if (wxMaService.checkSignature(timestamp, nonce, signature)) { log.info("-------------微信小程序消息驗(yàn)證通過(guò)"); return echostr; } // 消息簽名不正確,說(shuō)明不是公眾平臺(tái)發(fā)過(guò)來(lái)的消息 return null; } }
第四步配置的 URL 應(yīng)為:http://lizhou.4kb.cn/wx/ma/welcome
其中,lizhou.4kb.cn 為你的域名,沒(méi)有域名的參考文章:使用內(nèi)網(wǎng)穿透工具Ngrok代理本地服務(wù)
6、消息推送測(cè)試
啟動(dòng)本地服務(wù),在第四步的頁(yè)面,點(diǎn)擊 “確定”,得到如下結(jié)果:
表示,消息推送配置成功,看后臺(tái)日志:
微信服務(wù)器推送的消息,通過(guò)了校驗(yàn),表示確實(shí)是微信服務(wù)器發(fā)送的消息
到此這篇關(guān)于SpringBoot整合WxJava開(kāi)啟消息推送的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot WxJava消息推送內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringMVC實(shí)現(xiàn)數(shù)據(jù)綁定及表單標(biāo)簽
這篇文章主要為大家詳細(xì)介紹了SpringMVC實(shí)現(xiàn)數(shù)據(jù)綁定及表單標(biāo)簽的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Java8中Stream使用的一個(gè)注意事項(xiàng)
最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中Stream使用過(guò)程中的一個(gè)注意事項(xiàng),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11關(guān)于SpringBoot單元測(cè)試(cobertura生成覆蓋率報(bào)告)
這篇文章主要介紹了關(guān)于SpringBoot單元測(cè)試(cobertura生成覆蓋率報(bào)告),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11MyBatis學(xué)習(xí)教程(四)-如何快速解決字段名與實(shí)體類屬性名不相同的沖突問(wèn)題
我們經(jīng)常會(huì)遇到表中的字段名和表對(duì)應(yīng)實(shí)體類的屬性名稱不一定都是完全相同的情況,如何解決呢?下面腳本之家小編給大家介紹MyBatis學(xué)習(xí)教程(四)-如何快速解決字段名與實(shí)體類屬性名不相同的沖突問(wèn)題,一起學(xué)習(xí)吧2016-05-05Java Integer[]和int[]互相轉(zhuǎn)換方式
這篇文章主要介紹了Java Integer[]和int[]互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Java8中字符串處理庫(kù)strman-java的使用示例
除了Java本身的字符串處理方式外,我們還可以使用Apache Common Langs里的StringUtils來(lái)簡(jiǎn)化String的操作。但以上兩種方式對(duì)于我們?nèi)粘>幊讨凶钊菀着龅降淖址幚韥?lái)說(shuō),仍然顯得有些不足。所以這篇文章給大家介紹Java8中字符串處理庫(kù)strman-java的使用。2016-09-09idea之Recompile、Rebuild和Build之間的區(qū)別及說(shuō)明
這篇文章主要介紹了idea之Recompile、Rebuild和Build之間的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08