绑定了认证服务号的话,可以生成一个二维码给用户扫描,然后关注成功后,再在公众号里弹出提示信息引导用户进入相关页面。 这样就实现了暴力吸粉。也就是说先让用户必须要关注公众号,才提示进入相关页面。这样就避免了用户直接扫码进入页面,却没有关注公众号的问题。 下面这段代码就是生成关注公众号的二维码,里边带有相关的参数信息 ~~~ <img src="{:fun('Wxapp@mp_code','bbs'.$id.'-'.$userdb['uid'])}"> ~~~ 实际就是通过一个函数生成二维码的图片 ~~~ fun('Wxapp@mp_code','bbs'.$id.'-'.$userdb['uid']) ~~~ 第二个参数,是类似这样的 bbs22-45 参数是可以随意的。你可以传入多个参数,用区分符隔开,后续自己对应处理。而bbs是给他一个特殊的标志,以区别不同的扫码事件 程序实现代码如下 ~~~ <?php if (preg_match("/^bbs([\d]+)-([\d]*)$/", $data['keyword'],$array)) { $id = $array[1]; $uid = $array[2]; $url = get_url(urls('bbs/content/show',['id'=>$id,'p_uid'=>$uid])); return "<a href=\"$url\">请点击查看详情!</a>"; } ~~~ 你可以把上面这段代码另存为abc.php或者是123.php都可以,名字可以随意的。然后放在 `\application\common\ext\weixin_mp_scan\` 这个目录,或者是 `\plugins\weixin\ext\weixin_mp_scan\` 我们推荐放在 `\plugins\weixin\ext\weixin_mp_scan\` 此目录下面。因为这里就可以实现全局调用了。没必要占用common目录 注意,上面这种是简单的显示一个文字链接,如果要显示图文介绍链接的话,可以用下面的代码 ~~~ <?php if (preg_match("/^bbs([\d]+)-([\d]*)$/", $data['keyword'],$array)) { $id = $array[1]; $uid = $array[2]; $url = get_url(urls('bbs/content/show',['id'=>$id,'p_uid'=>$uid])); //return "<a href=\"$url\">请点击查看详情!</a>"; $class = "app\\bbs\\model\\Content"; //注意这里是bbs模块 $obj = new $class; $info = $obj->getInfoByid($id,true); return [ 'title'=>$info['title'], 'picurl'=>$info['picurl']?tempdir($info['picurl']):'', 'about'=>get_word(del_html($info['content']),150), 'url'=>get_url(iurl('bbs/content/show',['id'=>$id,'p_uid'=>$uid])), ]; } ~~~ 特别提醒,对于是专题的话,可以是二维数组,比如 ~~~ <?php if (preg_match("/^bbs([\d]+)-([\d]*)$/", $data['keyword'],$array)) { return [ [ 'title'=>'主标题', 'picurl'=>'主图', 'about'=>'介绍一', 'url'=>'链接一', ], [ 'title'=>'标题二', 'picurl'=>'图二', 'about'=>'介绍二', 'url'=>'链接二', ], ]; } ~~~ 另外系统自带一个通用频道的示例`\plugins\weixin\ext\weixin_mp_scan\content.php` 代码如下,大家可以参考 ~~~ <?php if (preg_match("/^qb-([a-z]+)-([\d]+)-([\d]*)$/", $data['keyword'],$array)) { $dirname = $array[1]; $id = $array[2]; $uid = $array[3]; if (modules_config($dirname)) { $url = get_url(urls($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])); $class = "app\\{$dirname}\\model\\Content";; $obj = new $class; $info = $obj->getInfoByid($id,true); return [ 'title'=>$info['title'], 'picurl'=>$info['picurl']?tempdir($info['picurl']):'', 'about'=>get_word(del_html($info['content']),150), 'url'=>get_url(iurl($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])), ]; }elseif(plugins_config($dirname)){ $url = get_url(purl($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])); return "<a href=\"$url\">请点击进入活动页</a>"; } } ~~~ 可以在任何频道的内容页里放入如下的二维码图片,下面这个是通用型的。 `<img src="{:fun('Wxapp@mp_code','qb-'.config('system_dirname').'-'.$id.'-'.$userdb['uid'])}">` 最后大家可以扫码体验 ![](https://img.kancloud.cn/cb/65/cb65b19432a9d59e577249d225195f4f_418x402.png) ![](https://img.kancloud.cn/b6/8a/b68ae70d5e92038aa02d6ccf189ca8e4_837x593.png) ![](https://img.kancloud.cn/7b/51/7b5191aaf99eb6761337587463e5dc5a_1309x775.png) 特别提醒,如果你觉得单篇图文不好看,多篇图文更好看的话,也可以对单篇图片做一下设置修改。比如系统原来的是下面这个 ~~~ <?php if (preg_match("/^qb-([a-z]+)-([\d]+)-([\d]*)$/", $data['keyword'],$array)) { $dirname = $array[1]; $id = $array[2]; $uid = $array[3]; if (modules_config($dirname)) { $url = get_url(urls($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])); $class = "app\\{$dirname}\\model\\Content";; $obj = new $class; $info = $obj->getInfoByid($id,true); return [ 'title'=>$info['title'], 'picurl'=>$info['picurl']?tempdir($info['picurl']):'', 'about'=>get_word(del_html($info['content']),150), 'url'=>get_url(iurl($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])), ]; }elseif(plugins_config($dirname)){ $url = get_url(purl($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])); return "<a href=\"$url\">请点击进入活动页</a>"; } } ~~~ 你可以修改成下面这个样子 ~~~ <?php if (preg_match("/^qb-([a-z]+)-([\d]+)-([\d]*)$/", $data['keyword'],$array)) { $dirname = $array[1]; $id = $array[2]; $uid = $array[3]; if (modules_config($dirname)) { $url = get_url(urls($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])); $class = "app\\{$dirname}\\model\\Content";; $obj = new $class; $info = $obj->getInfoByid($id,true); return [ [ 'title'=>$info['title'], 'picurl'=>$info['picurl']?tempdir($info['picurl']):'', 'about'=>get_word(del_html($info['content']),150), 'url'=>get_url(iurl($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])), ], [ 'title'=>'你的网站名称', 'picurl'=>'你的LOGO地址,必须是http开头', 'about'=>'介绍可以不写,因为不会显示', 'url'=>get_url(iurl($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])), //这里可以写你的网站网址 ], ]; }elseif(plugins_config($dirname)){ $url = get_url(purl($dirname.'/content/show',['id'=>$id,'p_uid'=>$uid])); return "<a href=\"$url\">请点击进入活动页</a>"; } } ~~~ ![](https://img.kancloud.cn/76/83/7683b38a7f42f3b91aaf1ddfc82a4473_1617x916.png)