|
|
<?php
|
|
|
|
|
|
namespace app\base\controller\mpqq\api;
|
|
|
|
|
|
|
|
|
use app\base\model\mpqq\MpqqUser;
|
|
|
use think\App;
|
|
|
|
|
|
class Auth extends Base
|
|
|
{
|
|
|
|
|
|
/**
|
|
|
* 微信小程序 wx.login
|
|
|
* @date 2021-07-01
|
|
|
*/
|
|
|
public function getOpenid()
|
|
|
{
|
|
|
$code = input('post.code');
|
|
|
|
|
|
$qq_param = get_mp_qq_config();
|
|
|
|
|
|
$mpqq_user_model = new MpqqUser();
|
|
|
$jwt_class = new \jwt\Jwt();
|
|
|
$auth_class = new \tencent\qq\Auth($qq_param);
|
|
|
|
|
|
//获取微信小程序用户信息
|
|
|
$res = $auth_class->getOpenid($code);
|
|
|
if (empty($res['openid'])) {
|
|
|
return sendErrorMessage(4001, '授权失败');
|
|
|
}
|
|
|
|
|
|
//更新小程序用户信息表
|
|
|
$user_info = [
|
|
|
'uid' => UID,
|
|
|
'openid' => $res['openid'],
|
|
|
'unionid' => isset($res['unionid']) ? $res['unionid'] : '',
|
|
|
'session_key' => isset($res['session_key']) ? $res['session_key'] : '',
|
|
|
'session_key_time' => time(),
|
|
|
];
|
|
|
$res = $mpqq_user_model->updateUser($user_info);
|
|
|
|
|
|
//获取用户信息
|
|
|
$mpqq_user = $mpqq_user_model->getOneData([
|
|
|
['openid', '=', $user_info['openid']]
|
|
|
], 'id,user_id,openid');
|
|
|
|
|
|
//获取token
|
|
|
$info = [
|
|
|
'uid' => UID,
|
|
|
'openid' => $mpqq_user['openid'],
|
|
|
'mpqq_user_id' => $mpqq_user['id'],
|
|
|
'user_id' => $mpqq_user['user_id'],
|
|
|
];
|
|
|
$res_token = $jwt_class->signToken($info);
|
|
|
|
|
|
$r_data = $info;
|
|
|
$r_data['access_token'] = $res_token['token'];
|
|
|
$r_data['access_token_expire_time'] = $res_token['exp'];
|
|
|
|
|
|
return sendSuccessMessage($r_data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 平台用户信息更新
|
|
|
* @date 2021-07-01
|
|
|
*/
|
|
|
public function userInfoUpdate()
|
|
|
{
|
|
|
$param = input('post.');
|
|
|
|
|
|
$mpqq_user_model = new MpqqUser();
|
|
|
|
|
|
$data = [
|
|
|
'uid' => UID,
|
|
|
'openid' => OPENID,
|
|
|
'nickname' => $param['nickname'],
|
|
|
'headimgurl' => $param['headimgurl'],
|
|
|
'gender' => $param['gender'],
|
|
|
'country' => $param['country'],
|
|
|
'province' => $param['province'],
|
|
|
'city' => $param['city'],
|
|
|
'language' => $param['language']
|
|
|
];
|
|
|
$res = $mpqq_user_model->updateUser($data);
|
|
|
if (!$res) {
|
|
|
return sendErrorMessage(4001, '更新信息失败');
|
|
|
}
|
|
|
|
|
|
return sendSuccessMessage();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 微信小程序 通过openid获取信息(一般用于测试openid或access_token过期后重新获取)
|
|
|
* @date 2021-07-01
|
|
|
*/
|
|
|
public function getUserByOpenid()
|
|
|
{
|
|
|
$openid = input('post.openid');
|
|
|
|
|
|
$mpqq_user_model = new MpqqUser();
|
|
|
$jwt_class = new \jwt\Jwt();
|
|
|
|
|
|
//获取用户信息
|
|
|
$mpqq_user = $mpqq_user_model->getOneData([
|
|
|
['openid', '=', $openid]
|
|
|
], 'id,user_id,openid');
|
|
|
|
|
|
//获取token
|
|
|
$info = [
|
|
|
'uid' => UID,
|
|
|
'openid' => $mpqq_user['openid'],
|
|
|
'mpqq_user_id' => $mpqq_user['id'],
|
|
|
'user_id' => $mpqq_user['user_id'],
|
|
|
];
|
|
|
$res_token = $jwt_class->signToken($info);
|
|
|
|
|
|
$r_data = $info;
|
|
|
$r_data['access_token'] = $res_token['token'];
|
|
|
$r_data['access_token_expire_time'] = $res_token['exp'];
|
|
|
|
|
|
return sendSuccessMessage($r_data);
|
|
|
}
|
|
|
|
|
|
}
|