/*(1)网页授权页面,【测试的时候要先用用浏览器输出链接在微信端打开即可】*/
authorization();
function authorization(){
//https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
$myurl = urlencode('http://wechatr.xd107.com/index.html');//需要跳转链接进行处理urlencode
$appid = 'wx085835d45bae5bc6';
$secret= 'd35c9e49c46d2ed7fbf018949bf75367';
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$myurl.'&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect';
echo 'lianjie :'.$url.'<br/>';
}
/*网页收取2code换access_token说明这个code是跳转之后的前台页面又给传回来的,具体方案要根据实际情况这里只是测试用,并进行获取加的access_token*/
//getCode();
function getCode(){
$appid = 'wx085835d45bae5bc6';
$secret= 'd35c9e49c46d2ed7fbf018949bf75367';
if (empty($_GET['code'])) {
echo " no code";
}else{
//echo $_GET['code'].'<br/>';
//https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$_GET["code"].'&grant_type=authorization_code';
$linacesstoken = curlGet($url);
return $linacesstoken;//当这个参数失效的时候可以用下面的secondAccesstoken的方法进行二次刷新
}
}
// 当accesstoken中失效的时候可能需要二次刷新accesstoken需要二次刷新
secondAccesstoken();
function secondAccesstoken(){
$linacesstoken = getCode();
$appid = 'wx085835d45bae5bc6';
$secret= 'd35c9e49c46d2ed7fbf018949bf75367';
//https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
$url = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$appid.'&grant_type=refresh_token&refresh_token='.$linacesstoken['access_token'];
$refreshtoken = curlGet($url);
return $refreshtoken;
}
/*获取通过授权临时获取用的基本信息*/
function showUsermess(){
$access_token = getAccesstopken();
$linacesstoken = getCode();
$url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$linacesstoken['openid'].'&lang=zh_CN';
$userinfo = curlGet($url);
return $userinfo;
}
/*检验授权凭证(access_token)是否有效*/
function validateAuthoriz(){
$access_token = getAccesstopken();
$linacesstoken = getCode();
//https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
$url = 'https://api.weixin.qq.com/sns/auth?access_token='.$access_token.'&openid='.$linacesstoken['openid'];
$vali = curlGet($url);
if(($vali['errcode']==0)&&$vali['errmsg']=='ok'){
/*表明有效否则无效*/
return '有效';
die();
}else{
return '无效';
die();
authorization();
function authorization(){
//https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
$myurl = urlencode('http://wechatr.xd107.com/index.html');//需要跳转链接进行处理urlencode
$appid = 'wx085835d45bae5bc6';
$secret= 'd35c9e49c46d2ed7fbf018949bf75367';
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$myurl.'&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect';
echo 'lianjie :'.$url.'<br/>';
}
/*网页收取2code换access_token说明这个code是跳转之后的前台页面又给传回来的,具体方案要根据实际情况这里只是测试用,并进行获取加的access_token*/
//getCode();
function getCode(){
$appid = 'wx085835d45bae5bc6';
$secret= 'd35c9e49c46d2ed7fbf018949bf75367';
if (empty($_GET['code'])) {
echo " no code";
}else{
//echo $_GET['code'].'<br/>';
//https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$_GET["code"].'&grant_type=authorization_code';
$linacesstoken = curlGet($url);
return $linacesstoken;//当这个参数失效的时候可以用下面的secondAccesstoken的方法进行二次刷新
}
}
// 当accesstoken中失效的时候可能需要二次刷新accesstoken需要二次刷新
secondAccesstoken();
function secondAccesstoken(){
$linacesstoken = getCode();
$appid = 'wx085835d45bae5bc6';
$secret= 'd35c9e49c46d2ed7fbf018949bf75367';
//https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
$url = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$appid.'&grant_type=refresh_token&refresh_token='.$linacesstoken['access_token'];
$refreshtoken = curlGet($url);
return $refreshtoken;
}
/*获取通过授权临时获取用的基本信息*/
function showUsermess(){
$access_token = getAccesstopken();
$linacesstoken = getCode();
$url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$linacesstoken['openid'].'&lang=zh_CN';
$userinfo = curlGet($url);
return $userinfo;
}
/*检验授权凭证(access_token)是否有效*/
function validateAuthoriz(){
$access_token = getAccesstopken();
$linacesstoken = getCode();
//https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
$url = 'https://api.weixin.qq.com/sns/auth?access_token='.$access_token.'&openid='.$linacesstoken['openid'];
$vali = curlGet($url);
if(($vali['errcode']==0)&&$vali['errmsg']=='ok'){
/*表明有效否则无效*/
return '有效';
die();
}else{
return '无效';
die();
}
说明:所有的测试都是web开发工具上测试本人亲测
}