前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【微信小程序】使用Java后端语言发送订阅(模板)消息

【微信小程序】使用Java后端语言发送订阅(模板)消息

作者头像
小帅丶
发布2021-12-28 13:15:00
1.6K0
发布2021-12-28 13:15:00
举报
文章被收录于专栏:XAIXAI

代码所需JAR

需要安装lombok插件哦

代码语言:javascript
复制
        <!-- 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增加一个按钮并绑定一个事件

代码语言:javascript
复制
<button class="up" bindtap="sendmsg">订阅更新消息
</button>

在index.js增加事件处理方法

代码语言:javascript
复制
  sendmsg:function(){
    wx.requestSubscribeMessage({
      tmplIds: ['模板ID'],
      success:function(res){
        console.info(res);
      },
      fail(res){
        console.info(res);
      }
    })
  },

演示用户订阅消息

允许成功返回的数据
代码语言:javascript
复制
{
    "模板ID":"accept",
    "errMsg":"requestSubscribeMessage:ok",
    "errCode":0
}

步骤三:调用接口下发订阅消息

服务端消息发送接口文档必看

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html

开始Java编程

新建一个常量类代码

代码语言:javascript
复制
/**
 * @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 = "";
}

新建订阅消息对象

代码语言:javascript
复制
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;
}

新建订阅消息详情内容对象

代码语言:javascript
复制
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字符串

代码语言:javascript
复制
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);
    }
}

微信收到的内容

以上就是微信小程序发送订阅消息的示例了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码所需JAR
  • 官方文档必须看一下哈
  • 步骤一:获取模板 ID
  • 步骤二:获取下发权限
    • 小程序端消息订阅接口文档必看
      • 在小程序实现小程序端消息订阅事件
        • 在index.html增加一个按钮并绑定一个事件
        • 在index.js增加事件处理方法
        • 演示用户订阅消息
    • 步骤三:调用接口下发订阅消息
      • 服务端消息发送接口文档必看
        • 开始Java编程
          • 新建一个常量类代码
          • 新建订阅消息对象
          • 新建订阅消息详情内容对象
        • 编写发送订阅消息代码
          • 微信收到的内容
          相关产品与服务
          云开发 CloudBase
          云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档