微信公众号开发 - 扫描带参数二维码事件支持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']; }