突发!如何应对微信小程序与公众号下发统一消息接口调整

小程序 0

image.png

前言

国庆节前夕,被同事突然Q到:“咱们的公众号消息推送是不是要修改?”,我一脸茫然,紧接着,他直接甩给我一个链接,我打开后一看。一瞬间愉快的心情完全被打乱了。

image.png

但是,不要慌,没什么大不了的,大不了国庆节三倍工资加班干完,哈哈哈...

这是一件什么事情呢,看下图:

image.png

意思就是说:之前使用“微信公众号下发统一消息接口”的服务不让你用了,你需要换一种方式来实现它,微信官方还给出了适配指引!

image.png

看到这里,我只想说,wechat,你可以,仗势欺人是不?你考虑广大开发者了吗?你考虑广大的用户体验了吗?还声称是为了优化多个同一功能接口对开发者造成困扰?你这是专门给广大开发者造成困扰!

进入正题

以上也就是发发牢骚,我们毕竟是渺小的开发者,三言两语击不起几个浪花,懒得理我们。

牢骚发完,我们是不是该考虑一下如何适配了?毕竟国庆节还真不想加班!(内心深处:8天假呢,可怎么耍啊?)

时间线

微信团队是8月22日发出的消息,说在9月20日起将不能使用该功能,但是我发现的时候已经是9月25日了,但是我们的推送消息依然可以使用(有点奇怪),说明还没有完全切换,可能考虑到我们的用户量比较大的原因?算了,不管这个了。

如何做

紧接着,我仔细的研读了一下微信的这个文档,思考了一番,无非就是两种方案:

  1. 彻底改正

  2. 还能救一下

方案一:彻底改正?

其实我是倾向于彻底改正的,因为这样是最保险的方式,因为它是标准的推送功能。那就是标准化使用公众号模版消息接口,下面是重要的步骤:

  1. 重新写个微信公众号 h5 页面,授权获取 jscode,再来换取公众号 openid。

  2. 使用 openid 按照文档下发微信公众号模版消息。

方案二:还能救一下?

这种方案其实就是一个不想改的方案,虽然有自己的好处,但是不好的地方太大了,稍后再说,先说一下步骤:

准备工作

  1. 必须有一个微信开放平台(需要收费,记得是300元?感觉就是为了 money)。

  2. 小程序与公众号同一主体。

  3. 小程序和公众号和微信开放平台关联。

实现步骤

准备好以上的工作后,可以进行曲折的适配工作了

  1. 由于小程序和公众号都关联了微信开放平台,我们再次使用小程序微信登录时会多返回一个 unionid,通过这个 unionid 做关联。

  2. 获取微信公众号的关注列表,可以批量拿到关注人的 openid。

  3. 使用小程序 openid 通过 unionid 拿到对应的公众号的 openid,确认是同一个人。

  4. 使用公众号 openid 按照文档下发微信公众号模版消息。

唉,真费劲,翻来覆去的最终还是拿到公众号openid下发模版消息,这方式真是够曲折的!!!

唯一性说明

同一个用户,在同主体的小程序和公众号下,会有各自的 openid ,不相同,不能混用。

同一个用户,在同主体的小程序、公众号等下面只有 1 个 unionid,有多个 公众号openid 和多个小程序openid 。 unionid 是同主体应用下唯一身份证,可以查询对应的公众号openid和小程序openid。因此,unionid 的覆盖率是最高的。

当用户关注公众号,浏览公众号下面H5时,可以同时获取 unionid、公众号openid。而浏览小程序时,可以同时获取小程序 unionid、openid。不管哪种操作都能拿到 unionid。

在单个小程序或公众号里,openid 是唯一的。当同一个小程序主体下有多个小程序时,每个小程序有自己的 openid,因此需要 unionid 进行唯一身份标识,即:unionid 是同个主体下不同小程序的用户唯一标识。

着手实现

以上两种方案都给整的明白的,那就开始着手实现吧!

虽然上述方案是有了,但是有一个问题,两种都有它各自的优缺点!

彻底改正的方案

  1. 费时费力,几天时间完不成,前后端需重写,测试需要重测,bug不可预测。

  2. 就算完成了,需要用户重新绑定,谈何用户体验?

还能救一下方案

  1. 前端不用重写,后端需要改造,工作量不大,可以完成?

  2. 还是需要用户重新绑定,也无用户体验。

  3. 其实就是野路子,实现不标准,后面肯定需要重构。

等等,我有一个更好的方式,可以让你安稳的度过中秋国庆双节假期!

结语

以上就是双节前夕发生的一些趣味事情,那么接下来我会将两种方式的具体实现都会和大家探讨一下,敬请期待!

对于微信平台8月22日发布的“小程序与公众号下发统一消息接口调整通知”,你是怎么看的?可以评论区“发泄”一下。如果你有更好的方案,欢迎联系我,我们共同探讨一下。

也许您对下面的内容还感兴趣: