Springboot开发微信公众号实现模板消息的发送

使用Springboot开发微信公众号实现发送模板消息


1.controller 代码如下(示例):
 @RequestMapping(value = "/sendTest", method = RequestMethod.GET)
    @ResponseBody
    public String sendTest(String openid) {
        System.out.println("----------------------------------------发送模板消息执行了---------------------------------");
        templateMsgService.sendTest(openid);
        return "success";
    }

2.service
代码如下(示例):

**
 * Author: Eric.Chen
 * DateTime: 2021/3/19 9:53
 */
public interface TemplateMsgService {

    /**
     * 向一个用户推送消息(测试)
     * @param openId
     * @param
     */
    void sendTest(String openId);
}

3.service实现类
代码如下(示例):

**
 * Author: Eric.Chen
 * DateTime: 2021/3/19 9:53
 */
/**
 * Author: Eric.Chen
 * DateTime: 2021/3/19 9:53
 */
@Service
public class TemplateMsgServiceImpl extends BaseWeChatServiceImpl implements TemplateMsgService {

    /**
     * 1、发送模版消息-拼接数据(测试信息)
     * @param openId 微信用户的openId
     */
    @Override
    public void sendTest(String openId) {
        // 模板Id
        String templateId = "BU_tKpAIPmlE3qmzSHojbZrCuLIS0TG2ySh1B-guK8g";
        // 发送
       this.send(openId, templateId);

    }

    /**
     * 2、发送模版消息
     * openId     用户Id
     * templateId 模板Id   测试: "模板id"
     * data  模板参数
     */
    private void  send(String openId, String templateId) {
        Map<String, Object> sendBody = new HashMap<>();
        String accessToken = coreService.getToken();
        String url = WxChatConstant.Url.SEND_URL.replace("ACCESS_TOKEN", accessToken);
        //基础数据
        WxTemplateMsg data = new WxTemplateMsg();
        Map<String, Object> key = new HashMap<>();
        key.put("value", "快递详情"); //标题
        key.put("color", "#173117");
        data.setFirst(key);
        Map<String, Object> d1 = new HashMap<>();
        d1.put("value", "订单id:888888888888888");  //其他内容根据需求添加
        d1.put("color", "#173117");
        data.setKeyword1(d1);
        Map<String, Object> d2 = new HashMap<>();
        d2.put("value", "发货地址:南京");
        d2.put("color", "#173117");
        data.setKeyword2(d2);

        //拼接base参数
        sendBody.put("touser", openId);               // openId
        sendBody.put("url", "www.baidu.com");         // 点击模板信息跳转地址
        sendBody.put("topcolor", "#FF0000");          // 顶色
        sendBody.put("data", data);                   // 模板参数
        sendBody.put("template_id", templateId);      // 模板Id
        JSONObject json = new JSONObject(sendBody);
        System.out.println("========================发送模板数据:"+json.toString()+"");
        String str = HttpClientUtils.post(url,json.toString());
        System.out.println(str);
    }

}

总结

通过这种方式可轻松实现微信公众号模板消息的发送,如有问题请评论留言!。

  • 2
    点赞
  • 5
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北冥&有余

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值