php 微信第三方登录demo,PHP微信开放平台实现微信第三方登录

PHP微信开放平台实现微信第三方登录

2018-09-08

189

第一:在微信开放平台申请允许第三方用用后,获取到AppID以及AppSecrect信息

第二:进行登录,请求code

说明如下:参数是否必须说明appid是应用唯一标识

redirect_uri是请使用urlEncode对链接进行处理

response_type是填code

scope是应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即

state否用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验

在浏览器中输入地址会出现下图

第三:返回接口实现

第二步骤中的redirect_uri 就是微信获取信息后返回的接口

代码实现如下<?php

$code = $_GET['code'];

$state = $_GET['state'];

//换成自己的接口信息

$appid = 'wxtd3rf1bee60e8e';

$appsecret = 'ba0960ag30a53gce9eg2c2afg2';

if (empty($code)) print_R('授权失败');

$token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';

$token = json_decode(file_get_contents($token_url));

if (isset($token->errcode)) {

echo '

错误:

'.$token->errcode;

echo '

错误信息:

'.$token->errmsg;

exit;

}

$access_token_url = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$appid.'&grant_type=refresh_token&refresh_token='.$token->refresh_token;

//转成对象

$access_token = json_decode(file_get_contents($access_token_url));

if (isset($access_token->errcode)) {

echo '

错误:

'.$access_token->errcode;

echo '

错误信息:

'.$access_token->errmsg;

exit;

}

$user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token->access_token.'&openid='.$access_token->openid.'&lang=zh_CN';

//转成对象

$user_info = json_decode(file_get_contents($user_info_url));

if (isset($user_info->errcode)) {

echo '

错误:

'.$user_info->errcode;

echo '

错误信息:

'.$user_info->errmsg;

exit;

}

$result =  json_decode(json_encode($user_info),true);//返回的json数组转换成array数组

//打印用户信息echo '

';

print_r($result );echo '

';

打印信息如下:Array

(

[openid] => o-ukg1dHhZfHpP599dEkdWw-rC6k

[nickname] => 测试昵称

[sex] => 1

[language] => zh_CN

[city] => 闵行

[province] => 上海

[country] => 中国

[headimgurl] => http://thirdwx.qlogo.cn/mmopen/vi_32/6QKOCrTPbTwOrGL1xoyS0MS4P3HYyfXCOvfOyunzUujibwOoicvrpHLl7SHVRy2KZMHnHB1pN6lSicFKYZSQ/132

[privilege] => Array

(

)

[unionid] => o4BJJ94i_138Tvt2bt1psNribCXU

)

最后就可以进行后续的操作了

分享到:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值