本人最近在做一个saas模式的产品开发,公众号只有一个,但服务的客户有多种,在各客户下又有各自的用户。现在有这么一个需求,当用户扫描客户提供的公众号二维码时,会出现对应的客户欢迎语,并且显示客户的LOGO界面。前提是每个客户的LOGO是不同的。是不是有点绕?讲明白点,就如你一个公众号,要被多个商家使用,每个商家都有自己的用户群,那用户在扫码关注公众号,进入公众号需要显示每个商家自己的独特LOGO。

正常的关注公众号二维码图片是可以去公众号开发者后台下载。但这是统一的二维码,无法区分商家。这个时候,我们就需要自己去生成公众号的关注二维码。这个二维码跟网上自动生成的功能不一样。毕竟你扫码后,还得跟第三方的腾讯连接。

一、JAVA编辑生成二维码接口

参数微信公众平台接口https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542

我们生成一个永久带字符串的二维码,我们只需要传一个商家的ID,就能识别用户关注时,是扫了哪一个二维码,从而显示对应的商家LOGO

Controller层

@ApiOperation(value = "创建公众号二维码") @ResponseBody public Result createQRCode( @ApiParam(name = "type", value = "类型(1:临时二维码;2:永久参数为数字的二维码;3:永久参数为字符串的二维码)") @RequestParam() Integer type, @ApiParam(name = "validTime", value = "临时二维码的有效时间(秒,最高2592000秒(30天))") @RequestParam(required = false) Integer validTime, @ApiParam(name = "IntParameter", value = "数字参数") @RequestParam(required = false) Integer IntParameter, @ApiParam(name = "strParameter", value = "字符串参数") @RequestParam(required = false) String strParameter, HttpServletRequest request ){ return wechatPushService.createQRCode(type,validTime,IntParameter,strParameter, this.getUserId(request)); }

业务逻辑层

公众号二维码如何自动生成 如何生成关注公众号自定义二维码及监听扫码事件(1)

修改配置,服务器地址为你部署的地址,必须对方能连上,而且需要80端口(如果80端口被占用,可以使用Nginx做转发),在配置的时候,公众号会尝试调用,调用不到你的接口,会直接提醒你。

配置完后,点击启动。这个时候你再去关注你刚才生成的参数二维码,就会有反映了。记得在事件触发接口中,增加你的业务。用户关注或取消关注时,你要做什么。

另外,在启动配置后,你会发现,你的公众号自定义菜单不见了,这个时候不要慌。接下往下看。

公众号二维码如何自动生成 如何生成关注公众号自定义二维码及监听扫码事件(2)

公众号二维码如何自动生成 如何生成关注公众号自定义二维码及监听扫码事件(3)

启动菜单

公众号二维码如何自动生成 如何生成关注公众号自定义二维码及监听扫码事件(4)

这个时候公众号上的小菜单就有了。但公众号后台自定义菜单还是看不到?那怎么修改菜单呢?

很简单,先把前面开启的服务器配置给停止了,然后再改你的菜单,修改完菜单后,你再开始服务器。到此就完成了生成及事件监听的过程

,