java--微信小程序发送模板消息

简介: java--微信小程序发送模板消息
String appId = ""//小程序appId
String appSecret = "" //小程序秘钥
String url = "https://api.weixin.qq.com/cgi-bin/token?appid="+appId+"&secret="+appSecret+"&grant_type=client_credential"
RestTemplate restTemplate = new RestTemplate()
ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, String.class)
logger.info("responseEntity授权获取accessToken:"+responseEntity)
if(responseEntity != null && responseEntity.getStatusCode() == HttpStatus.OK){
   String sessionData = responseEntity.getBody()
   logger.info("sessionData = "+ sessionData)
   JSONObject jsonObj = JSON.parseObject(sessionData)
   String accessToken = jsonObj.getString("access_token")
//发送模板消息 到小程序进行数据封装
WxTemplate template = new WxTemplate()
template.touser = ""
 
Map<String,TemplateData> data = new HashMap<String,TemplateData>()
TemplateData  keyword1 = new TemplateData()
keyword1.value = ""
 
TemplateData  keyword2 = new TemplateData()
keyword2.value = ""
 
TemplateData  keyword3 = new TemplateData()
keyword3.value = ""
 
TemplateData  keyword4 = new TemplateData()
keyword4.value = ""
 
data.put("keyword1",keyword1)
data.put("keyword2",keyword2)
data.put("keyword3",keyword3)
data.put("keyword4",keyword4)
template.data = data
 
String json =  JSONObject.toJSONString(template)
logger.info("订单发送通知模板消息JSON数据:"+JsonUtils.toJson(template))
 
String ret = HttpClientUtil.sendPost(SEND_TEMPLATE_MESSAGE+accessToken, json)
MessageRes res = getObject(ret,MessageRes)
if("ok".equals(res.errmsg)){//发送成功
    //业务逻辑处理
}
logger.info("订单发送通知模板消息返回res:"+JSON.parseObject(ret))
}
WxTemplate 类:
class WxTemplate {
 
     String template_id;
 
     String touser;
 
     String form_id;//请自行添加上set,get方法
 
     String page;     
 
     Map<String,TemplateData> data;
   
}
TemplateData 类:
class TemplateData {
 
     String value;
     String color
 
}
/**
 * 字符串转对象
 * @param pojo
 * @param tclass
 * @return
 */
public static <T> T getObject(String pojo, Class<T> tclass) {
    try {
        return JSONObject.parseObject(pojo, tclass);
    } catch (Exception e) {
        e.printStackTrace()
    }
    return null;
}
MessageRes 类:
class MessageRes implements  Serializable{
 
    Integer errcode
 
    String errmsg
 
    String template_id
}
 
/**
 * 发送post请求 json格式
 * @param url
 * @param param
 * @return
 */
    public static String sendPost(String url, String param) {
        PrintWriter out = null;
        BufferedReader ins = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性
            conn.setRequestProperty("Accept", "text/html");
            conn.setRequestProperty("Content-Type", "text/html");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            // 发送请求参数
            out.print(param);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            ins = new BufferedReader(
                    new InputStreamReader(conn.getInputStream(), "utf-8"));
            String line;
            while ((line = ins.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!" + e);
            e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (ins != null) {
                    ins.close();
                }
            }
            catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }
目录
相关文章
|
13天前
|
缓存 移动开发 小程序
uni-vue3-wetrip自创跨三端(H5+小程序+App)酒店预订app系统模板
vue3-uni-wetrip原创基于vite5+vue3+uniapp+pinia2+uni-ui等技术开发的仿去哪儿/携程预约酒店客房app系统。实现首页酒店展示、预订搜索、列表/详情、订单、聊天消息、我的等模块。支持编译H5+小程序+App端。
50 8
|
1月前
|
小程序 前端开发 算法
|
1月前
|
Java API 开发者
Java如何实现企业微信审批流程
大家好,我是V哥。本文分享如何在企业微信中实现审批流程,通过调用企业微信的开放API完成。主要内容包括获取Access Token、创建审批模板、发起审批流程和查询审批结果。提供了一个Java示例代码,帮助开发者快速上手。希望对你有帮助,关注V哥爱编程,编码路上同行。
|
2月前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
39 6
|
2月前
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
107 1
|
2月前
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
52 0
|
2月前
|
小程序 前端开发 Java
java 生成小程序二维码
java 生成小程序二维码
27 0
|
1月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
33 0
在线课堂+工具组件小程序uniapp移动端源码
|
2月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
340 3
|
2月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
57 0
微信小程序更新提醒uniapp
下一篇
DataWorks