unionid实现公众号模板消息推送


问题背景:一个H5站点,微信内打开或普通浏览器打开。需要用户下单后,关注公众号,然后推送模板消息,您有新订单,点击查看之类的。。

遇到问题:公众号的模板消息推送,只能使用公众号的openid, 微信内打开可以进行授权登录直接拿到可用的,但是普通H5不行。通过开放平台将普通H5和公众号关联的话,能拿到公共的unionid,但是普通H5下单,就算拿到unionid也没办法推送,因为不知道公众号的openid

解决方案:

方案一、把公众号弄成开发者模式,用户关注公众号的时候,触发关注事件,可以取到openid和unionid,从而进行关联。

问题是开发者模式,需要自定义图文,菜单等等,麻烦。。。

方案二、

1. 定时任务(5分钟),调用公众号查询粉丝列表接口,能拿到openid,然后通过获取用户基本信息接口拿unionid,写入wechat_fans表。

2.微信h5访问时-》授权登录直接拿到openid-》写入订单openid字段中,订单支付完,直接调用模板消息接口推送消息了。

3.普通h5访问,开放平台授权登录,拿到unionid,写入订单unionid字段中。

4.定时任务(1分钟)处理没有openid且限制时效内的订单数据,通过unionid到wechat_fans表中去搜索openid,搜索到修改订单记录,同时进行模板消息推送。


最后:

我选择方案二,不用取动现有公众号的内容。比较遗憾的是普通H5下单后的模板消息推送延迟问题,可以通过redis, mq等做优化。


wechat skill


上一篇:Golang实现redis集群操作代理接口

一些web安全漏洞修改记录:下一篇