public function index(){
//获取临时二维码
$access_token=$this->get_wx_access_token();
$url="https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$access_token;
$postArr=[
'expire_seconds'=>604800,
'action_name'=>"QR_SCENE",
'action_info'=>[
'scene'=>[
'scene_id'=>2000
]
]
];
$postJson= json_encode($postArr);
$res=$this->http_curl($url,$postJson,'post','json');
//获取ticket
$ticket=$res['ticket'];
//使用ticket获取二维码图片 ticket一定要urlencode
$url="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($ticket);
echo "<img src='$url' alt=''>";
}
public function get_wx_access_token()
{
//将access_token存在session/cookie中
//如果access_token在session中并没有过期
if (isset($_SESSION['access_token']) && $_SESSION['expire_time'] > time()) {
return $_SESSION['access_token'];
}
//如果access_token不存在或者已经过期,重新获取access_token
else {
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $this->appid . "&secret=" . $this->appsecret;
$arr = $this->http_curl($url);
//存到session中
$access_token = $arr['access_token'];
$_SESSION['access_token'] = $arr['access_token'];
$_SESSION['expire_time'] = time() + 7200;
return $access_token;
}
}
protected function http_curl($url, $arr = '', $type = 'get', $res = 'json')
{
$ch = curl_init();
//设置curl的参数
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if ($type == 'post') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);
}
//采集
$output = curl_exec($ch);
if ($res == 'json') {
if ($err = curl_errno($ch)) {
//要在关闭之前获得curl_errno
curl_close($ch);
//请求失败,返回错误信息
return $err;
} else {
//请求成功
return json_decode($output, true);
}
}
}
获取微信临时二维码
最新推荐文章于 2022-06-08 10:54:04 发布