Java-Class-Miniprogram:com.ylbtech.common.utils.miniprogram.TemplateMessage
| ylbtech-Java-Class-Miniprogram:com.ylbtech.common.utils.miniprogram.TemplateMessage |
| 1.返回顶部 |
package com.ylbtech.common.utils.miniprogram; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate; import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* 模板消息
* https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.addTemplate.html
*/
public class TemplateMessage { /**
* 组合模板并添加至帐号下的个人模板库
* @param access_token 接口调用凭证
* @param id 模板标题id,可通过接口获取,也可登录小程序后台查看获取
* @param keyword_id_list 开发者自行组合好的模板关键词列表,关键词顺序可以自由搭配(例如[3,5,4]或[4,5,3]),最多支持10个关键词组合
* @param restTemplate
* @return
*/
public static String addTemplate(String access_token, String id, List<Integer> keyword_id_list, RestTemplate restTemplate) { restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
String url = "https://api.weixin.qq.com/cgi-bin/wxopen/template/add?access_token="+access_token;
//请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
//请求体
Map<String, Object> requestParam = new HashMap<>();
requestParam.put("id", id);
requestParam.put("keyword_id_list",keyword_id_list); //封装成一个请求对象
HttpEntity entity = new HttpEntity(requestParam, headers);
//发送数据方法
ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class); //得到返回的数据body
return forEntity.getBody();
} /**
* 删除帐号下的某个模板
* @param access_token 接口调用凭证
* @param template_id 要删除的模板id
* @param restTemplate
* @return
*/
public static String deleteTemplate(String access_token, String template_id, RestTemplate restTemplate) { restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
String url = "https://api.weixin.qq.com/cgi-bin/wxopen/template/del?access_token="+access_token;
//请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
//请求体
Map<String, Object> requestParam = new HashMap<>();
requestParam.put("template_id", template_id); //封装成一个请求对象
HttpEntity entity = new HttpEntity(requestParam, headers);
//发送数据方法
ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class); //得到返回的数据body
return forEntity.getBody();
} /**
* 获取模板库某个模板标题下关键词库
* @param access_token 接口调用凭证
* @param id 模板标题id,可通过接口获取,也可登录小程序后台查看获取
* @param restTemplate
* @return
*/
public static String getTemplateLibraryById(String access_token, String id, RestTemplate restTemplate) { restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
String url = "https://api.weixin.qq.com/cgi-bin/wxopen/template/library/get?access_token="+access_token;
//请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
//请求体
Map<String, Object> requestParam = new HashMap<>();
requestParam.put("id", id); //封装成一个请求对象
HttpEntity entity = new HttpEntity(requestParam, headers);
//发送数据方法
ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class); //得到返回的数据body
return forEntity.getBody();
} /**
* 获取小程序模板库标题列表
* @param access_token 接口调用凭证
* @param offset 用于分页,表示从offset开始。从 0 开始计数
* @param count 用于分页,表示拉取count条记录。最大为 20
* @param restTemplate
* @return
*/
public static String getTemplateLibraryList(String access_token, Integer offset, Integer count, RestTemplate restTemplate) { restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
String url = "https://api.weixin.qq.com/cgi-bin/wxopen/template/library/list?access_token="+access_token;
//请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
//请求体
Map<String, Object> requestParam = new HashMap<>();
requestParam.put("offset", offset);
requestParam.put("count", count); //封装成一个请求对象
HttpEntity entity = new HttpEntity(requestParam, headers);
//发送数据方法
ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class); //得到返回的数据body
return forEntity.getBody();
} /**
* 发送模板消息
* @param access_token 接口调用凭证
* @param touser 接收者(用户)的 openid
* @param template_id 所需下发的模板消息的id
* @param form_id 表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
* @param restTemplate
* @return
*/
public static String send(String access_token,String touser, String template_id, String form_id, RestTemplate restTemplate) { restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
String url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token="+access_token;
//请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
//请求体
Map<String, Object> requestParam = new HashMap<>();
requestParam.put("touser", touser);
requestParam.put("template_id", template_id);
//requestParam.put("page", "index");
requestParam.put("form_id", form_id);
//requestParam.put("data", "");
//requestParam.put("emphasis_keyword", ""); //封装成一个请求对象
HttpEntity entity = new HttpEntity(requestParam, headers);
//发送数据方法
ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class); //得到返回的数据body
return forEntity.getBody();
}
}
| 2.返回顶部 |
| 3.返回顶部 |
| 4.返回顶部 |
| 5.返回顶部 |
| 6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
Java-Class-Miniprogram:com.ylbtech.common.utils.miniprogram.TemplateMessage的更多相关文章
- Java-Class-Miniprogram:com.common.utils.miniprogram.Auth
ylbtech-Java-Class-miniprogram:com.common.utils.miniprogram.Auth 1.返回顶部 1.1. package com.ylbtech.com ...
- 启动服务报错:nested exception is java.lang.NoSuchMethodError: org.apache.cxf.common.jaxb.JAXBUtils.closeUnmarshaller(Ljavax/xml/bind/Unmarshaller;)V
1.启动tomcat时报错:Error creating bean with name 'payInfService': Invocation of init method failed; neste ...
- Java-Class-C:com.ylbtech.api.platfrom.util.RedisUtils.class
ylbtech-Java-Class-C:com.ylbtech.api.platfrom.util.RedisUtils.class 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶 ...
- Java虚拟机9:Java类加载机制
前言 我们知道我们写的程序经过编译后成为了.class文件,.class文件中描述了类的各种信息,最终都需要加载到虚拟机之后才能运行和使用.而虚拟机如何加载这些.class文件?.class文件的信息 ...
- Caused by: java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.MetadataPro
1.错误描述 信息: MLog clients using java 1.4+ standard logging. 2014-7-12 19:29:20 com.mchange.v2.c3p0.C3P ...
- Java虚拟机13:Java类加载机制
前言 我们知道我们写的程序经过编译后成为了.class文件,.class文件中描述了类的各种信息,最终都需要加载到虚拟机之后才能运行和使用.而虚拟机如何加载这些.class文件?.class文件的信息 ...
- Java日期类:Date和Calendar的使用
总是使用这两个类,总是需要百度.还不如一次全部整理完. 一.介绍: Date 类 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年 ...
- Java进阶学习:将文件上传到七牛云中
Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...
- 基于JavaMail的Java邮件发送:复杂邮件发送
参考:http://blog.csdn.net/xietansheng/article/details/51722660package com.bfd.ftp.utils;import java.ut ...
随机推荐
- 我的CSDN博客停止更新通告
我的CSDN博客停止更新通告 自从2001年在CSDN发表第一篇博客開始,至今天(2014年6月11日)为止,算起来我己经在CSDN博客上"呆"了13年.共发表251篇原创文章,有 ...
- UVA 10555 - Dead Fraction(数论+无限循环小数)
UVA 10555 - Dead Fraction 题目链接 题意:给定一个循环小数,不确定循环节,求出该小数用分数表示,而且分母最小的情况 思路:推个小公式 一个小数0.aaaaabbb... 表示 ...
- willRotateToInterfaceOrientation 屏幕旋转
/* 1.屏幕发生旋转后, 这个旋转事件会先传递给window的rootViewController(窗口的根控制器) 2.rootViewController又会将这个旋转事件传递给它的子控制器 * ...
- SQL经典面试题集锦
1.问题背景 (1)学生表(学号,姓名,年龄,性别) student(S#,Sname,Sage,Ssex) (2)课程表(课程编号,课程名称,教师编号) course(C#,Cname,T#) (3 ...
- scanner使用中遇见的问题
近期在学习的过程中遇见一个问题,问题不难但还是须要去认真对待. 先看看我写的源码 public static void main(String[] args){ for(;;){ Scanner in ...
- Mysql 存储引擎中InnoDB与MyISAM差别(网络整理)
1. 事务处理 innodb 支持事务功能,myisam 不支持. Myisam 的运行速度更快,性能更好. 2,select ,update ,insert ,delete 操作 MyISAM:假设 ...
- 用NuGet安装NewtonSoft.json
因为要在C#里读取JSON字符串,资料查来查去,发现只能用第三方的NewtonSoft.json.本来.net也有自带的类库可以处理json,但TM的不停要你将JSON读进类对象里面.我靠,我只不过想 ...
- 加logo
import cv2 import numpy as np # f0,f1='feiyong.jpg','g3logo.jpg' # # #f1,f0='feiyong.jpg','g3logo.jp ...
- 分析智能卡的ATR格式【转】
本文转载自:http://blog.csdn.net/michaelcao1980/article/details/8215135 一些例子 NXP 080=========3b f8 T0 Y1 = ...
- 【转】webview的几个问题
我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题.就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来.有些是老生常谈,有些则是个人摸索得出解决方 ...
