前端发送code到本页面
get就行或者你用ajax可也可以```javascript
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<?php
header ( "Content-type: text/html; charset=utf-8" );
function alert($msg){
exit("<script>alert('$msg');history.go(-1);</script>");
}
require_once 'config.php';//加载系统核心和appkey数据WXAPPID替换成自己
$code=$_GET['code'];
if ($code==""){alert('授权失败,请重新登录');}
{
$GETtoken='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.WXAppId.'&secret='.WXAppSecret.'&code='.$code.'&grant_type=authorization_code';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$GETtoken);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);
//打印获得的数据
//print_r($output);
$output_array = json_decode($output);
$optk=$output_array->access_token;
$opid=$output_array->openid;
$refresh_token=$output_array->refresh_token;
$expires_in=$output_array->expires_in;
$GETuserinfo='https://api.weixin.qq.com/sns/userinfo?access_token='.$optk.'&openid='.$opid;
$cha = curl_init();
//设置选项,
curl_setopt($cha, CURLOPT_URL,$GETuserinfo);
curl_setopt($cha, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cha, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$outpt = curl_exec($cha);
//释放curl句柄
curl_close($cha);
//打印获得的数据
//print_r($outpt);
$outpt_array = json_decode($outpt);
$openid=$outpt_array->openid;
$access_token=$output_array->access_token;
$nickname=$outpt_array->nickname;
$sex=$outpt_array->sex;
$headimgurl= $outpt_array->headimgurl;
$unionid= $outpt_array->unionid;
$fetch=DB::fetch_first("SELECT * FROM ".DB::table('common_member_wechat')." WHERE unionid='$unionid'");
//查询数据库对应unionid有没有用户有就设置登陆
if($fetch){
$uid=$fetch['uid'];
$user = getuserbyuid($uid, 1);//设置登陆状态这是dz设置登陆的代码其他请自行参考
require_once libfile('function/member');
setloginstatus($user, 2592000);
header('location:../../');
}else{//未注册用户携带openid或者unionid跳转到绑定页面
$cookietime=2592000;
dsetcookie('unionid', $unionid, $cookietime, 1, true);
dsetcookie('appaccesstoken', $access_token, $cookietime, 1, true);
dsetcookie('headimgurl', $headimgurl, $cookietime, 1, true);
dsetcookie('appopenid', $openid, $cookietime, 1, true);
dsetcookie('nickname', $nickname, $cookietime, 1, true);
header('location:appweixinbind.php');//跳转到绑定页面具体代码自己实现
}
/accesstoken@'.$access_token;
echo '<br>输出昵称@'.$nicknme;
echo '<br>输出性别@'.$sex;
echo '<br>输出头像@'.$headimgurl; */
}
?>
3 个回复
雀儿 (作者)
9999
3***@qq.com - 90后男
微信程序登录验证的时候一般需要的是openid和unionid,这两个都是后端拿code去微信开放接口获取的。
7***@qq.com
前端发送code到本页面
get就行或者你用ajax可也可以```javascript
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<?php
header ( "Content-type: text/html; charset=utf-8" );
function alert($msg){
exit("<script>alert('$msg');history.go(-1);</script>");
}
require_once 'config.php';//加载系统核心和appkey数据WXAPPID替换成自己
$code=$_GET['code'];
if ($code==""){alert('授权失败,请重新登录');}
{
$GETtoken='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.WXAppId.'&secret='.WXAppSecret.'&code='.$code.'&grant_type=authorization_code';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$GETtoken);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);
//打印获得的数据
//print_r($output);
$output_array = json_decode($output);
$optk=$output_array->access_token;
$opid=$output_array->openid;
$refresh_token=$output_array->refresh_token;
$expires_in=$output_array->expires_in;
$GETuserinfo='https://api.weixin.qq.com/sns/userinfo?access_token='.$optk.'&openid='.$opid;
$cha = curl_init();
//设置选项,
curl_setopt($cha, CURLOPT_URL,$GETuserinfo);
curl_setopt($cha, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cha, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$outpt = curl_exec($cha);
//释放curl句柄
curl_close($cha);
//打印获得的数据
//print_r($outpt);
$outpt_array = json_decode($outpt);
$openid=$outpt_array->openid;
$access_token=$output_array->access_token;
$nickname=$outpt_array->nickname;
$sex=$outpt_array->sex;
$headimgurl= $outpt_array->headimgurl;
$unionid= $outpt_array->unionid;
$fetch=DB::fetch_first("SELECT * FROM ".DB::table('common_member_wechat')." WHERE unionid='$unionid'");
//查询数据库对应unionid有没有用户有就设置登陆
if($fetch){
$uid=$fetch['uid'];
$user = getuserbyuid($uid, 1);//设置登陆状态这是dz设置登陆的代码其他请自行参考
require_once libfile('function/member');
setloginstatus($user, 2592000);
header('location:../../');
}else{//未注册用户携带openid或者unionid跳转到绑定页面
$cookietime=2592000;
dsetcookie('unionid', $unionid, $cookietime, 1, true);
dsetcookie('appaccesstoken', $access_token, $cookietime, 1, true);
dsetcookie('headimgurl', $headimgurl, $cookietime, 1, true);
dsetcookie('appopenid', $openid, $cookietime, 1, true);
dsetcookie('nickname', $nickname, $cookietime, 1, true);
}
/accesstoken@'.$access_token;
echo '<br>输出昵称@'.$nicknme;
echo '<br>输出性别@'.$sex;
echo '<br>输出头像@'.$headimgurl; */
}
?>