微信公众平台发送模板消息

微信公众平台模板消息发送_已经运行成功参考代码 代码如下:其中access_token 、openid和模板ID自己重新填写 立即下载

1.申请测试用的公众号

申请地址

扫描后获得appid和secret

2.获取access_token

https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

3.获取用户openid(关注公众号的用户对应该公众号唯一id)

http请求方式: GET(请使用https协议)
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID

4.发送模板消息

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

 参数格式

{
           "touser":"OPENID",
           "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
           "url":"http://weixin.qq.com/download",            
           "data":{
                   "first": {
                       "value":"恭喜你购买成功!",
                       "color":"#173177"
                   }
           }
       }

5完整代码

流程:获取token -> 获取所有用户openid ->遍历openid 发送模板消息

package wxtemp;

import java.io.IOException;
import java.util.Date;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class test {

	static String secret = "xxxxxxxxx";
	static String appid = "xxxxxxxx";
	static String tokenurl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}";
	static String userlisturl = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=${token}";
	static String sendtempurl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=${token}";
	static String userinfourl = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=${token}&openid=${openid}&lang=zh_CN";
	static String tempid = "xxxxxxx";

	public static void main(String args[]) {

		// String entityJson=JSONObject.fromObject(a).toString();
		testwxtemp();
	}

	public static String createJson(String openid, String tempid, String namestr) {

		JSONObject jo = new JSONObject();
		jo.put("touser", openid);
		jo.put("template_id", tempid);
		jo.put("url", "http://baidu.com");
		JSONObject data = new JSONObject();

		JSONObject name = new JSONObject();
		name.put("value", namestr);
		name.put("color", "#173177");

		JSONObject time = new JSONObject();
		time.put("value", new Date().toString());
		time.put("color", "#173177");

		data.put("name", name);
		data.put("time", time);

		jo.put("data", data);

		return jo.toString();
	}

	public static void testwxtemp() {

		String token = getToken();

		JSONArray openids = getOpenids(token);

		for (int i = 0; i < openids.size(); i++) {
			System.out.println(openids.get(i));

			String openid = openids.getString(i);

			String tempjsonstr = test.createJson(openid, tempid, test.getName(token, openid));

			System.out.println("==========>" + post(sendtempurl.replace("${token}", token), tempjsonstr));
		}
	}

	public static String getName(String token, String openid) {

		String jsonstr = get(userinfourl.replace("${token}", token).replace("${openid}", openid));
		JSONObject obj = JSONObject.fromObject(jsonstr);
		return obj.getString("nickname");
	}

	public static String getToken() {
		String jsonstr = get(tokenurl.replace("${appid}", appid).replace("${secret}", secret));
		JSONObject obj = JSONObject.fromObject(jsonstr);
		return obj.getString("access_token");
	}

	public static JSONArray getOpenids(String token) {
		String usrlistjson = get(userlisturl.replace("${token}", token));
		System.out.println(usrlistjson);
		JSONObject usrjo = JSONObject.fromObject(usrlistjson);
		JSONObject data = usrjo.getJSONObject("data");
		JSONArray openids = data.getJSONArray("openid");
		return openids;
	}

	public static String get(String url) {
		CloseableHttpClient httpclient = HttpClients.createDefault();
		HttpGet getMethod = new HttpGet(url);
		HttpResponse response;
		try {
			response = httpclient.execute(getMethod);
			return EntityUtils.toString(response.getEntity());
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	public static String post(String url, String entityJson) {
		HttpPost httpost = new HttpPost(url); // 设置响应头信息
		httpost.addHeader("Content-Type", "application/json; charset=UTF-8");
		RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(3000).setConnectTimeout(3000).build();// 设置请求和传输超时时间
		httpost.setConfig(requestConfig);
		httpost.setEntity(new StringEntity(entityJson, "UTF-8"));
		String returnStr = null;
		try {
			HttpResponse response = HttpClientBuilder.create().build().execute(httpost);
			returnStr = EntityUtils.toString(response.getEntity(), "utf-8");

		} catch (Exception e) {
		} finally {
			httpost.releaseConnection();
		}
		return returnStr;
	}
}

 

微信公众平台模板 微网页模板 有感兴趣的朋友可以下载 立即下载

相关推荐

微信消息通知,给微信公众号用户发送消息通知

微信消息通知,给微信公众号用户发送消息通知 本程序用laravel框架,使用的时候请根据自己的目录结构自行修改命名空间和类名继承等信息

微信订阅号发送模板消息

参考的链接: 微信公众平台测试号——模板消息发送Demo_a816120的博客-优快云博客 开放接口 | 微信开放文档 微信公众平台 功能一:代码实现发送微信公众平台配置的模板消息 1、事先获取好appID和appsecret 2、书写发送的工具类 package com.talk915.common.templateMsg; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alib

CongBird的博客 5450

Jetpack Compose Navigation实战:从基础到高级导航模式

本文全面解析Jetpack Compose Navigation在Android开发中的应用,从基础导航实现到高级模式(如单任务/单顶模式),涵盖参数传递、嵌套导航、深层链接等核心功能。通过实战代码示例展示如何优化导航性能,并与ViewModel、Hilt等架构组件整合,为开发者提供高效的Compose导航解决方案。

pz890123456的博客 372

微信公众号消息模板开通方式+功能使用技巧大全

已开通模板消息的服务号在公众平台“功能”菜单栏里可直接看到“模板消息”选项,点击后即可进入模板消息界面。公众号运营者首先需要选择帐号服务所处的两个行业,进而点击“+从模板库中添加”按钮即可从模板库 中选择这两个行业的模板进行服务通知。为保护用户的使用体验,目前,具有支付能力的公众号才可以使用模板消息进行服务。符合使用条件后的服务号登陆微信公众平台后都可在“功能”—“添加功能插件”选项里看到申请“模板消息”的功能入口。添加了模板消息后,进入“我的模板”即可查看模板消息详情和删除管理。

weixin_64051447的博客 5904

KUKA 虚拟调试实战——打通Simpro4.1与OfficeLite8.6的通信与实时控制链路

本文详细介绍了KUKA虚拟调试实战,重点解析如何打通Simpro4.1与OfficeLite8.6的通信与实时控制链路。通过环境搭建、权限配置、机器人型号匹配等关键步骤,帮助工程师高效完成机器人轨迹规划和PLC联锁逻辑验证,大幅降低真机调试风险。文章还提供了典型报错解决方案和实时控制优化技巧,适用于工业机器人仿真与培训场景。

weixin_30907935的博客 445

ISP模块之色彩增强算法--HSV空间Saturation通道调整

色彩增强不同于彩色图像增强,图像增强的一般处理方式为直方图均衡化等,目的是为了增强图像局部以及整体对比度。而色彩增强的目的是为了使的原有的不饱和的色彩信息变得饱和、丰富起来。对应于Photoshop里面的“色相/饱和度”调节选项里面对饱和度的操作。色彩增强的过程,并不改变原有彩色图像的颜色以及亮度信息。     在我的色彩增强算法模块里面,始终只针对色彩饱和度(Saturation)信息做研究,

松间明月 1万+

微信公众号开发-模板消息

微信公众号-模板消息(公众号给指定用户发送消息),包含调用token的获取,模版的创建,消息的发送。从零到一实现模版消息功能,实操验证可行性并实现正式环境使用。全流程图文记录。

优快云_JAVA_CC的博客 8499

Second-Order Cone Programming(SOCP) 二阶锥规划

个人博客Glooow,欢迎各位老师来踩踩 文章目录1. 二阶锥1.1 二阶锥定义1.2 二阶锥约束2. 优化问题建模3. 类似问题转化3.1 二次规划3.2 随机线性规划4. 问题求解 1. 二阶锥 1.1 二阶锥定义 在此之前,先给出二阶锥的定义。 在 kkk 维空间中二阶锥 (Second-order cone) 的定义为 Ck={[ut]∣u∈Rk−1,t∈R,∥u∥≤t} \mathc...

Glooow的博客 3万+

微信公众号发送模板消息,并且点击可以直接转到小程序。(理论篇)

微信公众号模板消息发送,点击可以打开相应的小程序。

花花鱼的专栏 3209

TikTok网页版X-bougs和_signature参数逆向实战:从断点到RPC调用的完整流程

本文详细解析了TikTok网页版X-bougs和_signature参数的逆向工程实战,从基础断点调试到高级RPC调用,完整还原加密参数的生成过程。通过工具链搭建、加密定位、核心突破及实战演练,帮助开发者深入理解TikTok的加密体系,并构建自动化签名系统。

weixin_28691003的博客 438

YOLO系列算法改进 | 主干改进篇 | 替换LSKNet主干特征提取网络 | 通过动态调整感受野自适应融合长程上下文,显著提升小目标与复杂背景下的检测精度!

YOLO系列算法改进 | 主干改进篇 | 替换LSKNet主干特征提取网络 | 通过动态调整感受野自适应融合长程上下文,显著提升小目标与复杂背景下的检测精度! (以YOLO26最新目标检测模型为基础,利用LSKNet替代Backbone)

2502_91881744的博客 211

公众号(服务号)模板消息(个人通知)开发方案

公众号是以微信用户的一个联系人形式存在的,消息会话是公众号与用户交互的基础。目前公众号内主要有这样几类消息服务的类型,分别用于不同的场景。1)群发消息:公众号可以以一定频次(订阅号为每天1次,服务号为每月4次),向用户群发消息,包括文字消息、图文消息、图片、视频、语音等。2)被动回复消息:在用户给公众号发消息后,微信服务器会将消息发到开发者预先在开发者中心设置的服务器地址(开发者需要进行消息真实性验证),公众号可以在5秒内做出回复,可以回复一个消息,也可以回复命令告诉微信服务器这条消息暂不回复。

博水之野,人杰地灵 9341

Arduino ESP8266通过 RF433数据收发实验

Arduino ESP8266通过 RF433射频模块实现数据收发实验 写这篇文章,折腾了2天,在没有成功之前,一直在摸索和采坑当中,不要问我黑暗和黎明之间有多长。开发很多时候只问结果,不问过程的,在这里分享来之不易的结果,希望后面的人不要采坑,有成功的案例先河,后面与之相关的应用开发只需要套用模板修改即可实现。 实物搭建 RF433模块 我使用的是这个:nodemcu 本案例开发所使用到的库:RadioHead:http://www.airspayce.com/mikem/

perseverance51博客 3808

微信公众平台 发送模板消息

前言:最近一直再弄微信扫码推送图文消息和模板消息发送,感觉学习到了不少东西。今天先总结一下微信公众平台模板消息的发送。因为这个自己弄了很久,开始很多地方不明白,所以今天好好总结一下。微信公众平台技术文档:模板消息接口一、概述模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。关

小小布的程序世界 2万+

在 MATLAB/Simulink 中构建一个卫星间激光通信链路的完整仿真系统

摘要: 本文通过Simulink详细演示了卫星间激光通信系统的建模过程,重点分析其在10Gbps高速率、2000km距离下的性能。系统设计涵盖PAM-4调制、自由空间信道建模(路径损耗、指向误差、多普勒效应)、APD探测及链路预算计算,并给出典型场景下18.5dB SNR、1e-9误码率的仿真结果。针对激光通信的μrad级指向精度挑战,提出AI辅助跟踪、混合RF/激光等优化策略,为未来太空高速组网提供可扩展的仿真框架。所需工具箱包括Communications Toolbox和Aerospace Toolb

xiaoheshang_123的博客 381

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java微信公众平台开发之发送模板消息

模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。对于一般的服务号而言,模板ID行业之类会事先配置好,所以用代码控制的只有发送了。 准备工作:已通过认证的服务号或者测试公众号 一、使用规则 所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口 需...

Phil Jing 3万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java发送微信模板消息_java微信公众平台之发送模板消息

准备条件:1.一个测试号,有必要说下的是订阅号没有发送模板消息这一功能,那么开发的小伙伴们就可以直接先注册一个测试号2。目前我并没有就是做的很完善,网页授权获取openId这个我没做,那么我是直接将微信公众平台的关注的人保存在我的表中的,从中去拿。后面会继续完善的开始步骤:1.在测试号网页上拿到书友关注公众号的人员信息,将其保存在数据库中,注意:每个人的openid是不会变的2.事先在公众号中定义...

weixin_34304211的博客 536

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

微信公众平台开发-发送模板消息

微信公众账号开发-发送模板消息:   内容概要 本篇文章主要叙述如何在微信公众帐号上实现“发送模板消息开发”功能。包含json的封装与解析。   何谓模板消息 为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板ID向用户主动推送提醒、通知消息。   注意:模板

谭倩倩 4149

【微信公众平台开发】发送模板消息

最近在搞微信公众平台开发,需求是发送模板消息,相关的接口在开发者文档中有很详细的说明,https://mp.weixin.qq.com/wiki?t=resource/res_main&amp;id=mp1433751277。 下面我们来看看具体怎么实现自己的需求: 一、点击以上链接,我们看到有7个接口,我们要用的就是第六个,发送模板消息,其他接口可根据自己业务需求来实现。 二、发送模板消息接口...

海棠不惜胭脂色,独立蒙蒙细雨中 1073

微信公众号怎么发送模板消息 微信公众平台模板消息免费发送的技巧

想要发免费的模板消息,该怎么发布?下面我们就来看看详细的教程。 1、首先我们需要在微信公众号里面开通模板消息功能,没有开通的需要去申请,不然就用不了,如下图所示。 微信公众号怎么发送模板消息?微信公众平台模板消息免费发送的技巧 2、开通之后我们在模板库里面找到需要的模板,然后添加,并且复制模板编号,如下图所示。 微信公众号怎么发送模板消息?微信公众平台模板消息免费发送的技巧 微信公众号怎么发送模板消息?微信公众平台模板消息免费发送的技巧 3、接着我们在公众号登入入口,然后授权登入公众号,如下图所示。 微信公

yisago的博客 2216

微信公众平台测试号——模板消息发送Demo

开发微信公众号的时候,我们经常会使用微信公众平台的测试号来进行调试,因为测试号的可用接口比较全,不然只有经过认证的服务号才可以调用比较高级的接口。 从开始搞一个微信公众平台测试号开始。 打开微信公众平台,注册登录什么的就不说了,一个微信号只能绑定一个测试账号。 之后进入页面会看到有一个接口配置信息修改, 里面的URL需要填写一个80端口的公网地址,下面的token自己随便填,填完记住,后面要用。 如果手头没有服务器或没有可用的公网地址和端口,可以参考前面写的博文使自己的本地开发环境映射出一个可用的公网地址然

a816120的博客 1万+

微信公众平台开发-消息管理-发送模板消息

一.模板说明         模板消息是在特定服务场景中向粉丝发送的消息,例如:信用卡刷卡通知,商品购买成功通知.不同的模板有不同的风格,某些字段可以由你来填充自己的内容(同时设定颜色),从而形成自己的消息.微信公众号中,可以替换的字段的格式为"{{.DATA}}".例如,以下模板中: 只需将红色的{{first.DATA}替换成"恭喜你购买成功!",将{{orderMon

扯文艺的猿的博客 1万+

公众号 接收规则 消息_微信公众平台 发送模板消息(Java接口开发)

前言:最近一直再弄微信扫码推送图文消息和模板消息发送,感觉学习到了不少东西。今天先总结一下微信公众平台模板消息的发送。因为这个自己弄了很久,开始很多地方不明白,所以今天好好总结一下。微信公众平台技术文档:模板消息接口一、概述模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。...

weixin_39960019的博客 576
上一篇: beetl layout 和 include 的用法
下一篇: H5 获取定位信息
knife1220
博客等级 码龄15年 33粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值