//用户登录
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
最佳答案