微信小程序消息订阅实现

7 篇文章 0 订阅
4 篇文章 1 订阅

1.先看文档

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

在这里插入图片描述
第一步:先创建一个自己想要的模版
在这里插入图片描述
第二步:先看文档 ,在微信小程序写一个按钮触发函数里加入
wx.requestSubscribeMessage({
tmplIds: [‘你的模版id’], //可以是多个
success (res) { }
})
每次订阅都会询问你一次。

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html

<button bindtap="bindMsg">订阅消息</button>
 bindMsg:function(){
    wx.requestSubscribeMessage({
      tmplIds: ['p2BH6d6YQb9u7lm8lyZEw2Unn_MIcLFKna7hWaC65S4'],
      success (res) {
        console.log(res)
       }
    })
  }

效果图
第三步:文档 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
在这里插入图片描述
我们需要传入四个必填参数给微信平台,注意data必须是json格式数据,且满足如下格式:
在这里插入图片描述
如果不按要求来会出现如下报错
在这里插入图片描述
按照以上顺序要求,编写后台代码

@RestController
@RequestMapping("/wx/message")
public class TemplateMessageController {

    @Autowired
    private RestTemplate restTemplate;

    @Value("${wechat.mp.appid}")
    private String appid;
    @Value("${wechat.mp.secret}")
    private String secret;

    private String openId = "自己获取自己的";

    @RequestMapping(value="/sendMsg")
    @ResponseBody
    protected String sendMsg(){
        //获取access_token
        String requestAccessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret="+secret;
        String jsonData = this.restTemplate.getForObject(requestAccessTokenUrl, String.class);
        String accessToken = (String) JSON.parseObject(jsonData).get("access_token");
        String sendMsgUrl ="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
        Map<String,Object> map = new HashMap<>();
        map.put("touser",openId);//传入openid
        map.put("template_id","p2BH6d6YQb9u7lm8lyZEw2Unn_MIcLFKna7hWaC65S4");
        map.put("page","pages/TemplateMessage/TemplateMessage");
        Map<String,Object> data = new HashMap<>();
        Map<String,Object> key1 = new HashMap<>();
        key1.put("value","1234567");

        Map<String,Object> key2 = new HashMap<>();
        key2.put("value","ppp");

        Map<String,Object> key3 = new HashMap<>();
        key3.put("value","testy");

        Map<String,Object> key4 = new HashMap<>();
        key4.put("value","10.00");

        Map<String,Object> key5 = new HashMap<>();
        key5.put("value","2020-11-30");

        map.put("data",data);
        data.put("character_string5",key1);
        data.put("thing4",key2);
        data.put("thing3",key3);
        data.put("amount1",key4);
        data.put("date6",key5);
        String resultString = this.restTemplate.postForObject(sendMsgUrl, JSON.toJSON(map), String.class);
        return resultString;
    }
}

请求接口返回{“errcode”:0,“errmsg”:“ok”}
在这里插入图片描述

小程序服务通知中会出现
在这里插入图片描述
这样就很简单的实现了订阅消息。

有帮到你的话就扫扫吧
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值