1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 微信公众号生成带参数二维码 扫码获取附带参数

微信公众号生成带参数二维码 扫码获取附带参数

时间:2019-03-15 08:21:01

相关推荐

微信公众号生成带参数二维码 扫码获取附带参数

一、curl请求

$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,2);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);if($requestType=='post'){curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$Data);}$res = curl_exec($ch);if($returnType=='stood'){return $res;}if(curl_error($ch)){var_dump(curl_error($ch));curl_close($ch);}else{curl_close($ch);return json_decode($res,true);}

二、获取access_token

$url = 'https://api./cgi-bin/token?grant_type=client_credential&appid='.self::$config['appid'].'&secret='.self::$config['appsecret'];$this->sendRequest($url);

三、生成带参二维码、获取二维码路径

$url = 'https://api./cgi-bin/qrcode/create?access_token='.$this->getToken();if ($type == 1){//永久二维码$data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": "'.$user_id.'"}}}';}else{$data = '{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene_id": "'.$user_id.'"}}}';}$res = $this->sendRequest($url,'post','json',$data);if (empty($res['ticket'])){return false;}return 'https://mp./cgi-bin/showqrcode?ticket='.urlencode($res['ticket']);

四、 保存二维码

protected function down_load_qrcode($url,$user_id){if (empty($url) || empty($user_id)) return false;$filename = "{$user_id}.jpg";ob_start();readfile($url);$img = ob_get_contents();ob_end_clean();$file = './upload/qrcode/' . $filename;$fp2 = fopen($file, "a");if (fwrite($fp2, $img) === false) {return jsonData(1001,'生成二维码失败');}fclose($fp2);return '/upload/qrcode/' . $filename;}

五、公众平台配置

六、扫码之后,响应事件

if($subscribe){$data = ['openid' => $postObj->FromUserName,'scene_id' => $postObj->EventKey//二维码中附带的user_id];$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "xxx/check_account");//调用接口、修改相应信息curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);$output = curl_exec($ch);curl_close($ch);}

七、检测是否关注公众号

$url = "https://api./cgi-bin/user/info?access_token={$this->getToken()}&openid=$openid";$subscribe = $this->sendRequest($url);$res = $subscribe['subscribe'];return $res;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。