微信公众号开发 - 扫描带参数二维码事件支持EventKey字符串传参

 $access_token = $this->access_token(); //获取access_token
        $json_url = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.$access_token;

        $scene_id = "A123B";
        $curl_data = '{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "'.$scene_id.'"}}}';
        $json_info = json_decode($this->api_notice_increment($json_url,$curl_data),true);
        return $json_info['url'];

  

   private function api_notice_increment($url, $data) {
        $ch = curl_init();
        $header = "Accept-Charset: utf-8";
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $tmpInfo = curl_exec($ch);
        if (curl_errno($ch)) {
          //curl_close( $ch )
          return $ch;
        }else{
            //curl_close( $ch )
            return $tmpInfo;
        }
    }

  

 private function access_token() {
        $token = Cache::get('access_token');
        if (!empty($token)) return $token;
        $config = self::getConfig('official');
        $appId = $config['app_id'];
        $appSecret = $config['app_secret'];
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$url); //要访问的地址
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//跳过证书验证
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
        $data = json_decode(curl_exec($ch),true);
        if(curl_errno($ch)) {
            var_dump(curl_error($ch)); //若错误打印错误信息
        }
        curl_close($ch);//关闭curl
        Cache::set('access_token', $data['access_token'], $data['expires_in']);
        return $data['access_token'];
    }

  

posted @ 2024-03-22 11:27  童年的回忆  阅读(70)  评论(0编辑  收藏  举报
如果本博客解决了您的问题,可以微信支付宝打赏鼓励一下作者哦,在此表示感谢