公众号推送模板消息(JAVA版)

公众号推送模板消息(JAVA版)

先贴上官方文档

步骤不多:组装请求体,调用接口

接口:(POST)https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

POST数据示例:
POST数据示例
touser:指定推送用户的openId;
template_id:模板消息Id,去公众号里面去找,要注意公众号的行业和模板的行业要一致;
url和miniprogram:用来指定模板的跳转(可以省略);
data:消息体,示例里面的key值和你模板里面的key值要对应起来

代码实现
1、先准备模板消息的实体类(这里用了lombok):

@Data
public class WxTemplate {
    private String template_id;
    private String touser;
    private Map<String,TemplateData> data;
}
@Data
public class TemplateData{
    private String value;
    private String color;
}

2、业务层:

@Component
public class SendMessageServer {
    @Autowired
    RestTemplate restTemplate;
  

    public void sendMessage(){
            //获取当前司机的openId
            String openId="对应的用户的openId";
            //模板ID
            String templateId="你的模板ID";
            //拼接url
            String url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+"你的accesstoken";
            //封装post的请求体
            WxTemplate temp = new WxTemplate();
            temp.setTouser(openId);
            temp.setTemplate_id(templateId);
            Map<String,TemplateData> m = new HashMap<>();
            TemplateData first = new TemplateData();
            first.setColor("#000000");
            first.setValue(messageHead);
            m.put("first", first);
            TemplateData keyword1 = new TemplateData();
            keyword1.setColor("#000000");
            keyword1.setValue("***太仓分公司");
            m.put("keyword1", keyword1);
            TemplateData keyword2 = new TemplateData();
            keyword2.setColor("#000000");
            keyword2.setValue("原料卸货");
            m.put("keyword2", keyword2);
            TemplateData keyword3 = new TemplateData();
            keyword3.setColor("#000000");
            keyword3.setValue("见送货单");
            m.put("keyword3", keyword3);
            TemplateData keyword4 = new TemplateData();
            keyword4.setColor("#000000");
            keyword4.setValue(deliveryCode);
            m.put("keyword4", keyword4);
            TemplateData remark = new TemplateData();
            remark.setColor("#000000");
            remark.setValue(messageBody);
            m.put("remark", remark);
            temp.setData(m);
            String data= JSONArray.toJSONString(temp);
            //请求
            String result = restTemplate.patchForObject(url,data ,String.class);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值