关于微信公众号获取token值和模板推送接口对接问题

2023-11-09

今天做了一个关于微信的接口,由于以前没有接触过关于微信的问题,现在碰到了查了很多资料,下面总结一下

1:获取token值,微信获取公众号token值需要公众号的appid和secret 这两个值是微信提供的,是不会变的
获取token值地址
String strUrl = “https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret=”+secret;
通过调用这个借口获取token值。
具体调用方法:
下面是我自己封装的调用借口

public class RpcHttpUtil {
	private static final CloseableHttpClient httpclient = HttpClients.createDefault();
	 /**
     * 发送HttpGet请求
     * @param url
     * @return
     */
    public static String sendGet(String url) {
        HttpGet httpget = new HttpGet(url);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httpget);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        String result = null;
        try {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                result = EntityUtils.toString(entity);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
    public static String sendPost(String url) {
        HttpPost httpPost = new  HttpPost(url);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httpPost);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        String result = null;
        try {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                result = EntityUtils.toString(entity);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

}

直接传入url就可以获取到token,当然微信返回值是json形式,那么我们就需要将token值取出来
具体方法 RpcHttpUtil是我封装的类名
String s = RpcHttpUtil.sendGet(strUrl);
JSONObject jsonObject = JSONObject.parseObject(s);
String access_token = jsonObject.getString(“access_token”);
System.out.println(access_token);
这样就可以取到token值了。
获取到token值我们就可以调用微信的接口了,微信官网上api写的已经很清楚了,下面是我个人的一些总结
首先我们要先创建一个模板,模板可以由微信官网创建,这里就不介绍了,每个公司都有自己的模板,如果是有模板的话直接调用模板id就可以了
调用模板推送接口,下面也是我自己封装的类:

public class TuiSongUtil {
	public static String sendTemplate(String openId,String carnum,String info,String accessToken,String date) {
		String tepUrl = "http://api.weixin.qq.com/cgi-bin/message/template/send?access_token="
				+ accessToken;
		//System.out.println("token="+accessToken);
		CloseableHttpClient httpClient = HttpClients.createDefault();
		HttpPost httpPost = new HttpPost(tepUrl);
		// 装配post请求参数
		JSONObject json = new JSONObject();
		json.put("touser", "需要推给某人的opid");
		json.put("template_id", "模板id");
		json.put("url", "需要跳转的ulr(写不写都可以)");
		JSONObject dataJson = new JSONObject();
		TemplateData first = new TemplateData();
		first.setValue("您好,您的爱车"+carnum+ "今日限行");
		first.setColor("#173177");
		dataJson.put("first",first);
		TemplateData keyword1 = new TemplateData();
		keyword1.setValue(info);
		keyword1.setColor("#173177");
		dataJson.put("keyword1",keyword1);
		TemplateData keyword2 = new TemplateData();
		keyword2.setValue(date);
		keyword2.setColor("#173177");
		dataJson.put("keyword2",keyword2);
		TemplateData keyword3 = new TemplateData();
		keyword3.setValue("07:00~19:00");
		keyword3.setColor("#173177");
		dataJson.put("keyword3",keyword3);
		TemplateData keyword4 = new TemplateData();
		keyword4.setValue("请合理安排驾车出行。");
		keyword4.setColor("#173177");
		dataJson.put("keyword4",keyword4);
		TemplateData remark = new TemplateData();
		remark.setValue("提供的数据不能作为您出行的依据,请谨慎参考。");
		remark.setColor("#FF0000");
		dataJson.put("remark",remark);
		net.sf.json.JSONObject json_test = net.sf.json.JSONObject.fromObject(dataJson);
		json.put("data", dataJson);
		String resultStr = "发送失败";
		try {
			StringEntity myEntity = new StringEntity(json.toJSONString(), ContentType.APPLICATION_JSON);

			// 设置post求情参数
			httpPost.setEntity(myEntity);
			HttpResponse httpResponse = httpClient.execute(httpPost);
			System.out.println(httpResponse.getStatusLine().getStatusCode());
			if (httpResponse.getStatusLine().getStatusCode() == 200) {
				// 发送成功
				String resutlEntity = EntityUtils.toString(httpResponse.getEntity());
				System.out.println(resutlEntity);
				return resultStr;
			} else {
				// 发送失败
				return resultStr;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (httpClient != null) {
					// 释放资源
					httpClient.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return resultStr;
	}
}

下面是创建的实体类

  public class TemplateData {
    	private String value;
    	private String color;
    	public String getValue() {
    		return value;
    	}
    	public void setValue(String value) {
    		this.value = value;
    	}
    	public String getColor() {
    		return color;
    	}
    	public void setColor(String color) {
    		this.color = color;
    	}
    	
    }

这样模板推送就完成了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于微信公众号获取token值和模板推送接口对接问题 的相关文章

  • 微信小程序从A小程序跳转至B小程序内wx.navigateToMiniProgram

    多个小程序多个主体之间相互跳转wx navigateToMiniProgram 代码在最后 参数说明 属性 类型 必填 说明 appId string 否 要打开的小程序 appId path string 否 打开的页面路径 如果为空则打
  • 基于新浪云服务器的微信公众号

    基于新浪云服务器的微信公众号 本微信公众号是智能浴室排雾及浴室滑倒报警系统的一个分支 通过设备上传到ONENET云平台 新浪云服务器调用云平台数据再反馈给微信公众号 从而实现微信公众号实时获取设备数据和发送报警信息给指定用户 因为只是代码放
  • 微信公众号开发中遇到的问题——支付(二)

    第一次开发微信公众号 也是第一次接触微信公众号的支付 我使用的是jssdk 用h5页面调用的支付 后台使用的是java 首先声明 我不是一个愤世嫉俗的人 也不喜欢吐槽 我认为别人提供接口就已经很不错了 干嘛要吐槽呢 但是 这一次 我不得不说
  • 微信公众号+Vue+JS-SDK配置注册失败,显示config:fail,Error: 系统错误,错误码:63002,invalid signature等解决方法

    用vue做微信公众号调用js sdk遇到的问题 问题1 JS SDK在IOS中报签名无效invalid signature 解决办法 在VUE路由进去你要操作的页面时进行config接口注入 首先打开工程文件中的router index j
  • 微信公众号 Jssdk调用错误码:63002, 获取access_token错误代码 errcode 40164的解决方法,如何解决,微信公众号的坑。

    今晚在开发公众号 需要调用到 Jssdk 结果配置好了 一运行就提示 Errmsg config fail Error 系统错误 错误码 63002 invalid signature 20200108 00 04 41 我的心突然就好慌
  • H5清理微信缓存的方案

    背景 H5移动端开发 尤其是基于微信的公号开发 往往伴随着很严重的缓存问题 影响测试和开发人员的感情 为了解决这个问题 找到以下清除缓存的方式 希望对增进开发和测试人员的感情有所作用 方案 安卓端清除缓存的方法如下 http debugx5
  • 微信小程序(十)之消息推送配置(token验证失败的解决方案)

    背景 微信小程序开发 准备使用模板消息做些事情 但是发现需要先在微信公众平台的开发 开发设置 消息推送做配置 然后我们后台人员就开始各种配置 但是一到验证token就报错 很是郁闷 然后各种排查 发现了最终原因 过程和代码如下 很多网站给出
  • H5页面跳转到微信公众号首页

    H5页面跳转到微信公众号首页 1 需求背景 微信公众号 客户端 网页需要用户关注才能进行活动 因此需要引流到公众号进行关注操作 在多篇文章无法找到关键的一个解决点 主要是在阐述如何复制公众号首页的链接 2 具体实现 首先 找到公众号的一个首
  • 完美解决移动端滚屏问题

    背景 移动端开发有弹出框时 下面页面还是可以滚动 本身也不是问题 但是有时候需要弹框出现 底部禁止滚动 如果需要 以下代码可以帮你实现效果 在需要弹窗的代码里 调用stopBodyScroll true 在关闭弹窗代码里 调用stopBod
  • 微信消息订阅功能开发流程

    一 可实现订阅消息推送 1 服务号 a 创建服务号类型的公众号并进行认证 认证的流程 补充公司营业执照相关信息 公司对公账号打款 三方电话认证等 以及300元认证费 b 申请模板消息功能 c 添加消息模板 d 添加模板消息发送接口 1 获取
  • php THINKPHP5获取微信公众号access_token并存储

    需求背景 在TP5项目中 获取微信的access token并存储到Redis 并可以通过Redis查询access token 第一步 创建一个获取access token的方法 该方法需要向微信服务器发送请求 获取access toke
  • 关于微信公众号获取token值和模板推送接口对接问题

    今天做了一个关于微信的接口 由于以前没有接触过关于微信的问题 现在碰到了查了很多资料 下面总结一下 1 获取token值 微信获取公众号token值需要公众号的appid和secret 这两个值是微信提供的 是不会变的 获取token值地址
  • 微信公众号群发接口和原创校验

    一 说明 1 1限制 二 群发图文消息 三 群发图片 文本 四 群发时使用is to all 五 上传图文消息接口 5 1 上传图文消息内的图片获取URL 订阅号与服务号认证后均可用 5 2 上传图文消息素材 订阅号与服务号认证后均可用 六
  • vue中实现微信公众号支付

    最近做项目遇到微信支付 根据项目需求使用了微信h5支付 大概的流程介绍 1 配置微信公众号 2 静默授权 获取路径中code 3 根据code拿到openid 4 根据openid获取prepay id 5 获取支付签名 6 调起支付功能
  • 微信公众号实现“一键关注”功能

    背景 之前用的一键关注要么通过图文 要么通过二维码 这样甚是麻烦 而且引导不到位 而看到朋友圈打广告的一些公众号可以直接关注 于是一直研究这个功能 今天终于实现了 分享给所有朋友 希望能帮助到所有朋友 这个引导关注的页面包含了公众号的log
  • java判断微信号是否关注微信公众号

    public CommonResult validateAttentionWxPublic String openId throws Exception CommonResult cr new CommonResult String acc
  • 调用微信内置 wx.config 配置问题

    var link location href ajax url WxJSSDK WxJS SDK aspx GetInfoMation 后台给你提供的接口 type Post data url link async false conten
  • 公众号H5开发如何在本地调试

    1 设置本地hosts的地址映射 如blog test com映射127 0 0 1 方法 修改hosts的地址映射 使域名解析到指定IP 2 配置公众号网页授权获取用户基本信息 3 修改vue配置 vue cli3创建的项目 在项目根目录
  • php请求api接口获取公众号基本信息,使用appid,appsecret获取微信公众号基本信息

    使用access token微信公众平台提供的 获取公众号基本信息 接口 来获取公众号的基本信息 首先通过appID和appsecret获取access token 然后使用access token调用获取公众号基本信息的API
  • 微信公众号AI爆文项目入门

    今日 尝试了进行AI爆文的项目 其核心逻辑是不依赖于传统的打造个人IP 而是使用ChatGPT 文心一言等大语言模型进行创作 并发表到微信公众号平台 实现低粉爆文的效果 通过系统流量池的推荐来实现收益 一篇10W 的文章的收益在800到几千

随机推荐

  • 使用Python,OpenCV和Hough圆检测图像中的圆

    使用Python OpenCV和Hough圆检测图像中的圆 1 效果图 2 cv2 HoughCircles image method dp minDist 3 源码 参考 前几篇博客中有介绍 使用OpenCV检测图形中的三角形 正方形 矩
  • Oracle sys_guid()函数

    简介 SYS GUID 是Oracle 8i 后提供的函数 产生并返回一个全球唯一的标识符 类似于Java的UUID 使用方法 select sys guid from dual 运行效果 解决乱码 select RAWTOHEX sys
  • JAVA介绍

    1 Java的简单介绍 Java作为C语言和C 的衍生物 其有很多的功能与C语言及C 的功能相似 但是又不同与C语言及C 在Java的领域中 其相对于C语言及C 所具有的特征为没有指针 没有内存管理 具有真正的可移植性 及可以跨平台进行创作
  • 走进音视频的世界——RGB与YUV格式

    在图像的世界里 一般使用RGB作为存储格式 而在视频的世界里 一般使用YUV作为压缩存储格式 有时候面试官会问 为什么视频使用YUV来压缩存储 而不用RGB YUV与RGB有什么区别 两者如何转换的 常见的RGB格式有哪些 常见的YUV格式
  • LInux服务器巡检脚本模版

    Linux服务器巡检脚本模版可以用来定期检查服务器的状态和运行情况 以便及时发现并解决问题 下面是一个简单的巡检脚本模版供参考 bin bash 定义变量 LOG FILE var log server check log EMAIL AD
  • 标签平滑Label Smoothing

    转载 https cloud tencent com developer article 1815786 目录 One hot gt Label Smoothing label smoothing 降低feature norm 标签平滑归一
  • buuctf-[ACTF2020 新生赛]Exec(小宇特详解)

    buuctf ACTF2020 新生赛 Exec 小宇特详解 这里是ping 我首先想到了ping本地 然后用其他语句找到flag 后来看其他人的办法是进行了抓包 这里先用一个常用管道符 1 就是按位或 直接执行 后面的语句 2 逻辑或 如
  • 【漏洞复现】JDWP远程命令执行漏洞

    0x01 简介 JPDA Java Platform Debugger Architecture 即Java平台调试体系架构 Java虚拟机设计的专门的API接口供调试和监控虚拟机使用 JPDA按照抽象层次 又分为三层 分别是 JVM TI
  • IP地址和子网掩码

    本科的时候其实修过计算机网络 但是现在基本上都还给老师了 在这里重新学习一下IP地址的相关内容 1 IP地址的分类 A类 000 127 默认子网掩码 255 0 0 0 B类 128 191 默认子网掩码 255 255 0 0 C类 1
  • 在修复小型森林道路的过程中使用无人机估算土方工程量的可能性

    小规模道路施工作业 主要是土方作业 通常发生在斜坡上 需要有更多的空间进行临时土壤储存 有必要在有限的区域内反复挖掘 临时放置和填充土壤 因此 很难预测和量化进行的土方工程量 因为仅仅通过比较施工前的土壤形状和已完成地面的形状很难确定所有进
  • Ubuntu 20.04从0到跑通yolov5 v6.0

    Ubuntu 20 04 安装与卸载 一 卸载ubuntu 参考 双系统下完全卸载ubuntu 哔哩哔哩 bilibili 二 安装ubuntu 电脑配置 r7000p 3050ti 步骤 制作启动盘 win 下 磁盘管理 压缩卷 压缩多少
  • 公有云和ChatGPT关系不大

    前段时间要过年 休养身体 写长篇 所以公众号停更了两个月 本文解释了AI云为什么不会成为云厂商的重要营收途径 延伸分析了一些云产品的本质 1 流量密码不是财富密码 这两个月才突然热议ChatGPT的朋友 其实技术嗅觉有点迟钝 见识有点落伍
  • IDEA创建java项目src下没有办法创建包文件/MAVEN模块名变灰且模块多道横杠

    1 IDEA中的java项目src下无法创建包文件 原因 这是因为该项目的src文件夹不是源文件夹 解决方法 需右键该文件夹 选择标记 源根 2 MAVEN模块名变灰且模块多道横杠 原因 api项目的pom xml文件被设置在maven忽略
  • 日志框架:slf4j、log4j和logback的基本使用

    slf4j是日志框架的标准 即通用接口 实现了日志框架一些通用的api 而log4j和logback是众多日志框架中的几种 log4j和logback可以单独的使用 也可以绑定slf4j一起使用 1 单独使用时分别调用框架自己的方法来输出日
  • Multi-level Attention Networks for Visual Question Answering阅读笔记

    Multi level Attention Networks 这个模型可以同时提取高级语义信息和空间信息 模型框架如下所示 该模型分为三个部分 分别是Semantic Attention Context aware Visual Atten
  • 云计算的快速发展,未来主要的发展趋势是什么?

    1 云计算的分工将会变得更加细化 随着云计算产业生态链不断完善 行业分工逐渐细化 在未来年 云计算的分工更加细化 行业云将成为云计算领域的发展热点 2 Iaas将迎来更大的降价风潮 万物互联对云计算带来更大的需求 在行业竞争和规模效应的驱动
  • 张飞硬件第四部(二)

    文章目录 第一章 项目背景 第二章 项目条件 第三章 项目实现 第一节 涉及知识点 1 1 三级管的放大作用 1 1 1 原理 1 1 2 正反馈与负反馈 1 1 3 共模干扰与差模干扰 1 1 4 差模放大 1 1 5 运算放大器 第一章
  • ESP8266EX使用SDK开发串口调试乱码

    目录 问题如图所示 问题分析 问题解决 问题如图所示 问题分析 有输出信号 说明有数据产生 可能原因 波特率不匹配 时钟频率不对 问题解决 不断调整串口调试助手的波特率9600 115200 不管用 把ESP8266的默认波特率改为9600
  • Maven使用指南(超详细)

    Maven高级 目标 理解并实现分模块开发 能够使用聚合工程快速构建项目 能够使用继承简化项目配置 能够根据需求配置生成 开发 测试环境 并在各个环境间切换运行 了解Maven的私服 1 分模块开发 1 1 分模块开发设计 1 按照功能拆分
  • 关于微信公众号获取token值和模板推送接口对接问题

    今天做了一个关于微信的接口 由于以前没有接触过关于微信的问题 现在碰到了查了很多资料 下面总结一下 1 获取token值 微信获取公众号token值需要公众号的appid和secret 这两个值是微信提供的 是不会变的 获取token值地址