From 67f238ef7cca6b1335f842bf0da4b6867fc29f47 Mon Sep 17 00:00:00 2001 From: Anyon Date: Sat, 14 Dec 2019 15:55:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=AE=E4=BF=A1=E7=BD=91?= =?UTF-8?q?=E9=A1=B5=E6=8E=88=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/wechat/service/WechatService.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/wechat/service/WechatService.php b/app/wechat/service/WechatService.php index aac157bee..80849fb36 100644 --- a/app/wechat/service/WechatService.php +++ b/app/wechat/service/WechatService.php @@ -16,6 +16,7 @@ namespace app\wechat\service; use think\admin\Service; +use think\exception\HttpResponseException; /** * Class WechatService @@ -221,28 +222,28 @@ class WechatService extends Service $snsapi = empty($isfull) ? 'snsapi_base' : 'snsapi_userinfo'; $param = (strpos($source, '?') !== false ? '&' : '?') . 'rcode=' . encode($source); $oauthurl = $wechat->getOauthRedirect($source . $param, $appid, $snsapi); - if ($redirect) redirect($oauthurl, 301)->send(); + if ($redirect) throw new HttpResponseException(redirect($oauthurl, 301)); exit("window.location.href='{$oauthurl}'"); } if (($token = $wechat->getOauthAccessToken()) && isset($token['openid'])) { $this->app->session->set("{$appid}_openid", $openid = $token['openid']); if (empty($isfull) && input('rcode')) { - redirect(enbase64url(input('rcode')), 301)->send(); + throw new HttpResponseException(redirect(enbase64url(input('rcode')), 301)); } $this->app->session->set("{$appid}_fansinfo", $fansinfo = $wechat->getUserInfo($token['access_token'], $openid)); empty($fansinfo) || FansService::instance()->set($fansinfo); } - redirect(enbase64url(input('rcode')), 301)->send(); + throw new HttpResponseException(redirect(enbase64url(input('rcode')), 301)); } else { $result = self::ThinkAdminConfig()->oauth($this->app->session->getId(), $source, $isfull); $this->app->session->set("{$appid}_openid", $openid = $result['openid']); $this->app->session->set("{$appid}_fansinfo", $fansinfo = $result['fans']); if ((empty($isfull) && !empty($openid)) || (!empty($isfull) && !empty($openid) && !empty($fansinfo))) { - empty($fansinfo) || FansService::instance()->set($fansinfo); + if (!empty($fansinfo)) FansService::instance()->set($fansinfo); return ['openid' => $openid, 'fansinfo' => $fansinfo]; } if ($redirect && !empty($result['url'])) { - redirect($result['url'], 301)->send(); + throw new HttpResponseException(redirect($result['url'], 301)); } exit("window.location.href='{$result['url']}'"); }