微信模板信息发送给用户(JAVA)

微信模板信息

为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板ID向用户主动推送提醒、通知消息。

获取微信凭证

这一步我在另一篇文章中的“获取access_token”讲到。如果还没有认识到这个知识点的,请另查看。

开通微信模板信息

  1. 开通微信模板信息功能(认证的服务号)
  2. 选择特定的模板信息(根据选择不同的行业有不同的模板)
    图1.微信模板信息库
    图1.模板库

    获取模板信息id发送信息

    模板信息开通成功之后,就可以根据自己的需求选择适合的模板。
    例:我们选择“订单支付成功”的模板
    图2.模板信息详情
    图2.模板信息详情

    我们会获得一个模板ID(templat_id)这个id挺重要的,请大家记住哦。

发送模板信息

必须的参数

  • 用户的open_id(用户唯一标识)
  • 模板信息id
  • 模板详情,带.DATA参数的填充json变量
  • 模板信息带详情,URL链接(请注意,URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。)
  • 字体颜色,如黑色“#FF0000”

    封装模板详细信息

    方法:
    需要的jar包:org.json

/*** @method packJsonmsg* @描述: TODO(封装微信模板:订单支付成功) * @参数@param first  头部* @参数@param orderMoneySum  总金额* @参数@param orderProductName  商品信息* @参数@param remark  说明* @参数@return* @返回类型:JSONObject* @添加时间 2016-1-5下午03:38:54* @作者:****/public static JSONObject packJsonmsg(String first, String orderMoneySum, String orderProductName, String remark){JSONObject json = new JSONObject();try {JSONObject jsonFirst = new JSONObject();jsonFirst.put("value", first);jsonFirst.put("color", "#173177");json.put("first", jsonFirst);JSONObject jsonOrderMoneySum = new JSONObject();jsonOrderMoneySum.put("value", orderMoneySum);jsonOrderMoneySum.put("color", "#173177");json.put("orderMoneySum", jsonOrderMoneySum);JSONObject jsonOrderProductName = new JSONObject();jsonOrderProductName.put("value", orderProductName);jsonOrderProductName.put("color", "#173177");json.put("orderProductName", jsonOrderProductName);JSONObject jsonRemark = new JSONObject();jsonRemark.put("value", remark);jsonRemark.put("color", "#173177");json.put("Remark", jsonRemark);} catch (JSONException e) {e.printStackTrace();}return json;}

上面方法是的到模板信息的json对象。
接下来就是发送信息的方法了。

/*** @method sendWechatmsgToUser* @描述: TODO(发送模板信息给用户) * @参数@param touser  用户的openid* @参数@param templat_id  信息模板id* @参数@param url  用户点击详情时跳转的url* @参数@param topcolor  模板字体的颜色* @参数@param data  模板详情变量 Json格式* @参数@return* @返回类型:String* @添加时间 2016-1-5上午10:38:45* @作者:****/public static String sendWechatmsgToUser(String touser, String templat_id, String clickurl, String topcolor, JSONObject data){String tmpurl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";String token = JsapiTicketTimeTask.access_token;  //微信凭证,access_tokenString url = tmpurl.replace("ACCESS_TOKEN", token);JSONObject json = new JSONObject();try {json.put("touser", touser);json.put("template_id", templat_id);json.put("url", clickurl);json.put("topcolor", topcolor);json.put("data", data);} catch (JSONException e) {e.printStackTrace();}String result = httpsRequest(url, "POST", json.toString());try {JSONObject resultJson = new JSONObject(result);String errmsg = (String) resultJson.get("errmsg");if(!"ok".equals(errmsg)){  //如果为errmsg为ok,则代表发送成功,公众号推送信息给用户了。return "error";}} catch (JSONException e) {e.printStackTrace();}return "success";}

httpsRequest 请求方法:

public static String httpsRequest(String requestUrl, String requestMethod, String outputStr){try {URL url = new URL(requestUrl);HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);// 设置请求方式(GET/POST)conn.setRequestMethod(requestMethod);conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");// 当outputStr不为null时向输出流写数据if (null != outputStr) {OutputStream outputStream = conn.getOutputStream();// 注意编码格式outputStream.write(outputStr.getBytes("UTF-8"));outputStream.close();}// 从输入流读取返回内容InputStream inputStream = conn.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String str = null;StringBuffer buffer = new StringBuffer();while ((str = bufferedReader.readLine()) != null) {buffer.append(str);}// 释放资源bufferedReader.close();inputStreamReader.close();inputStream.close();inputStream = null;conn.disconnect();return buffer.toString();} catch (ConnectException ce) {System.out.println("连接超时:{}");} catch (Exception e) {System.out.println("https请求异常:{}");}return null;}

总结

模板消息是另外一种通知用户的方法,当手机信息不能通知用户时,也未尝不是一种好的方法哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/17473.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java微信模板消息接口的使用

通过之前的微信开发分享我们应该知道微信如果要给用户主动发送消息可以使用客服消息或多客服,但是发送客服消息用户需在48小时内和微信公众号有过交互,也就是说如果48小时内用户没和公众号交互过,即使发了客服消息用户也可能接不到。除了上面…

重磅发布!微软推出首款 ChatGPT 版搜索引擎!

机器之心报道 机器之心编辑部 从现在起,比 ChatGPT 更强大的语言模型直接进入了你的浏览器。 一夜之间,全球最大的科技公司仿佛都回到了自己年轻时的样子。 在谷歌宣布「实验性对话式人工智能服务」Bard 之后仅 24 小时,北京时间 2 月 8 日凌…

Prompt 编写模式:如何将思维框架赋予机器,以设计模式的形式来思考 prompt

作者 | 黄峰达 责编 | 王子彧 出品 | Phodal(ID:phodal) 如何理解 Prompt ? prompt 通常指的是一个输入的文本段落或短语,作为生成模型输出的起点或引导。prompt 可以是一个问题、一段文字描述、一段对话或任何形式…

GPT-4刚刚接入Office全家桶!微软:重新发明生产力!

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【计算机视觉】微信技术交流群 梦晨 丰色 发自 凹非寺转载自:量子位(QbitAI) 一觉醒来,工作的方式被彻底改变。 微软把AI神器G…

万字干货!ChatGPT 从零完全上手实操指南!【一】

ChatGPT 的横空出世,让很多人焦虑不已,不过,你完全不需要为此焦虑,因为比 AI 更强大永远是驾驭 AI 为自己所用的人类。 而且 GPT 远没有各大商家炒作的那么玄乎,它应用逻辑也非常简单,你完全没必要为此去花…

ChatGPT给总统写演讲稿,骗过现场2万听众

丰色 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT的火,已经蔓延到总统级别的人物身上了—— 就在这两天,以色列总统使用ChatGPT生成的内容,在一场技术会议上公开发表了一段致辞。 现场一共约2万名听众,一开始都被“蒙在鼓里”&…

GPT-4 终问世!旧王已死,新王当立!面对AI,人类真的准备好了吗?

GPT-4 终问世!旧王已死,新王当立!面对AI,人类真的准备好了吗? 摊主一大早醒来,就看见 GPT-4 发布的消息,不得不感慨今年 AI 更新的速度真是太快了。🚀 摊主昨天还在修改、润色自己一…

linux:用户修改密码方法

今天终于拿到心心念念的服务器账号了,拿到密码的同时被告知需要改密码,输入passwd后,得到如下结果: passwd: Authentication token manipulation error 按照搜到的方法,做出如下解决: 一、首先lsattr /etc…

Ubuntu 修改用户密码方法详解

修改个人密码&#xff1a; 方法1: 在终端运行 usrnameusrname-laptoppasswd:~$passwd usrname 改变口令为 usrname。 &#xff08;当前&#xff09;UNIX 口令&#xff1a;<输入现在的密码> 输入新的 UNIX 口令&#xff1a; <输入新密码> 重新输入新的 UNIX 口…

postgresql修改密码

前言&#xff1a; PostgreSQL使用存储在数据库数据目录中的pg_hba.conf配置文件来控制客户端的连接认证参数。 -将该值设置为“trust”意味着您可以以postgres的身份登录&#xff0c;而无需输入密码。 -将值设置为“md5”的默认值意味着您应使用密码以postgres身份登录 步骤&…

如何在 Linux 中使用 Chage 命令,修改Linux系统用户密码更改策略

Chage是一个用于修改Linux系统用户密码更改策略的命令行工具。在本文中&#xff0c;我们将介绍如何在Linux系统中使用Chage命令。 检查用户密码过期信息 使用Chage命令可以检查用户密码更改策略和过期信息。要检查特定用户的密码过期信息&#xff0c;可以使用以下命令&#x…

PostgreSQL 修改用户密码

以postgres用户执行psql连接数据库&#xff1a; alter user postgres with encrypted password PGsql123; 以postgres用户执行psql连接数据库&#xff1a; \password 查看PG的版本信息&#xff1a; select version(); 查看PG的系统表&#xff1a; select * from pg_tables…

用户修改密码

用户-修改密码-持久层 1.1 规划需要执行的SQL语句 用户修改密码时需要执行的SQL语句大致是&#xff1a; update t_user set password ?,modified_user?,modified_time? where uid?在执行修改密码之前&#xff0c;还应检查用户数据是否存在、并检查用户数据是否被标记为…

PostgreSQL修改用户密码

初始化数据库之后默认的密码为空&#xff0c;此时可以直接登录数据库&#xff0c;但这样很不安全&#xff0c;需要设置密码。 命令行进入数据库 psql -d postgres -U xxx 执行命令修改密码 ALTER USER 用户名 WITH PASSWORD xxx; 退出 \q 修改配置文件 进入数据库目录&…

修改密码的操作

首先我们要写一个button标签&#xff0c;通过鼠标点击这个button标签来触发修改密码的模态框。 修改密码的模态框的具体代码如下图所示&#xff1a; 展示模态框在页面的效果&#xff1a; 接下来到了JavaScript部分的代码。 下面的代码是在你使用鼠标点击button标签时执行下面的…

修改linux系统postgres用户的密码

1. 修改linux系统postgres用户的密码 PostgreSQL会创建一个默认的linux用户postgres&#xff0c;修改该用户密码的方法如下&#xff1a; 步骤一&#xff1a;删除用户postgres的密码 sudo passwd -d postgre 步骤二&#xff1a;设置用户postgres的密码 sudo -u postgres pass…

chatgpt赋能python:Python重置密码:让您的账户更加安全

Python重置密码&#xff1a;让您的账户更加安全 简介 随着互联网的发展&#xff0c;我们越来越多地使用各种不同的网站和应用程序来存储个人数据和敏感信息。随之而来的风险是&#xff0c;如果黑客获得了您的密码&#xff0c;他们可以轻松地访问您的个人资料和敏感信息。因此…

chatgpt赋能python:Python修改密码:一种安全可靠、快速高效的方式

Python 修改密码&#xff1a;一种安全可靠、快速高效的方式 在数字化时代&#xff0c;越来越多的信息被存储在计算机系统中&#xff0c;因此密码的保护变得尤为重要。人们需要保证他们的密码是安全可靠的&#xff0c;并定期更换密码。Python作为一种强大而且通用的编程语言&am…

刚刚发现微信最新骗局,切勿点开链接!

刚刚笔者手机收到一条微信消息&#xff0c;打开一看&#xff0c;说我没有进行第二次实名认证&#xff0c;我也很纳闷&#xff0c;还有第二次认证的说法&#xff1f;看到头像和名字&#xff0c;完全可以以假乱真 就在我点开链接之后&#xff0c;也确实是实名认证界面&#xff0…

揭秘骗局微投app

发个防止被骗的博文真难。服了&#xff0c;请用心看我是不是在推广。。我服了 揭秘骗局&#xff1a;微信加你拉近群里做任务&#xff0c;日赚200&#xff0c;刚开始关注微信号返钱后续微投老师带做任务&#xff01; 我不知道有些人为什么会相信这玩意&#xff01;&#xff01;…