首页/心系八方/正文
微信公众号与小程序:各自openid及打通两者的unionid机制解析

 2025年09月05日  阅读 1

摘要:微信公众号与小程序消息推送机制产品体系差异微信的公众号和小应用是微信平台上的两种不同功能,它们各自拥有独立的发布信息途径。这两种产品虽然都在微信生态内,但在运作方式和技术实现上完全独立。这种区别导致内容制作者需要分别处理公众号和小应用的发布流程。小程序推...

微信公众号与小程序消息推送机制

产品体系差异

微信的公众号和小应用是微信平台上的两种不同功能,它们各自拥有独立的发布信息途径。这两种产品虽然都在微信生态内,但在运作方式和技术实现上完全独立。这种区别导致内容制作者需要分别处理公众号和小应用的发布流程。

小程序推送限制条件

微信小程序的推送通知系统设定了非常严格的规范,只有在两种特定的场景中才允许发送,具体来说就是:

1. 微信支付完成后的回调通知

2. 用户提交表单时的反馈通知

这些限制凸显了微信对小程序的规划,旨在构建轻便应用,避免对用户造成过多打扰。

官方文档获取途径

对于开发者而言,获取相关技术文档的途径是明确的:

小程序开发文档:微信开放平台官方API文档

公众号开发文档:微信公众平台官方API文档

	官网api文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/
	1.调用接口wx.login() 获取临时登录凭证(code)会返回
	2.请求 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
	参数说明:appid 小程序唯一标识    secret 小程序的 app secret
			js_code	登录时获取的 code  grant_type	填写为 authorization_code

这些文档详细说明了各自平台的接口调用方法和参数要求。

账号体系打通方案

微信为其产品制定了一套完整的用户身份验证机制。腾讯系统中的每位用户都配备一个独特的身份标识(UnionID)。获取该标识,开发者需要满足以下条件:

1. 注册微信开放平台开发者账号

2. 在该账号下绑定相关公众号和小程序

3. 确认这些产品属于同一开发主体

	官网api文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432
	1.先获取公众号的accessToken(appid,secret填写微信公众号的,跟小程序不一样,切记)
	  https请求方式: GET
		https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
	2.获取用户的openid
	  微信公众号提供获取用户列表接口(即获取所有关注该微信公众号的用户信息)
	  请求地址https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
	  如果想获取整个用户列表的openid,next_openid=即可,即https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=
	3.获取用户基本信息  
	  接口调用请求说明
		http请求方式: GET
		https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

操作完成之后,无论通过公众号渠道还是小程序入口,所获取的用户关联编号都将一致。

跨平台消息推送实现

利用UnionID机制可以实现跨平台的消息推送:

1. 小程序触发特定事件(如支付完成)

2. 系统通过UnionID关联到公众号用户

3. 通过公众号接口发送模板消息

这个系统沟通了两个独立的业务网络,实现了针对性的信息交流,达成了用户资料的无障碍共享。

参数封装建议

http请求方式: POST 
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
	POST数据
	{
       "touser":"OPENID",
       "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
       "url":"http://weixin.qq.com/download",  
       "miniprogram":{
         "appid":"xiaochengxuappid12345",
         "pagepath":"index?foo=bar"
       },          
       "data":{
               "first": {
                   "value":"恭喜你购买成功!",
                   "color":"#173177"
               },
               "keyword1":{
                   "value":"巧克力",
                   "color":"#173177"
               },
               "keyword2": {
                   "value":"39.8元",
                   "color":"#173177"
               },
               "keyword3": {
                   "value":"2014年9月22日",
                   "color":"#173177"
               },
               "remark":{
                   "value":"欢迎再次购买!",
                   "color":"#173177"
               }
       }
   }
   这里的access_token是微信公众号的
   注意事项:
			  pagepath   不能用 / 开头 (小程序的跳转页面链接)
			  appid 使用小程序的appid  

执行期间,配置参数的整合管理十分关键。必须借助面向对象的方案,不能仅依赖简单的属性映射方式:

1. 定义清晰的Java类结构

2. 每个字段使用合适的类型和注释

3. 实现必要的验证逻辑

这种做法在最初需要花费大量心力,但到后面进行维护和延伸时,却有很大优势,非常适合可以一直进行的工程。

	    import lombok.Getter;		
		import lombok.Setter;
		import java.util.Map;
		@Getter
		@Setter
		public class WechatTemplate {
		    private String touser;
		    private String template_id;
		    private String url;
		    private Map data;
		    private MiniprogramData miniprogram;
		}
		@Getter
		@Setter
		public class TemplateData {
	    private String value;
	    private String color;
		}
		@Setter
		@Getter
		public class MiniprogramData {
		    private String appid;
		    private String pagepath;
		}

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/38120.html

标签:

博览广文网

博览广文网为所有文学爱好者、新闻爱好者、关注生活多方面内容的观众朋友提供多方位的内容呈现、提升阅读空间、填充碎片时间,开阔读者的视野、增长见识、了解民生、一个让您不出户尽知天下事的网站平台!
热门标签
关于我们
广文舒阅网—让天下读者有家可归!这里汇聚了各类优质文化信息,无论是全球热点、历史故事,还是实用百科、趣味探索,您都能轻松获取。我们希望用阅读点亮您的世界,让每一次浏览都充满收获和乐趣。
导航栏A标题
广文舒阅网
扫码关注
联系方式
全国服务热线:0755-88186625
Q Q:8705332
Email:admin@lanyu.com
地址:深圳市福田区海雅缤纷国际大厦5层501
Copyright 深圳市蓝宇科技有限公司 版权所有 备案号:京ICP备20013102号-1