微信公众号之模板消息跳转小程序

本文详细介绍了如何通过公众号模板消息跳转至关联小程序的具体实现方式,包括设置模板id、接收方openid、跳转路径及小程序的appid和页面路径等关键步骤。

公众号发送模板消息这里就不说了,详情可以去看我之前发的微信公众号开发之模板消息
前几天因业务需求,需要点击模板消息跳转小程序,所以在此发篇博客记录一下。
在这里插入图片描述
代码如下:

public void textTemplate(String deptExt) throws Exception {
	// 将信息封装到实体类中
	TemplateMessage temp = new TemplateMessage();
	// 设置模板id
	temp.setTemplate_id("模板消息id");
	// 设置接受方的openid
	temp.setTouser("接收方的openid");
	// 设置点击跳转的路径
	temp.setUrl("http://mp.weixin.qq.com");
	// 主要是这里, 设置小程序的appid和转发的页面
	TreeMap<String, String> miniprograms = new TreeMap<String, String>();
	miniprograms.put("appid","小程序的appid");
	miniprograms.put("pagepath","pages/index/index?temp=1");// 注意,这里是支持传参的!!!
	temp.setMiniprogram(miniprograms);
	// 设置消息内容和对应的颜色
	TreeMap<String, TreeMap<String, String>> params = new TreeMap<String, TreeMap<String, String>>();
	// 设置消息内容,具体的按照你选择的模板消息来
	params.put("first", TemplateMessage.item("1", "#173177"));
	params.put("keyword1", TemplateMessage.item(“2”, "#173177"));
	params.put("keyword2", TemplateMessage.item(“3”, "#173177"));
	params.put("keyword3", TemplateMessage.item("4", "#173177"));
	params.put("remark", TemplateMessage.item("5", "#173177"));
	temp.setData(params);
	// 将实体类转换为json格式
	JSONObject data = JSONObject.fromObject(temp);
	System.out.println(data + "");
	// 调用WeChatUtil工具类发送模板消息
	WeChatUtil.sendTemplate(data + "");
}

WeChatUtil是一个工具类,详情可以看我之前发的博客,微信公众号开发之模板消息
TemplateMessage 是一个封装模板消息的实体类。和之前的有所改变,增加了封装跳转小程序的属性。

import java.util.TreeMap;

public class TemplateMessage {
	private String touser; // 接收者openid

	private String template_id; // 模板ID

	private String url; // 模板跳转链接

	private TreeMap<String, TreeMap<String, String>> data; // data数据
	
	// 新增
	private TreeMap<String, String> miniprogram; // 跳小程序所需数据,不需跳小程序可不用传该数据
	
	/**
	 * 参数
	 * 
	 * @param value
	 * @param color
	 *            可不填
	 * @return
	 */
	public static TreeMap<String, String> item(String value, String color) {
		TreeMap<String, String> params = new TreeMap<String, String>();
		params.put("value", value);
		params.put("color", color);
		return params;
	}

	//   get / set 已省略

在这里插入图片描述
我打感叹号的地方,有箭头的即为可点击的,也就是添加了点击跳转路径的。可以跳h5页面。设置了跳转小程序所需的参数后,点击就可以进入小程序了。
注意,跳转的小程序必须是公众号关联的小程序!!!

### 设置微信公众号的通知模板并实现详情页跳转 在开发过程中,为了使用户能够点击通知模板跳转至指定的网页或小程序页面,需遵循特定的方法来配置URL参数。 #### 配置模板消息中的链接字段 当创建模板消息时,在数据部分定义`url`字段用于H5页面跳转,或者使用`miniprogram`对象提供给小程序使用的路径。对于希望用户能从接收到的消息直接访问应用内具体内容的情况,应该精心设计该链接指向的目标地址[^1]。 ```json { "touser": "OPENID", "template_id": "TEMPLATE_ID", "page": "index", // 小程序页面路径 (仅限于小程序) "form_id": "FORM_ID", "data": { ... }, "emphasis_keyword": "" } ``` 注意:上述JSON结构适用于向订阅者发送带有小程序入口的模板消息;而对于普通的Web URL,则只需设置`url`属性即可[^2]。 #### 实现具体业务逻辑 假设目标是在用户点击某条订单状态更新提醒时打开对应的订单详情页面。此时应构建一个动态生成的URL字符串作为模板消息的一部分传递出去。此URL应当携带足够的查询参数以便接收端识别具体的记录,比如订单编号等唯一标识符[^3]。 例如: ```php // 构建要发送的数据包 $data = [ 'first' => ['value' => '您的订单已发货'], 'keyword1' => ['value' => $orderNumber], 'keyword2' => ['value' => date('Y-m-d H:i:s')], 'remark' => ['value' => '点击查看详细信息'] ]; // 创建完整的URL,包含必要的查询参数 $redirectUrl = sprintf( '%s?order_number=%s', config('app.url') . '/order/detail', // 基础URL加上路由 urlencode($orderNumber) // 对可能存在的特殊字符编码处理 ); // 发送请求体组装 $messageBody = json_encode([ 'touser' => $userOpenId, 'template_id' => env('WECHAT_TEMPLATE_ORDER_SHIPPED'), 'url' => $redirectUrl, // 使用之前准备好的重定向链接 'topcolor' => '#FF0000', 'data' => $data ]); // 执行API调用来触发消息推送... ``` 这段PHP代码片段展示了如何根据实际应用场景定制化地构造模板消息的内容以及关联的目的地链接。通过这种方式,不仅可以告知用户重要事件的发生,还能引导他们采取进一步行动——即查看更详尽的信息。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值