瀏覽代碼

GET改直接跳转

刘忠健 2 年之前
父節點
當前提交
d7822754d3
共有 1 個文件被更改,包括 25 次插入7 次删除
  1. 25 7
      api/app/api/controller/WechatMpAuth.php

+ 25 - 7
api/app/api/controller/WechatMpAuth.php

@@ -47,10 +47,10 @@ class WechatMpAuth extends Base
         $callback = trim(urldecode2(input("callback")));//回调地址
         $scope = input("scope", "snsapi_userinfo");//snsapi_userinfo   snsapi_base
         $remark = trim(urldecode2(input("remark", "")));//input("remark", "");//备注
-        $method = input("method", "get");//回调方式
+        $method = input("method", "post");//回调方式
         $wechatcode = input("wechatcode");
         $wechatConfig = WechatConfig::getEasyWechatConfig($wechatcode);
-        Log::record("wechatConfig:".json_encode($wechatConfig,JSON_UNESCAPED_UNICODE),"debug");
+        Log::record("wechatConfig:" . json_encode($wechatConfig, JSON_UNESCAPED_UNICODE), "debug");
         $app = Factory::officialAccount($wechatConfig);
         $param = [
             "callback" => urlencode2($callback),
@@ -61,6 +61,7 @@ class WechatMpAuth extends Base
         $callback2 = (string)url('WechatMpAuth/callback', $param, "", true);
         $response = $app->oauth->scopes([$scope])->redirect($callback2);
         header("Location:$response");
+        return "";
         //print_r($response);
 //        $response->send();
     }
@@ -70,7 +71,7 @@ class WechatMpAuth extends Base
     {
         $param = request()->param();
         $callback = trim(urldecode2(input("callback")));
-        $method = input("method", "get");
+        $method = input("method", "post");
         $remark = input("remark", "");
         View::assign("method", $method);
         View::assign("callback", $callback);
@@ -78,12 +79,12 @@ class WechatMpAuth extends Base
         $wechatcode = input("wechatcode");
         View::assign("wechatcode", $wechatcode);
         $wechatConfig = WechatConfig::getEasyWechatConfig($wechatcode);
-        Log::record("wechatConfig:".json_encode($wechatConfig,JSON_UNESCAPED_UNICODE),"debug");
+        Log::record("wechatConfig:" . json_encode($wechatConfig, JSON_UNESCAPED_UNICODE), "debug");
         $app = Factory::officialAccount($wechatConfig);
         $oauth = $app->oauth;
         $code = input("code");
         $user = $oauth->userFromCode($code);
-        Log::record("user:".json_encode($user,JSON_UNESCAPED_UNICODE),"debug");
+        Log::record("user:" . json_encode($user, JSON_UNESCAPED_UNICODE), "debug");
         $userArray = [
             'openid' => $user->getId(),
             'nickname' => $user->getNickname(),
@@ -91,11 +92,28 @@ class WechatMpAuth extends Base
             'avatar' => $user->getAvatar(),
             'raw' => $user->getRaw(),
         ];
-        Log::record("userArray:".json_encode($userArray,JSON_UNESCAPED_UNICODE),"debug");
+        Log::record("userArray:" . json_encode($userArray, JSON_UNESCAPED_UNICODE), "debug");
         $userJson = json_encode($userArray, JSON_UNESCAPED_UNICODE);
         $userinfo = base64_encode($userJson);
-        Log::record("userinfo base64:".$userinfo,"debug");
+        Log::record("userinfo base64:" . $userinfo, "debug");
         View::assign("userinfo", $userinfo);
+        if (strtolower($method) == "get") {
+            $callback = $this->urlAddParam($callback, "remark", $remark);
+            $callback = $this->urlAddParam($callback, "wechatcode", $wechatcode);
+            $callback = $this->urlAddParam($callback, "userinfo", $userinfo);
+            header("Location:$callback");
+            return "";
+        }
         return View::fetch();
     }
+
+    private function urlAddParam($url, $key, $value)
+    {
+        if (strpos($url, "?") === false) {
+            $url .= "?$key=" . $value;
+        } else {
+            $url .= "&$key=" . $value;
+        }
+        return $url;
+    }
 }