微信公众号开发

后端实现微信小程序发送订阅消息模板

本文主要是介绍后端实现微信小程序发送订阅消息模板,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

需要access_token,appid,secret,订阅者的openid,template_id(模板ID)

package com.xxxy.tower.service.impl;

import com.xxxy.tower.dto.AccessTokenInfo;
import com.xxxy.tower.service.WxSubscribeService;
import com.xxxy.tower.util.HttpClientUtil;
import com.xxxy.tower.util.JsonUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;


@Slf4j
public class WxSubscribeService {

    public boolean sendMsg() {

        String accessToken = getAccessToken();
        String openId = user.getOpenId();
        String templateId = "qxz3pJIwAZaw8zGOiYRp_mw90UHUMfEJDMw8mkpfVGA";

        Map<String, Object> params = new HashMap<>();
        Map<String, Object> data = new HashMap<>();

        params.put("touser", openId);
        params.put("template_id", templateId);

        //设备编号
        data.put("character_string1", getDataMap("设备编号"));
        //报警类别
        data.put("thing3", getDataMap("报警类别"));
        //报警地点
        data.put("thing7", getDataMap("报警地点"));
        //报警内容
        data.put("thing19", getDataMap("报警内容"));
//        log.info();
        params.put("data", data);


        String json = JsonUtils.objectToJson(params);
        log.info(json);

        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken;
        String response = HttpClientUtil.doPostJson(url, json);
        log.info(response);
        return true;
    }


    public static String getAccessToken(){

        String grant_type="client_credential";
        //封装请求数据
        Map<String, String> params = new HashMap<>();
        params.put("grant_type", grant_type);
        params.put("appid", "xxxxxxxxxxxx");
        params.put("secret", "xxxxxxxxxxxxxxxxxxxxx");

        //发送GET请求
        String url = "https://api.weixin.qq.com/cgi-bin/token";
        String response = HttpClientUtil.doGet(url, params);
        //拿到accessToken
        try {
            AccessTokenInfo accessTokenInfo = JsonUtils.jsonToPojo(response, AccessTokenInfo.class);
            return accessTokenInfo.getAccess_token();
        }catch (Exception e) {
            return null;
        }
    }

    public static Map<String, String> getDataMap(String msg){
        Map<String, String> map = new HashMap<>();
        map.put("value", msg);
        return map;
    }


}

这篇关于后端实现微信小程序发送订阅消息模板的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!