当前位置:首页教程中心网站教程用带参数的二维码实现公众号关注后触发特定操作

用带参数的二维码实现公众号关注后触发特定操作

在运营公众号或相关活动时,我们常需要用户关注公众号后才能参与某些活动(比如抽奖、领取福利等)。借助微信公众平台的带参数二维码接口,就能轻松实现这一功能。下面就来详细说说具体的实现方法。

实现思路

整个流程的核心是通过带参数的二维码关联用户和特定动作,大致步骤如下:
  1. 生成带有唯一标识(Key)的临时二维码,用户扫描该二维码关注公众号。
  2. 用户关注后,微信会向我们配置的服务器地址推送事件信息,我们从中提取用户的 openid 和之前设置的 Key,并保存到数据库。
  3. 活动页面(如抽奖页面)通过 Key 查询数据库,确认用户已关注后,允许用户参与活动。

关键步骤及代码实现

1. 获取访问令牌(Token)

要调用微信接口,首先需要获取访问令牌,代码如下:

这里用了 WordPress 的wp_remote_get函数发送请求,也可以用 CURL 函数替代。

2. 验证并更新 Token

Token 有有效期,需要定期验证,无效时及时更新:

通过获取微信服务器 IP 来验证 Token 是否有效,无效则重新获取并保存到数据库。

3. 生成带参数的临时二维码

生成一个包含唯一 Key 的临时二维码(这里设置有效期为 10 分钟):

这里的key是用于识别用户的唯一标识,可在活动页面生成。

4. 接收并处理关注事件

用户扫描二维码关注公众号后,微信会推送事件信息,我们需要接收并处理:
if( isset($_POST) ) {
    echo ' '; // 防止微信重复推送
    $postStr = file_get_contents('php://input'); // 获取推送的XML数据
    if($postStr) {
        $data = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        // 判断是否为关注事件
        if($data->Event && $data->Event == 'subscribe') {
            $FromUserName = $data->FromUserName; // 用户的openid
            $EventKey = $data->EventKey; // 带前缀的Key
            $EventKey = ltrim($EventKey, 'qrscene_'); // 去除前缀,得到原始Key
            // 这里可以将openid、Key等信息保存到数据库
        }
    }
}
注意:如果用$GLOBALS['HTTP_RAW_POST_DATA']获取不到数据,可改用file_get_contents('php://input')

5. 获取用户信息(可选)

如果需要获取用户的昵称等信息,可使用以下代码:
function get_weixin_userinfo($openid = '') {
    $url = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token=' . get_option('weixin_token') . '&openid=' . $openid . '&lang=zh_CN';
    $info = wp_remote_retrieve_body(wp_remote_get($url));
    $info = json_decode($info, true);
    return $info;
}
 

后续操作

当数据库中保存了用户的 openid、Key 等信息后,活动页面就可以通过 Key 查询数据库,确认用户已关注公众号。确认后,可将用户的 openid 写入 cookie,方便后续操作(比如限制抽奖次数、记录中奖信息等)。
 
以抽奖活动为例,前端可以用jquery.rotate插件实现大转盘效果,而抽奖次数限制、中奖结果计算等关键逻辑则需在服务端完成,确保活动的公平性和安全性。
 
通过这种方式,既能引导用户关注公众号,又能精准控制用户参与活动的权限,是运营活动中非常实用的技巧。
温馨提示:

文章标题:用带参数的二维码实现公众号关注后触发特定操作

文章链接:https://www.muooy.cn/2299.html

更新时间:2025年07月04日

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:305582964@qq.com,我们将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读用户协议免责声明

给TA打赏
共{{data.count}}人
人已打赏
网站教程

给 WordPress 评论区加验证码,轻松拦截垃圾评论

2025-7-4 16:07:50

网站教程

微信公众平台测试账号申请及接口配置

2025-7-4 16:20:08

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
今日签到
搜索