getRedirectUrl($url); //记录三方日志 platformLog(['url' => $url], $redirect_url, 'wechat_oauth_get_redirect_url_' . UID); return sendSuccessMessage([ 'redirect_url' => $redirect_url ]); } /** * Auth2.0 接收用户授权后的状态,并获取用户信息 * @param string $code 授权码 * @date 2020-08-18 */ public function user() { $code = input('post.code'); $weixin_param = get_weixin_config(); $wechat_user_model = new WechatUser(); $jwt_class = new \jwt\Jwt(); $auth_class = new \tencent\wechat\weixin\Auth($weixin_param); $result = $auth_class->getUserInfoByCode($code); $result->getTokenResponse(); $wechat_data = $result->getRaw(); platformLog(['code' => $code], $wechat_data, 'wechat_oauth_get_user_' . UID); // 更新微信用户信息 $user_wechat_data = [ 'uid' => UID, 'openid' => $wechat_data['openid'], 'nickname' => $wechat_data['nickname'], 'headimgurl' => $wechat_data['headimgurl'], 'sex' => $wechat_data['sex'], 'province' => $wechat_data['province'], 'city' => $wechat_data['city'], 'country' => $wechat_data['country'], 'language' => $wechat_data['language'], 'unionid' => isset($wechat_data['unionid']) ? $wechat_data['unionid'] : '' ]; $res = $wechat_user_model->updateUser($user_wechat_data); //获取用户信息 $wechat_user = $wechat_user_model->getOneData([ ['openid', '=', $user_wechat_data['openid']] ], 'id,user_id,openid'); $info = [ 'uid' => UID, 'openid' => $wechat_user['openid'], 'wechat_user_id' => $wechat_user['id'], 'user_id' => $wechat_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); } }