微信公众号模板消息发送接口代码详解

这段代码是一个用于发送微信模板消息的接口。接口接收一个包含 'openid' 的 Map 对象作为参数,根据这个 'openid' 获取 'access_token',然后使用 RestTemplate 发送 POST 请求,将模板消息推送给指定的用户。

代码解析

/**
 * 微信测试账号 发送模板消息
 */
@PostMapping("/push")
public Object push(@RequestBody Map<String, Object> params){
    System.out.println(params);

    String openid = (String) params.get("openid");

    RestTemplate restTemplate = new RestTemplate();
    //为了简单测试 这里每次都获取最新的access_token(在实际开发中,应该在 access_token 快过期时再重新获取)

    //1.获取access_token
    String url0 = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&"
            + "appid=" + AppId +
            "&secret=" + AppSecret;
    String jsonData = restTemplate.getForObject(url0, String.class);
    JSONObject jsonObject = JSONObject.parseObject(jsonData);
    String access_token = jsonObject.getString("access_token");
    log.info("获取到access_token:" + access_token);

    String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token;

    //推送的模版 (目前为了简单测试 很多参数都写死,固定了,但也可以根据需要动态传入参数)
    WxTemplate wxTe = new WxTemplate();
    wxTe.setTouser(openid);//用户的openid(接收人,这里应该传进来的)
    wxTe.setTemplate_id("u99_kaT0ZhAtxT4NaAgVhzZF_4xEIbEidbQMKOxz7Ro");//订阅消息模板id

    //日期格式定义 转换
    DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    String dateString = dateformat.format(new Date());

    Map<String,TemplateData> m = new HashMap<>();
    m.put("time", new TemplateData(dateString,"#79CCE9"));
    m.put("name", new TemplateData("教练","#FF0000"));
    wxTe.setData(m);

    ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, wxTe, String.class);
    return JSON.parseObject(responseEntity.getBody());
}

代码主要功能:

  1. 接收参数: 接口接收一个包含 'openid' 的 Map 对象作为参数,用于识别接收模板消息的用户。
  2. 获取 'access_token': 通过调用微信接口获取 'access_token',这是使用微信 API 的必要凭证。
  3. 构建模板消息: 定义 'WxTemplate' 对象,设置模板 ID 和接收人的 'openid',并填充模板数据。
  4. 发送请求: 使用 RestTemplate 发送 POST 请求,将模板消息推送到指定的用户。
  5. 返回结果: 返回一个 JSON 对象,包含发送状态等信息。

代码要点:

  • 使用 'RestTemplate' 发送 HTTP 请求,方便进行微信 API 调用。
  • 使用 'JSONObject' 解析 JSON 数据,方便获取 'access_token' 等信息。
  • 使用 'WxTemplate' 对象构建模板消息,方便设置模板 ID、接收人、数据等信息。
  • 代码中使用了一些占位符,如 'AppId'、'AppSecret',需要根据实际情况进行替换。

使用说明:

  1. 将代码部署到服务器上,并配置相应的 'AppId'、'AppSecret' 等信息。
  2. 在前端代码中调用该接口,传入用户的 'openid' 和模板数据。
  3. 接口会根据传入的参数,向用户发送相应的模板消息。

代码优化:

  • 可以使用缓存机制,缓存 'access_token',避免每次都获取,提高接口效率。
  • 可以将模板 ID、模板数据等信息进行封装,提高代码可读性和可维护性。
  • 可以添加异常处理机制,确保接口的稳定性。

其他说明:

  • 这段代码只演示了发送模板消息的基本流程,具体的实现可能需要根据实际情况进行调整。
  • 使用微信 API 需要遵守微信的接口规范,并进行必要的安全验证。

希望本文对您了解微信公众号模板消息发送接口有所帮助!

微信公众号模板消息发送接口代码详解

原文地址: https://www.cveoy.top/t/topic/oOAG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录