php微信扫码登录的技术问题

想要进行微信第三方网页扫码登录必须要到微信开放平台进行注册和获取相关权限


php微信扫码登录的技术问题_第1张图片

虽然要支付三百块,但是你一年省点就有了,进行了认证了以后就能建网站应用(这里要特别注意,会配置回调授权地址,也就是redirect_uri这个参数,后面会用到)了,这里会有微信给的appid和appsecret。

首要条件:


php微信扫码登录的技术问题_第2张图片

.第一步:获取code的值:在PC端打开

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

注意修改相关对应的值,这里我被redirect_uri和scope搞了很久,给了个scope=snsapi_login(PC端这个参数必须是这个,而不是snsapi_base和snsapi_userinfo)权限的appid,之前会一直提示:


php微信扫码登录的技术问题_第3张图片

如果出现这个,就是你的appid没有权限,如果出现如下:


php微信扫码登录的技术问题_第4张图片

说明你的网站配置有问题,请查看配置。


php微信扫码登录的技术问题_第5张图片

如果出现这个,说明你已经访问成功了

一下是我借鉴别人的代码弄得:

//-------配置

$AppID='wx033336c794d4';

$AppSecret='d4624c36333337af5443d';

$callback='http://www.yun8888.net/weixin/';//回调地址

//微信登录

session_start();

//-------生成唯一随机串防CSRF攻击

$state=md5(uniqid(rand(),TRUE));

$_SESSION["wx_state"]=$state;//存到SESSION

$callback=urlencode($this->callback);

$wxurl="https://open.weixin.qq.com/connect/qrconnect?appid=".$this->AppID."&redirect_uri={$callback}&response_type=code&scope=snsapi_login&state={$state}#wechat_redirect";

header("Location: $wxurl");


回调地址:

if($_GET['state']!=$_SESSION["wx_state"]){

exit("5001");

}

$AppID='wx33333333334d4';

$AppSecret='d4624c363333330547af5443d';

$url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$AppID.'&secret='.$AppSecret.'&code='.$_GET['code'].'&grant_type=authorization_code';

$ch=curl_init();

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);

curl_setopt($ch,CURLOPT_URL,$url);

$json=curl_exec($ch);

curl_close($ch);

$arr=json_decode($json,1);

//得到 access_token 与 openid

print_r($arr);

$url='https://api.weixin.qq.com/sns/userinfo?access_token='.$arr['access_token'].'&openid='.$arr['openid'].'&lang=zh_CN';

$ch=curl_init();

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);

curl_setopt($ch,CURLOPT_URL,$url);

$json=curl_exec($ch);

curl_close($ch);

$arr=json_decode($json,1);

得到用户资料

print_r($arr);

最终结果:


php微信扫码登录的技术问题_第6张图片

博个人博客主:http://www.dongdang.xin

你可能感兴趣的:(php微信扫码登录的技术问题)