From 000c3281612038c76fe380fbe1fd016752124b17 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 19 Mar 2018 15:34:00 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E5=A2=9E=E5=8A=A0=E5=8F=88?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E7=BD=91=E9=A1=B5=E6=8E=88=E6=9D=83=E5=85=BC?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/service/WechatService.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/extend/service/WechatService.php b/extend/service/WechatService.php index c079bf1d5..311a8a4ec 100644 --- a/extend/service/WechatService.php +++ b/extend/service/WechatService.php @@ -104,19 +104,22 @@ class WechatService $wechat = self::oauth(); if (request()->get('state') !== $appid) { $snsapi = empty($fullMode) ? 'snsapi_base' : 'snsapi_userinfo'; - $OauthUrl = $wechat->getOauthRedirect(request()->url(true), $appid, $snsapi); + $baseUrl = request()->url(true); + $param = (strpos($baseUrl, '?') !== false ? '&' : '?') . 'rcode=' . encode($baseUrl); + $OauthUrl = $wechat->getOauthRedirect($baseUrl . $param, $appid, $snsapi); redirect($OauthUrl, [], 301)->send(); } $token = $wechat->getOauthAccessToken(); if (isset($token['openid'])) { session("{$appid}_openid", $openid = $token['openid']); - if (empty($fullMode)) { - return ['openid' => $openid, 'fansinfo' => []]; + if (empty($fullMode) && request()->get('rcode')) { + redirect(decode(request()->get('rcode')))->send(); } session("{$appid}_fansinfo", $fansinfo = $wechat->getUserInfo($token['access_token'], $openid)); empty($fansinfo) || FansService::set($fansinfo); } - return ['openid' => $openid, 'fansinfo' => $fansinfo]; + redirect(decode(request()->get('rcode')))->send(); + break; case 'thr': default: $service = self::instance('wechat');