在我们购买商品或其他操作的时候,这时候微信公众号会推送相关模版消息。接下来简单介绍开发流程:(本文以订单推送为例)

测试号新建模版消息

格式如下:

{{first.DATA}}
用户名:{{keyword1.DATA}}
订单号:{{keyword2.DATA}}
订单金额:{{keyword3.DATA}}
商品信息:{{keyword4.DATA}}
{{remark.DATA}

:这里会生成一个模版ID,后面会用到

订单完成模版消息数据

@Data
public class OrderData {private DataInfo first;private DataInfo keyword1;private DataInfo keyword2;private DataInfo keyword3;private DataInfo keyword4;private DataInfo remark;public OrderData(DataInfo first, DataInfo keyword1, DataInfo keyword2, DataInfo keyword3,
DataInfo keyword4, DataInfo remark) {this.first = first;this.keyword1 = keyword1;this.keyword2 = keyword2;this.keyword3 = keyword3;this.keyword4 = keyword4;this.remark = remark;}public OrderData(DataInfo first, DataInfo keyword1, DataInfo keyword2, DataInfo remark) {this.first = first;this.keyword1 = keyword1;this.keyword2 = keyword2;this.remark = remark;}
}

模版消息

@Data
public class TemplateMessage {private String touser;private String template_id;private String url;private Miniprogram miniprogram;
}

订单模版消息

@Data
public class OrderTemplateMessage extends TemplateMessage {private OrderData data;}
@Data
public class DataInfo {private String value;private String color;
}

订单完成模版消息

public void sendOrderTemplateMessage(Order order) {AugeWechatUser wechatUser = augeWechatUserMapper.selectByPhone(order.getPhone());String goodsInfo = "";for (AugeSaleItem augeSaleItem : order.getData()) {goodsInfo += augeSaleItem.getItemName() + "×" + augeSaleItem.getItemNum() + "\n\t\t\t";}DataInfo first = new DataInfo("恭喜你购买成功!", "#ff0000");DataInfo keyword1 = new DataInfo(wechatUser.getNickName(), "#ff0000");DataInfo keyword2 = new DataInfo(order.getOrderNumber(), "#ff0000");DataInfo keyword3 = new DataInfo("¥" + order.getSumPrice() + "元", "#ff0000");DataInfo keyword4 = new DataInfo(goodsInfo, "#ff0000");DataInfo remark = new DataInfo("欢迎再次购买!", "#000000");OrderData orderData = new OrderData(first, keyword1, keyword2, keyword3, keyword4, remark);OrderTemplateMessage templateMessage = new OrderTemplateMessage();templateMessage.setTouser(wechatUser.getId());templateMessage.setTemplate_id(orderTemplateId);//模版IDtemplateMessage.setData(orderData);OkHttpUtil.getInstance().doPost(WechatConstant.getTemplateUrl(wechatAccessTokenService.takeAccessToken()),
JSON.toJSONString(templateMessage));
}

OkHttpUtil

OkHttp是一个第三方类库,用于Android中请求网络。

public String doPost(String url, String param) {MediaType JSON = MediaType.parse("application/json; charset=utf-8");RequestBody body = RequestBody.create(JSON, param);Request request = new Request.Builder().url(url).post(body).build();Call call = okHttpClient.newCall(request);try {Response response = call.execute();return response.body().string();} catch (IOException e) {e.printStackTrace();}return null;}

注意配置订单模版ID

@Value("#{setting.ordertemplateid}")
private String orderTemplateId;

微信公众号发送模版消息相关推荐

  1. 微信公众号发送模版消息详细过程

    前置条件,具有模版消息权限的公众号(可以直接用测试号),rest测试工具(windows推荐使用火狐浏览器插件RestClient,会翻墙的话可以用谷歌的插件Postman好像) 如下 1.配置配置模 ...

  2. springboot微信公众号发送模板消息

    springboot微信公众号发送模板消息 1.准备工作 申请你所需要模板 配置ip白名单(你所需要部署的服务器ip) 2.编写模板消息的请求参数封装类 import java.util.HashMa ...

  3. php 微信模板消息url,【求助】php 微信公众号 发送模板消息改变不了颜色

    php 微信公众号 发送模板消息改变不了颜色 不知道为什么 1.模板消息内容: 2.发送的模板消息效果: 序列化的模板消息内容如下: 大家可以测试下,touser需要另外添加下 a:4:{s:11:& ...

  4. 微信公众号 发送模板消息和获取关注公众号人数

    微信公众号发送模板消息 1.创建模板,拿到模板ID 2.创建发送消息工具类 import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JS ...

  5. php之微信公众号发送模板消息

    讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0).先看一下效果,如图: 就是类似于这样的,下面讲一下实现过程: 第一步:微信公众号申请模板消息权限: 立即申请: 申 ...

  6. 使用微信公众号发送模板消息

    使用微信公众号 API 本文所有内容均使用微信公众号测试号平台来演示 打开公众平台的测试号管理页面后我们可以在页面中看到测试号的信息 图中的 appId 和 appSecret 就是我们需要用到的 图 ...

  7. (Java)微信公众号发送模板消息

    模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等.不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息. 1.模板消息调用时主要 ...

  8. .Net Core 3.1实现微信公众号发送模板消息,且跳转微信小程序

    .Net Core 3.1开发微信相关 背景 微信公众号和小程序关联 微信小程序获取UnionId及OpenId 微信公众号获取UnionId及OpenId 背景 公司需要将内部产品的审批放到微信小程 ...

  9. tp5微信公众号发送模板消息

    ``话不多说直接贴代码(公众号设置模板id看官方文档 ) <?php namespace app\admin\controller; use think\Controller; use thin ...

最新文章

  1. 认清自己,愉快度过每一天
  2. Kinect Win10环境配置
  3. python勾股定理_Python学习第128课——在Python中实现醉汉随机游走
  4. poj 3384 Feng Shui 半平面交
  5. Python爬虫开发:requests库的使用--https协议的问题解决
  6. C++学习笔记7[指针]
  7. C++与Java多态的区别
  8. 浅谈云计算与数据中心计算
  9. Eclipse在更换工作空间之后很多设置要重新配置
  10. Linux安装mongodb数据库最新版(全网最细)
  11. mysql防止数据查找不到_为了防止数据库崩溃使数据丢失的解决方案
  12. 模型需要对特征进行归一化吗_模型融合完全手册 - 套娃的艺术:将模型作为特征进行建模...
  13. 春节停车难?用 Python 找空车位!
  14. Java 8 中的 java.util.Optional
  15. fiddler重定向
  16. C#程序员66个编码好习惯
  17. AUTOCAD——倒角命令、圆角命令
  18. SAP供应商主数据中税号1-5的用途
  19. linux中的 bin sh,Linux-#!/bin/sh理解
  20. 分析亚马逊竞争对手Listing的技巧与操作步骤

热门文章

  1. [学习计划]QSC Q-SYS Level 1 音频处理器
  2. TensorFlow 智能移动项目:11~12
  3. AI_Papers:第一期
  4. 用来记笔记的三个 Emacs 模式
  5. 5个套路看懂小程序开发
  6. 艾德克斯充电测试软件_艾德克斯OBC/DC-DC转换器自动测试系统
  7. java 图片合并成pdf_Java中PDF的转换(图片)与展示
  8. CCC-MGARCH:常值条件相关系数模型(R+Stata)
  9. 芯片MAX3421E (MAXIM)
  10. HTML中的role属性