ThinkPHP微信第三方登录

浏览:3335 发布日期:2017/03/10 分类:技术分享 关键字: 微信 微信登录 扫码
昨日做了微信第三方登录,特地分享出来,给大家参考使用:我是模仿了ThinkSDK写了一个自己的ThinksenSDK,大家也可以这么写的。

//用户登录
public function login()
{
//获取用户登录类型
$type = I(‘get.type’,’WX’);

//加载ThinkOauth类并实例化一个对象:返回微信请求code的地址
import(“Org.ThinksenSDK.ThinkOauth”);
//调用类下的静态方法
$sns = \ThinkOauth::getInstance($type);

//得到微信登录获取code的地址
$url=$sns->getRequestCodeURL();

\Think\Log::write(“index \n”.$url);

//跳转到授权页面
redirect($url);

}

/**
* 用户扫描成功返回到这里(微信提供code和state)
*/
public function wxreturn()
{
$type = I(‘get.type’,’WX’);
//获取code和status
$code = I(‘get.code’);
$state = I(‘get.state’);

//通过code和appid和应用密钥AppSecret获取access_token
//加载ThinkOauth类并实例化一个对象
import(“Org.ThinksenSDK.ThinkOauth”);
//调用类下的静态方法
$sns = \ThinkOauth::getInstance($type);

//通过$sns对象调用getAccessToken
if($code && $state==’wechat’){
//将code传入换取getAccessToken,返回的是个数组:

$AccessToken = $sns->getAccessToken($code);
//获取getAccessToken后就是根据作用域获取用户信息了。
$url = ‘https://api.weixin.qq.com/sns/userinfo’;
$params = array(
‘access_token’ =>$AccessToken[‘access_token’],
‘openid’ =>$AccessToken[‘openid’],
);
$usrapi_arr = $WxdataUser = $sns->call($url,$params);
//到这里已经获取到用户的信息。将用户信息添加到数据库并且保存到session
}

这里下载sdk包:http://www.momoyingyu.com/blog/archives/319
最佳答案
评论( 相关
后面还有条评论,点击查看>>