行业知识
微信小程序发送订阅消息
2026-11-12 11:11:52
来源:互联网转载
小程序后台。订阅消息里面,新建一个消息模板
小程序代码,登录后,弹出订阅信息
requestSubscribeMessage: function () { wx.requestSubscribeMessage({ tmplIds: ['-323232-32323'], // 替换为你的模板ID success(res) { // 用户订阅结果 console.log(res); }, fail(err) { console.error('订阅消息失败', err); } }); }, JAVA后台发送消息提醒
com.github.binarywang weixin-java-miniapp 4.5.0
#微信小程序的appid 开发者工具拿到wx.miniapp.configs.appid=111#开发者工具拿到Secretwx.miniapp.configs.secret=1111#微信小程序消息服务器配置的tokenwx.miniapp.configs.token=123随便写#微信小程序消息服务器配置的EncodingAESKeywx.miniapp.configs.aesKey=123随便写wx.miniapp.configs.msgDataFormat=JSON
package com.java.core.web.config;import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;@Data@ConfigurationProperties(prefix = "wx.miniapp.configs")public class WxProperties { /** * 设置微信小程序的appid */ private String appid; /** * 设置微信小程序的Secret */ private String secret; /** * 设置微信小程序消息服务器配置的token */ private String token; /** * 设置微信小程序消息服务器配置的EncodingAESKey */ private String aesKey; /** * 消息格式,XML或者JSON */ private String msgDataFormat;} package com.java.core.web.config;import cn.binarywang.wx.miniapp.api.WxMaService;import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;import lombok.extern.slf4j.Slf4j;import me.chanjar.weixin.common.error.WxRuntimeException;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Slf4j@Configuration@EnableConfigurationProperties(WxProperties.class)public class WxConfig { @Autowired private WxProperties properties; @Bean public WxMaService getService() { if (properties == null || properties.getAppid() == null || properties.getSecret() == null) { throw new WxRuntimeException("required wechat param not found"); } WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); config.setAppid(properties.getAppid()); config.setSecret(properties.getSecret()); config.setToken(properties.getToken()); config.setAesKey(properties.getAesKey()); config.setMsgDataFormat(properties.getMsgDataFormat()); WxMaService service = new WxMaServiceImpl(); service.setWxMaConfig(config); return service; }} package com.java.core.web.contrller.test;import cn.binarywang.wx.miniapp.api.WxMaService;import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;import com.java.core.com.annotation.Log;import com.java.core.com.enums.BusinessType;import com.java.core.com.vo.HttpResult;import com.java.core.web.contrller.common.BaseController;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import me.chanjar.weixin.common.error.WxErrorException;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;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.HashMap;import java.util.Map;@Api(tags = {"微信小程序测试"})@RestController@RequestMapping("wxmini")public class WxMiniAppController extends BaseController { @Autowired private WxMaService wxService; @ApiOperation(value = "发送小程序消息") @Log(title = "发送小程序消息", businessType = BusinessType.GET) @GetMapping(value = "/sendMsg") public HttpResult sendMsg(String openId){ //String openId = "oWt586-xxxx"; String templteId = "-xxxx-HjpoRJVU";//模板Id // 获取当前日期和时间 LocalDateTime currentDateTime = LocalDateTime.now(); // 定义日期时间格式化模式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 格式化日期和时间 String formattedDateTime = currentDateTime.format(formatter); Map map = new HashMap(); map.put("character_string9", "111111111111");//单号 map.put("thing1", "您收到了测试任务提醒消息");//发送内容 map.put("thing14", "申请人");//申请人 map.put("time8", formattedDateTime);//单据时间 WxMaSubscribeMessage wxMaSubscribeMessage = WxMaSubscribeMessage.builder() .toUser(openId) .templateId(templteId)//模板ID .page("pages/login/index")//打开后要跳转的页面 .build(); // 设置将推送的消息 map.forEach((k, v) -> { wxMaSubscribeMessage.addData(new WxMaSubscribeMessage.MsgData(k, v)); }); try { wxService.getMsgService().sendSubscribeMsg(wxMaSubscribeMessage); } catch (WxErrorException e) { e.printStackTrace(); } return HttpResult.ok(); }}
上一篇:印度服务器怎么建设不了?
下一篇:腾讯服务器被打怎么修复?