You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
1.9 KiB

<?php
// 获取上一个页面的 URL
session_start();
$referer = $_SESSION['prev_url'];
// unset($_SESSION['prev_url']);
$appid = 'wx1663d2c6a7937c78';
$appsecret = '979d165d51759c3f1fbb357747b3311d';
$redirect_uri = 'https://shop.heavenk.com/mobile/blank.php'; // 回调URL
$template_id = '5JCt5gNGM7sfwWnRqwWsjH138DixCFJ7sPEbToYQAmQ';
// 获取授权 code
if (!isset($_GET['code'])) {
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . urlencode($redirect_uri) . '&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect';
header('Location: ' . $url);
exit;
}
// 获取 access_token 和 openid
$code = $_GET['code'];
if ($code != null){
// var_dump($code);
} else {
var_dump("code is null");
} // code已经成功获取到
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $appsecret . '&code=' . $code . '&grant_type=authorization_code';
$response = file_get_contents($url);
echo $response;
$data = json_decode($response, true);
echo $data;
if (!$data || !isset($data['access_token']) || !isset($data['openid'])) {
// 授权失败
echo '授权失败,请重试';
exit;
}
// 获取用户信息
$access_token = $data['access_token'];
$openid = $data['openid'];
$url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token . '&openid=' . $openid . '&lang=zh_CN';
$response = file_get_contents($url);
$userinfo = json_decode($response, true);
if (!$userinfo || !isset($userinfo['openid'])) {
// 获取用户信息失败
echo '获取用户信息失败,请重试';
exit;
}
$_SESSION['openid'] = $openid;
$_SESSION['access_token'] = $$access_token;
// echo $openid;
header('Location: ' . $referer);
exit;
// 用户授权成功,这里可以将用户信息保存到数据库中,或者进行其他操作
// var_dump($userinfo);
?>