【微信小程序】3、SpringBoot整合WxJava發送訂閱消息

1、創建消息模板

在這里插入圖片描述
在公共模板庫里面選擇符合自己業務場景的消息模板,例如:
在這里插入圖片描述
每個消息模板最多選擇5項,可根據自己業務需求自行選擇,順序也可以自己決定。提交后,我們就得到了屬于自己的消息模板ID
在這里插入圖片描述

2、文檔閱讀

官方文檔 發送訂閱消息

https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-message-management/subscribe-message/sendMessage.html

可以關注到消息模板中每種參數的類型有明確的規定

參數類別參數說明參數值限制說明
thing.DATA事物20個以內字符可漢字、數字、字母或符號組合
number.DATA數字32位以內數字只能數字,可帶小數
letter.DATA字母32位以內字母只能字母
symbol.DATA 符號5位以內符號只能符號
character_string.DATA字符串32位以內數字、字母或符號可數字、字母或符號組合
time.DATA時間24小時制時間格式(支持+年月日),支持填時間段,兩個時間點之間用“~”符號連接例如:15:01,或:2019年10月1日 15:01
date.DATA日期年月日格式(支持+24小時制時間),支持填時間段,兩個時間點之間用“~”符號連接例如:2019年10月1日,或:2019年10月1日 15:01
amount.DATA金額1個幣種符號+10位以內純數字,可帶小數,結尾可帶“元”可帶小數
phone_number.DATA電話17位以內,數字、符號電話號碼,例:+86-0766-66888866
car_number.DATA車牌8位以內,第一位與最后一位可為漢字,其余為字母或數字車牌號碼:粵A8Z888掛
name.DATA姓名10個以內純漢字或20個以內純字母或符號中文名10個漢字內;純英文名20個字母內;中文和字母混合按中文名算,10個字內
phrase.DATA漢字5個以內漢字5個以內純漢字,例如:配送中
enum.DATA枚舉值只能上傳枚舉值范圍內的字段值調用接口獲取參考枚舉值

符號表示除中文、英文、數字外的常見符號,不能帶有換行等控制字符。 時間格式支持HH:MM:SS或者HH:MM。 日期包含年月日,為y年m月d日,y年m月、m月d日格式,或者用‘-’、‘/’、‘.’符號連接,如2018-01-01,2018/01/01,2018.01.01,2018-01,01-01。 每個模板參數都會以類型為前綴,例如第一個數字模板參數為number01.DATA,第二個為number02.DATA

例如,模板的內容為:

姓名: {{name01.DATA}}
金額: {{amount01.DATA}}
行程: {{thing01.DATA}}
日期: {{date01.DATA}}

則對應的json為

{"touser": "OPENID","template_id": "TEMPLATE_ID","page": "index","data": {"name01": {"value": "某某"},"amount01": {"value": "¥100"},"thing01": {"value": "廣州至北京"} ,"date01": {"value": "2018-01-01"}}
}

3、發送消息

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.stereotype.Service;import java.util.ArrayList;
import java.util.List;@Slf4j
@Service
@RequiredArgsConstructor
public class WxMaMsgServiceImpl {private final WxMaService wxMaService;public void sendSubscribeMsg(WxMaSubscribeMessage reqVO) throws WxErrorException {WxMaSubscribeMessage message = new WxMaSubscribeMessage();message.setToUser("用戶openId");message.setTemplateId("消息模板id");// 非必填message.setPage("點擊模板卡片后的跳轉頁面,僅限本小程序內的頁面");// 模板內容List<WxMaSubscribeMessage.MsgData> data = new ArrayList<>();data.add(new WxMaSubscribeMessage.MsgData("thing13", "美甲"));data.add(new WxMaSubscribeMessage.MsgData("phrase9", "預約成功"));data.add(new WxMaSubscribeMessage.MsgData("time22", "2025年06月18日 14:00"));data.add(new WxMaSubscribeMessage.MsgData("time23", "2025年06月18日 16:00"));data.add(new WxMaSubscribeMessage.MsgData("thing8", "已預約成功請注意查看"));message.setData(data);// 體驗版reqVO.setMiniprogramState(WxMaConstants.MiniProgramState.TRIAL);// 正式版// reqVO.setMiniprogramState(WxMaConstants.MiniProgramState.FORMAL);wxMaService.getSubscribeService().sendSubscribeMsg(reqVO);}
}

4、前端訂閱

const noticeRes = await wx.requestSubscribeMessage({tmplIds: ['消息模板id1', '消息模板id2']
})
let acceptArray = []
// 消息1同意
if (noticeRes['消息模板id1'] === 'accept') {acceptArray.push('消息模板id1')
}
// 消息2同意
if (noticeRes['消息模板id2'] === 'accept') {acceptArray.push('消息模板id2')
}

然后把用戶同意訂閱的消息模板id傳到后端,后端根據業務場景給用戶發送對應的訂閱消息即可。

如您在閱讀中發現不足,歡迎留言!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87322.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87322.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87322.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flask 快速精通:從入門到實戰的輕量級 Web 框架指南

Flask 作為 Python 生態中最受歡迎的輕量級 Web 框架&#xff0c;以其簡潔靈活的設計理念贏得了開發者的青睞。本文將系統梳理 Flask 的核心概念與實戰技巧&#xff0c;幫助你快速掌握這一強大框架。 一、Flask 框架概述 1.1 輕量級框架的核心特性 Flask 誕生于 2010 年&…

Python爬取豆瓣短評并生成詞云分析

一、項目概述 本項目的目標是爬取豆瓣上某部電影的短評數據&#xff0c;并生成詞云進行情感分析。我們將使用Python編程語言&#xff0c;借助爬蟲技術獲取數據&#xff0c;并利用自然語言處理和數據可視化工具進行分析。具體步驟包括&#xff1a; 爬取豆瓣短評數據。數據清洗…

Controller Area Network (CAN) 通信機制簡介

目錄 1. CAN 概述 2. 物理結構與傳輸機制 3. 消息格式與仲裁機制 4. 錯誤檢測與總線狀態 5. 工業用 CAN 接口 6. 本講總結 1. CAN 概述 CAN&#xff08;Controller Area Network&#xff09;是由德國博世&#xff08;Bosch&#xff09;公司于 1983 年提出的串行通信協議…

我有一個想法

我有一個想法 我想為家鄉做點事情&#xff0c;但是又不知道從哪里開始。 也許為家鄉的教育做點事情是比較靠譜的。 于是&#xff0c;我就想到了&#xff0c;是不是可以在高中學校&#xff0c;設立一個“鴻鵠”獎學金&#xff1f; 這個獎學金怎么使用呢&#xff1f; 在每年9月份…

【Pandas】pandas DataFrame stack

Pandas2.2 DataFrame Reshaping sorting transposing 方法描述DataFrame.droplevel(level[, axis])用于**從 DataFrame 的索引&#xff08;行或列&#xff09;中刪除指定層級&#xff08;level&#xff09;**的方法DataFrame.pivot(*, columns[, index, values])用于重塑 Dat…

Java 自動關閉資源語法糖 - try-with-resources

文章目錄 Java 自動關閉資源語法糖 - try-with-resources前言優勢1、自動資源管理2、處理多重資源3、異常處理更健壯4、適用條件 總結 Java 自動關閉資源語法糖 - try-with-resources 前言 日常開發中&#xff0c;我們經常會看到如下代碼&#xff1a; try (InputStream is …

MyBatis中的動態SQL是什么?

大家好&#xff0c;我是鋒哥。今天分享關于【MyBatis中的動態SQL是什么&#xff1f;】面試題。希望對大家有幫助&#xff1b; MyBatis中的動態SQL是什么&#xff1f; 超硬核AI學習資料&#xff0c;現在永久免費了&#xff01; MyBatis中的動態SQL指的是根據不同的條件&#x…

【Java反射】如何新增對象中的屬性,與JavaScript中的直接添加屬性有什么區別?

問&#xff1a; Object obj new Object(); //獲取一個類的class對象 Class<?> objClass Object.class; try { //通過newInstance方法創建一個新的屬性 Field newField Field.class.newInstance(); newField.setAccessible(true); newField.set(obj, “index”); }ca…

java spring boot Swagger安裝及使用

https://springdoc.org/ 可能原因分析 &#x1f50d; 原因 1&#xff1a;SpringFox 版本與 Spring Boot 版本不兼容 ? SpringFox 3.0.0 不完全兼容 Spring Boot 2.6 及更高版本&#xff0c;可能導致 NullPointerException。 Spring Boot 3.x 完全不支持 SpringFox&#xff0c…

電商云倉/前置倉的物流高效監控、管理、預警系統,快遞鳥DMS

在電商行業蓬勃發展的當下&#xff0c;電商云倉和前置倉作為物流配送體系的關鍵環節&#xff0c;其高效運作直接影響著消費者體驗與企業競爭力。快遞鳥 DMS 物流交付管理平臺&#xff0c;以其卓越的物流監控、管理及預警功能&#xff0c;成為電商企業優化云倉和前置倉物流管理的…

HarmonyOS Next深度解析:高德定位SDK高效集成與實戰指南

HarmoyOS Next 實現高德定位SDK 注&#xff1a;作者采用版本為 HarmonyOS 5.0.0 Release SDK和DevEco Studio 5.0.0 Release。 1.獲取本地AppID&#xff1a; 在index.pages的abountToAppear( ) 方法中獲取appID、并打印在Log日志&#xff0c;即可在程序運行時獲取本地項目的…

【技術】記一次 Docker 中的 ES 數據遷移,使用 Reindex API

記一次 Docker 中的 ES 數據遷移&#xff0c;使用 Reindex API 環境背景需求背景開始遷移確認老 ES 的訪問地址在新 ES 中創建索引的 Mapping (選配)在新 ES 中配置老 ES 的地址開始遷移數據數據驗證 首先聲明&#xff0c;是因為環境限制&#xff0c;沒有辦法使用同步工具&…

yii2基礎版本安裝記錄,實錄有點亂看標題即可

因為使用php 安裝的是docker環境所有進入到容器安裝ridh_mfe_api 為掛載目錄 Nginx及PHP掛載配置 因為使用php 安裝的是docker環境所有進入到容器安裝 ridh_mfe_api 為掛載目錄 進入容器 % docker exec -it php sh /var/www/html # ls index.html index.php composer crea…

前端跨域解決方案(3):CORS

1 CORS 核心 CORS&#xff08;Cross-Origin Resource Sharing&#xff09;&#xff0c;即跨域資源共享&#xff0c;是目前最主流的跨域方案&#xff0c;它通過服務器返回的特殊 HTTP 頭&#xff0c;允許瀏覽器放行跨域請求。與傳統的 JSONP 相比&#xff0c;CORS 具有明顯的優…

SpringBoot源碼解析(十五):spring-boot-autoconfigure.jar的模塊化設計

前言 SpringBoot的自動配置是其革命性特性的核心&#xff0c;而spring-boot-autoconfigure.jar則是這一機制的物理載體。本文將深入剖析這個JAR包的模塊化設計哲學&#xff0c;從包結構劃分、條件注解體系到自動配置加載機制&#xff0c;全方位解析SpringBoot如何通過精妙的模…

學習筆記九:docker容器日志問題

docker容器日志問題 背景如何處理日志問題主要通過日志輪詢方式處理。修改 Docker 配置日志快速清理 背景 Docker 默認使用的是 json-file 日志驅動。日志會一直寫&#xff0c;一直寫&#xff0c;沒有限制、沒有輪轉、沒有清理&#xff01; 日志默認位置&#xff1a; /var/lib…

低成本同屏方案:電腦 + 路由器實現 50 臺安卓平板實時同屏

引言 在教育機構、小型培訓場景或企業簡易會議中&#xff0c;常面臨以最低成本實現多設備同屏的需求。本文針對 "電腦 路由器 50 臺安卓平板" 的極簡硬件組合&#xff0c;詳細剖析實時同屏的實現路徑&#xff0c;從問題分析到技術落地提供全流程解決方案&#xff0…

Unity ECS DOTS技術實現50000個cube隨機循環移動流程

前言 之前使用過ECS面向組件開發&#xff0c;一直想試一下Unity的ECS DOTS技術&#xff0c;但是苦于入門門檻太高&#xff0c;下載官方的Demo&#xff0c;發現代碼哪哪兒都看不懂&#xff0c;一大堆API聞所未聞&#xff0c;而且沒有一個入門的流程&#xff0c;導致無法進行下去…

設計模式精講 Day 3:抽象工廠模式(Abstract Factory Pattern)

【設計模式精講 Day 3】抽象工廠模式&#xff08;Abstract Factory Pattern&#xff09; 文章簡述 在軟件開發中&#xff0c;隨著業務復雜度的提升&#xff0c;系統需要支持多種產品族的創建。抽象工廠模式正是為了解決這一問題而誕生的設計模式之一。本文作為“設計模式精講”…

Kafka消息零丟失架構設計:從原理到實戰的全方位保障

引言 在構建高可靠分布式系統時&#xff0c;Kafka作為核心消息中間件被廣泛應用于數據管道、實時流處理等關鍵場景。然而&#xff0c;分布式環境下的網絡波動、節點故障等因素可能導致消息丟失&#xff0c;如何確保Kafka實現端到端的消息零丟失成為架構設計的關鍵挑戰。本文將…