这是我参与8月更文挑战的第11天,活动详情查看:8月更文挑战
用小程序openid给公众号发模版消息,前提是用户必须关注公众号,且小程序与公众号在同一主体下。
每个微信用户对于不同的微信公众号和不同的微信小程序都有自己不同的openid。你可以理解为:每个公众号和小程序都有自己的appid,然后系统用你的微信的某个码和不同的appid组合编码所以产生了不同的appid对应的不同的openid。
你会在获取到微信公众号openid和微信小程序openid的时候解析获取到一个叫做unionid的东西(加粗划重点)
此unionid相对于公众号和其绑定的小程序来说是唯一的,且是一致的。
这样,当你在小程序中获取到他的openid之后,你就可以去查找你的微信公众号关注列表去获取他的openid和unionid,通过unionid的相同比对,最终获取到目标用户的微信公众号openid并完成你的推消息操作。
微信公众号接入模板消息流程
(1)申请开通消息模板
登录微信公众平台,在"功能"->"添加功能插件"处申请模板消息:
选择公众账号服务所处的两个行业,每月可更改一次所选行业:
在所选择行业的模板库中选用已有的模板进行调用:
也可以申请自定义的模板,但是自定义模板申请时间需要5个工作日左右。
选择好模板以后
,剩下的就是给用户发送消息了,要求用户必须关注公众号以后才可以接收到消息。 (2)获取access_token和用户openid (3)发送消息,这一步也很简单,就是拼装一个json。 请求json:
{
"touser":"发送用户的openid",
"template_id":"模板消息id",
"url":"模板要跳转的url地址",
"data":{
"first": {
"value":"模板消息的顶部内容",
"color":"#173177"//这个颜色设置好像没什么用
},
"keyword1":{
"value":"模板的第一个key",
"color":"#173177"
},
"keyword2": {
"value":"模板的第二个key",
"color":"#173177"
},
"keyword3": {
"value":"模板的第三个key",
"color":"#173177"
},
"remark":{
"value":"底部备注信息,可以不写",
"color":"#173177"
}
}
}
看你选择的模板有几个key就写几个keyword就行了。