间隔很长时间之后的第一篇博客
最近做的关于微信公众号和小程序的项目比较多,这里先写一下如何通过微信公众号关联的小程序的openid获取其微信公众号的openid,以完成推送消息模板之类的操作,相反操作道理一致。
前话
每个微信用户对于不同的微信公众号和不同的微信小程序都有自己不同的openid。你可以理解为:每个公众号和小程序都有自己的appid,然后系统用你的微信的某个码和不同的appid组合编码所以产生了不同的appid对应的不同的openid(意思就这么个意思)
其次
我们要通过小程序的openid获取微信公众号的openid,必要的准备工作:
-
在微信公众号中将微信小程序和公众号关联起来
-
注册一个微信开放平台,将微信公众号和微信小程序绑定到微信开放平台中
接下来
完成上面两个步骤后,你会在获取到微信公众号openid和微信小程序openid的时候解析获取到一个叫做unionid的东西(加粗划重点)
此unionid相对于公众号和其绑定的小程序来说是一致的
(再次加粗划重点)
这样,当你在小程序中获取到他的openid之后,你就可以去查找你的微信公众号关注列表去获取他的openid和unionid,通过unionid的相同比对,最终获取到目标用户的微信公众号openid并完成你的推消息操作。
点击消息模板进入
获得参数publicOpenid 请求获得参数litOpenid 和unionid
如果unionid信息不存在-------->
说明当前为新用户,其publicOpenid也不存在,则可用传递获得的参数
publicOpenid进行统一新增
如果unionid信息存在 -------->
1> 当前信息publicOpenid和lieOpenid 都存在,为已注册用户,不予理会
2> 当前信息litOpenid存在,publicOpenid 不存在
(在用户第一次进入注册页面但未填写信息并退出小程序,后来又下拉进入小
程序场景中存在可能)
此时需要通过获取公众号列表的用户信息,然后解析获取unionid去匹配已存在的unionid去补充publicOpenid
上面的是我个人在处理项目业务中的一个思路逻辑,有更优化的方法欢迎各位大佬指正,毕竟我菜!!!
完!告辞~