首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微信公众号发送消息模板(java)

微信公众号发送消息模板(java)

作者头像
java架构师
发布于 2019-02-22 07:13:13
发布于 2019-02-22 07:13:13
1.7K0
举报
文章被收录于专栏:Java架构师进阶Java架构师进阶

这段时间接触公众号开发,写下向用户发送消息模板的接口调用

先上接口代码

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

1  public static JSONObject sendModelMessage(ServletContext context,JSONObject jsonMsg) {

2        System.out.println("消息内容:"+jsonMsg);

3        boolean result = false;

4        try {

5            getWX_AccessToken(context);

6        } catch (Exception e) {

7            // TODO Auto-generated catch block

8            e.printStackTrace();

9        }

10        // 拼接请求地址

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

12        requestUrl = requestUrl.replace("ACCESS_TOKEN", context.getAttribute(ContextTokenName).toString());

1314        // 发送客服消息

15        JSONObject jsonObject = getJsonByWX(requestUrl, context, "POST",jsonMsg, false);

16 

17        if (null != jsonObject) {

18            int errorCode = jsonObject.getInt("errcode");

19            String errorMsg = jsonObject.getString("errmsg");

20            if (0 == errorCode) {

21                result = true;

22                System.out.println("模板消息发送成功 errcode:{} "+errorCode+"----"+errorMsg);

23            } else {

24                System.out.println("模板消息发送失败 errcode:{} "+errorCode+"----"+errorMsg);

25            }

26        }

27 

28        return null;

29    }

15行那段getJsonByWX是统一调用微信接口的方法,每个项目都有自己的调用方法,我这里就不贴了。接口调用链接:

https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

接下来就是建个bean类,里面写入一下颜色及值

1    private String value;

2    private String color;

3   

4    public String getValue() {

5        return value;

6    }

8    public void setValue(String value) {

9        this.value = value;

10    }

11 

12    public String getColor() {

13        return color;

14    }

15 

16    public void setColor(String color) {

17        this.color = color;

18    }

在公众号里填写模板消息的对应格式

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

之后就是有个触发点,我选择发货后把发货信息发送给用户

    PageData wechatTemplate = new PageData();

        wechatTemplate.put("template_id", "填写你的模板id");

        wechatTemplate.put("touser", userInfo.get("openid"));//获取用户的openid

        Map<String,TemplateMessageUtil> mapdata = new HashMap<>();

        TemplateMessageUtil first  = new TemplateMessageUtil();       

        first.setColor("#173177");

        first.setValue("发货通知");

        mapdata.put("first", first);

        TemplateMessageUtil text1  = new TemplateMessageUtil();   

        text1.setColor("#173177");

        text1.setValue("您好,您所购买的商品已发货。");

        mapdata.put("text1", text1);

        TemplateMessageUtil text2  = new TemplateMessageUtil();   

        text2.setColor("#173177");

        text2.setValue(expresser_name);

        mapdata.put("text2", text2);

        TemplateMessageUtil text3  = new TemplateMessageUtil();   

        text3.setColor("#173177");

        text3.setValue(expresser_phone);

        mapdata.put("text3", text3);

        TemplateMessageUtil remark = new TemplateMessageUtil();       

        remark.setColor("#173177");

        remark.setValue("请保持电话畅通>>");

        mapdata.put("remark", remark);

        JSONObject json = new JSONObject(); 

        json.put("data",mapdata);

        json.putAll(wechatTemplate);//转为json

        WXInterface.sendModelMessage(context,json);

之后手机就会收到信息了

整体思路是这样,也是参照百度而来,因为每个人的项目里方法都不一样,我就不详细贴上,既然做到发送模板消息了,统一调用微信接口的方法应每个人该也早写在工具类里了,每个人都不同,当应该都有,调用这个方法,把微信模板消息连接的条件access_token写进去就请求了,剩下的就是传入你要发送的消息,消息存入集合,集合转json才行,JSONObject类相信也都有,我也不贴了,每个人项目都不一样,没必要照搬过去,就照着自己原先已有的类改进。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.01.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
算法_两数之和&中位数
你需要实现的函数 twoSum 需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。
OBKoro1
2020/10/27
3090
算法-统计数字(中等)
在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现 1 出现了 5 次 (1, 10, 11, 12)
OBKoro1
2020/10/27
3970
算法-爬楼梯 2
一个小孩爬一个 n 层台阶的楼梯。他可以每次跳 1 步, 2 步 或者 3 步。实现一个方法来统计总共有多少种不同的方式爬到最顶层的台阶
OBKoro1
2020/10/27
4560
算法-丑数(中等)
我再提供多一些数据:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24]
OBKoro1
2020/10/27
3700
算法-判断字符串的循环移动
可以检验某个单词是否为另一个单词的子字符串。给定 s1 和 s2,请设计一种方法来检验 s2 是否为 s1 的循环移动后的字符串。
OBKoro1
2020/10/27
7900
三刷”数组中的第K个最大元素“,我终于学会了堆排序
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情
虎妞先生
2022/10/27
5610
三刷”数组中的第K个最大元素“,我终于学会了堆排序
算法—第一个只出现一次的字符
第一个只出现一次的字符 难度:简单 描述: 给出一个字符串,找出第一个只出现一次的字符。 样例: 对于 aabc, b为第一个只出现一次的字符. 对于 abaccdeff, b为第一个只出现一次的字符. 思路分析: 可以用对象保存字符出现的次数。 代码模板: const firstUniqChar = function(str) {}; 想一想再看答案 想一想再看答案 想一想再看答案 代码: 将值删除,用 indexOf 查找还有没有相同字符,并查找之前删过的字符 const firstUniqChar
OBKoro1
2020/10/27
5590
算法-原地删除数组元素
切勿直接使用数组的length属性,因为被删除后length属性会减少,导致遍历提前结束,删除不彻底。
OBKoro1
2020/10/27
1K0
算法_爬楼梯
假设你正在爬楼梯,需要 n 步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?
OBKoro1
2020/10/27
3480
一天一大 leet(数组中的第 K 个最大元素)难度:中等 DAY-29
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
前端小书童
2020/09/24
3960
一天一大 leet(数组中的第 K 个最大元素)难度:中等 DAY-29
算法-相亲数
一对整数是相亲数是说他们各自的所有有效因子(除了自己以外的因子)之和等于另外一个数。比如(220, 284)就是一对相亲数。
OBKoro1
2020/10/27
9110
JS数组操作
当前字符串中包含字母和数字, 用一个方法实现出现最多的字母和数字 a)如果只有字母, 那么只返回出现最多的字母, 只有数字情况同理 b)如果有相同次数多的字母或数字出现,将按照第一次出现的顺序返回 列表如下:
epoos
2022/06/06
9.5K0
前端算法专栏-数组-215. 数组中的第K个最大元素
很多朋友也是看着这套系列算法拿到很多offer!所以也是想分享给更多朋友,帮助到有需要的朋友。
程序员库里
2023/11/28
2520
算法-落单的数
给出 2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
OBKoro1
2020/10/27
3590
算法—字符串压缩
例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。
OBKoro1
2020/10/27
2.2K0
算法_比较字符串&字符串密钥格式
比较两个字符串 A 和 B,确定 A 中是否包含 B 中所有的字符。字符串 A 和 B 中的字符都是 大写字母
OBKoro1
2020/10/27
9610
LeetCode *703. 数据流中的第 K 大元素(堆)
设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。
SakuraTears
2022/01/13
5600
数组中的第K个最大元素
在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。
WindRunnerMax
2020/08/27
1.4K0
LeetCode刷题(二) JavaScript
通过递归实现:判断 list1 和 list2 那个链表的头结点的值更小,然后递归下去决定下一个添加到结果的节点,当两个链表中有为空时,递归结束。
赤蓝紫
2023/01/05
3310
2025-01-24:最小元素和最大元素的最小平均值。用go语言,你有一个空的浮点数数组 averages,以及一个包含偶数个整
2025-01-24:最小元素和最大元素的最小平均值。用go语言,你有一个空的浮点数数组 averages,以及一个包含偶数个整数的数组 nums。你需要执行以下步骤,重复 n/2 次:
福大大架构师每日一题
2025/02/05
700
2025-01-24:最小元素和最大元素的最小平均值。用go语言,你有一个空的浮点数数组 averages,以及一个包含偶数个整
相关推荐
算法_两数之和&中位数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档