首先我要有一个认证好的企业服务号
获取token 然后再
有三种方法获取服务号的openid
1.网页授权
2.调用服务号的支付功能 (用户支付成功 就会自动关注服务号)
3.获取全部的openid(效率最低的方法)
这三种方法 除了第二种,都有一个前提条件 就是用户必须自己去关注服务号 这里就需要解决如何引导用户去关注服务号。
在程序里面加入口
1.使用微信官方的组件
<official-account></official-account>
而这组件只会在场景值为(1047,1124,1089,1038)什么是场景值呢
- 当小程序从扫小程序码场景(场景值1047,场景值1124)打开时
- 当小程序从聊天顶部场景(场景值1089)中的「最近使用」内打开时,若小程序之前未被销毁,则该组件保持上一次打开小程序时的状态
- 当从其他小程序返回小程序(场景值1038)时,若小程序之前未被销毁,则该组件保持上一次打开小程序时的状态
在这三种情况小程序才会显示组件,所有大大限制了我们引导用户去关注的途径
2.直接把服务号二维码放在小程序里面让用户去扫描(需要去解决小程序里面扫描二维码问题)这里后续我会去加入实现过程
3.调用服务号发布的文章,从而让用户从文章里面进入服务号关注 这里用到微信的web-view的开发能力
<web-view src="等于你文章的路径"></web-view>
这三种方法都可以使用,都是这里我不推荐使用组件(official-account)限制太多
用户关注后服务号就会生成openid 记住 这里的 openid只是服务号的
上面做完之后,你会发现一个问题,小程序的openid和服务号openid是没有关联的,需要如何去关联呢。
解决方法,认证微信开放平台账号绑定,记住是微信开放平台,而不是微信开发平台,通过获取unionid还进行对比,数据保存在数据库。
网页授权好处来了,这里可以不去使用微信开放平台账号进行绑定。
之后就发送模板消息就行了。
1.获取token
2.通过开放平台账号绑定(小程序与服务号的关联)
3.获取全部的openid
4.通过openid 请求获取unionid,这里要确保用户是关注状态才能拿到unionid
这一步就是 给服务号的openid和unionid绑定起来,
因为unionid是用户的唯一的标识
5 统一发送
具体代码之后添加到文章里面