【微信小程序】使用Java后端语言发送订阅(模板)消息
<!-- hutool --> <dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.13</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.59</version>
</dependency>
官方文档必须看一下哈
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html
步骤一:获取模板 ID
在微信公众平台手动配置获取模板 ID:
登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。
这里就按官网要求来即可
步骤二:获取下发权限
小程序端消息订阅接口文档必看
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html
在小程序实现小程序端消息订阅事件
在index.html增加一个按钮并绑定一个事件
<button class="up" bindtap="sendmsg">订阅更新消息</button>
在index.js增加事件处理方法
sendmsg:function(){ wx.requestSubscribeMessage({
tmplIds: ["模板ID"],
success:function(res){
console.info(res);
},
fail(res){
console.info(res);
}
})
},
演示用户订阅消息
允许成功返回的数据
{ "模板ID":"accept",
"errMsg":"requestSubscribeMessage:ok",
"errCode":0
}
步骤三:调用接口下发订阅消息
服务端消息发送接口文档必看
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
开始Java编程
新建一个常量类代码
/** * @author 小帅丶
* @className WXAPIConts
* @Description 微信小程序API
* @Date 2020/2/24-11:22
**/
public class WXAPIConts {
//发送订阅消息URL
public static String SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN";
//模板ID 多个则自行命名区分即可
public static String TEMPLATE_ID = "";
}
新建订阅消息对象
import lombok.Data;/**
* @author 小帅丶
* @className SubscribeBean
* @Description 发送订阅消息对象
* @Date 2020/2/24-11:23
**/
@Data
public class SubscribeBean {
/** 接收者(用户)的 openid */
private String touser;
/** 所需下发的订阅模板id */
private String template_id;
/** 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数 该字段不填则模板无跳转。*/
private String page;
/** 模板|订阅内容 */
private SubscribeDataBean data;
/** 进入小程序查看”的语言类型 支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN返回值*/
private String lang = "zh_CN";
/** 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版 */
private String miniprogram_state;
}
新建订阅消息详情内容对象
import lombok.AllArgsConstructor;import lombok.Data;
/**
* @author 小帅丶
* @className SubscribeDataBean
* @Description 订阅消息具体内容对象 根据对象不同key不同
* @Date 2020/2/24-11:23
**/
@Data
public class SubscribeDataBean {
//具体的订阅消息的key {{thing4.DATA}} 则key为thing4
private Thing4 thing4;
private Date1 date1;
@Data
@AllArgsConstructor
public static class Thing4{
private String value;
}
@Data
@AllArgsConstructor
public static class Date1{
private String value;
}
}
编写发送订阅消息代码
发送对象转JSON字符串
package cn.netand.wxlite.sample;import cn.hutool.http.HttpUtil;
import cn.netand.wxlite.bean.SubscribeBean;
import cn.netand.wxlite.bean.SubscribeDataBean;
import cn.netand.wxlite.conts.WXAPIConts;
import com.alibaba.fastjson.JSON;
/**
* @author 小帅丶
* @className SendSubscriptionMessageSample
* @Description 发送订阅消息示例代码
* @Date 2020/2/24-11:29
**/
public class SendSubscriptionMessageSample {
public static void main(String[] args) {
//小程序的ACCESS_TOKEN
String ACCESS_TOKEN = "";
//访问过小程序的openid
String OPENID = "";
String url = WXAPIConts.SEND_URL.replace("ACCESS_TOKEN", ACCESS_TOKEN);
//模板ID
String template_id = WXAPIConts.TEMPLATE_ID;
//订阅消息内容组装
SubscribeDataBean bean = new SubscribeDataBean();
bean.setDate1(new SubscribeDataBean.Date1("2020年2月24日 10:42"));
bean.setThing4(new SubscribeDataBean.Thing4("新增好多功能"));
//组装接口所需对象
SubscribeBean sendBean = new SubscribeBean();
sendBean.setData(bean);//这里的订阅消息对象 不需要额外转json
sendBean.setTouser(OPENID);
sendBean.setTemplate_id(template_id);
//对象转json
String param = JSON.toJSONString(sendBean);
String result = HttpUtil.post(url, param);
System.out.println("发送返回的内容:" + result);
}
}
微信收到的内容
以上就是微信小程序发送订阅消息的示例了
以上是 【微信小程序】使用Java后端语言发送订阅(模板)消息 的全部内容, 来源链接: utcz.com/z/513785.html