下载授权书归档
Showing
1 changed file
with
54 additions
and
39 deletions
... | @@ -13,6 +13,13 @@ use Illuminate\Support\Facades\Log; | ... | @@ -13,6 +13,13 @@ use Illuminate\Support\Facades\Log; |
13 | class BaseController extends Controller | 13 | class BaseController extends Controller |
14 | { | 14 | { |
15 | /** | 15 | /** |
16 | * @var string[] | ||
17 | */ | ||
18 | protected $filterTmeBrandIdUri = [ | ||
19 | 'queryAuthResources' | ||
20 | ]; | ||
21 | |||
22 | /** | ||
16 | * 基础变量 | 23 | * 基础变量 |
17 | * @var string | 24 | * @var string |
18 | */ | 25 | */ |
... | @@ -54,24 +61,30 @@ class BaseController extends Controller | ... | @@ -54,24 +61,30 @@ class BaseController extends Controller |
54 | 61 | ||
55 | /** | 62 | /** |
56 | * 重组请求数据,返回headers | 63 | * 重组请求数据,返回headers |
57 | * @return array | 64 | * @param array $params |
65 | * @return mixed | ||
58 | */ | 66 | */ |
59 | private function parseHeaders(array $params) | 67 | private function parseHeaders(array $params) |
60 | { | 68 | { |
61 | if (!$accessToken = Cache::get(CacheKeyTools::tmeAccessToken())) { | 69 | if (!$accessToken = Cache::get(CacheKeyTools::tmeAccessToken())) {$accessToken = $this->getToken();} |
62 | $accessToken = $this->getToken(); | 70 | |
63 | } | 71 | $headers['appId'] = $this->appId; |
64 | $heaers['appId'] = $this->appId; | 72 | $headers['accessToken'] = $accessToken; |
65 | $heaers['accessToken'] = $accessToken; | 73 | $headers['timestamp'] = (string)date('YmdHis'); |
66 | $heaers['timestamp'] = (string)date('YmdHis'); | 74 | $headers['traceId'] = 'hk_'.(string)time(); |
67 | $heaers['traceId'] = 'hk_'.(string)time(); | 75 | $headers['signMethod'] = 'md5'; |
68 | $heaers['signMethod'] = 'md5'; | 76 | $headers['sign'] = $this->getSign($headers, $params); |
69 | $heaers['sign'] = $this->getSign($heaers,$params); | 77 | |
70 | return $heaers; | 78 | return $headers; |
71 | } | 79 | } |
72 | 80 | ||
73 | /** | 81 | /** |
74 | * 请求接口 | 82 | * 请求接口 |
83 | * @param string $uri | ||
84 | * @param array $reqData | ||
85 | * @param string $method | ||
86 | * @param bool $isLocal | ||
87 | * @return array | ||
75 | * @throws \GuzzleHttp\Exception\GuzzleException | 88 | * @throws \GuzzleHttp\Exception\GuzzleException |
76 | */ | 89 | */ |
77 | protected function doApi(string $uri, array $reqData = [], string $method = 'POST', bool $isLocal = false) | 90 | protected function doApi(string $uri, array $reqData = [], string $method = 'POST', bool $isLocal = false) |
... | @@ -85,29 +98,18 @@ class BaseController extends Controller | ... | @@ -85,29 +98,18 @@ class BaseController extends Controller |
85 | } else { | 98 | } else { |
86 | $params = $reqData; | 99 | $params = $reqData; |
87 | } | 100 | } |
88 | $params['tmeBrandId'] = $params['tmeBrandId'] ?? 8888888; | ||
89 | Log::channel('api')->info(__METHOD__, ['token'=>$token, 'url'=>$url, 'params'=>$params]); | ||
90 | 101 | ||
91 | $headers = $this->parseHeaders($params); | 102 | if (!$this->filterTmeBrandId($uri)) { |
92 | switch (strtoupper($method)) { | 103 | $params['tmeBrandId'] = $params['tmeBrandId'] ?? 8888888; |
93 | case 'GET': | 104 | } |
94 | |||
95 | /* | ||
96 | $data = [ | ||
97 | "businessId"=>194159, | ||
98 | "queryType"=>"album", | ||
99 | "brandId"=>7389 | ||
100 | ]; | ||
101 | */ | ||
102 | 105 | ||
106 | $headers = $this->parseHeaders($params); | ||
103 | 107 | ||
104 | //Log::channel('api')->info(__METHOD__.'get请求参数', ['token'=>$token, 'url'=>$url, 'data'=>$data]); | 108 | Log::channel('api')->info(__METHOD__, ['token'=>$token, 'url'=>$url, 'params'=>$params]); |
105 | $response = $this->client->request('GET', $url, ['query' => [ | ||
106 | "businessId"=>(int)$params["businessId"], | ||
107 | "queryType"=>$params["queryType"], | ||
108 | "brandId"=>(int)$params["brandId"] | ||
109 | ],'headers'=>$headers]); | ||
110 | 109 | ||
110 | switch (strtoupper($method)) { | ||
111 | case 'GET': | ||
112 | $response = $this->client->request('GET', $url, ['query' => $params, 'headers'=>$headers]); | ||
111 | break; | 113 | break; |
112 | case 'POST': | 114 | case 'POST': |
113 | default: | 115 | default: |
... | @@ -117,33 +119,48 @@ class BaseController extends Controller | ... | @@ -117,33 +119,48 @@ class BaseController extends Controller |
117 | $respArr = json_decode($response->getBody()->getContents(), true); | 119 | $respArr = json_decode($response->getBody()->getContents(), true); |
118 | 120 | ||
119 | Log::channel('api')->info(__METHOD__, ['token'=>$token,'respArr'=>$respArr]); | 121 | Log::channel('api')->info(__METHOD__, ['token'=>$token,'respArr'=>$respArr]); |
122 | |||
120 | if ($respArr['code'] == '0'){ | 123 | if ($respArr['code'] == '0'){ |
121 | return [(int)$respArr['code'],$respArr['message'] ?? '操作失败',$respArr['data'] ?? []]; | 124 | return [(int)$respArr['code'],$respArr['message'] ?? '操作失败',$respArr['data'] ?? []]; |
122 | } else { | 125 | } else { |
123 | return [(int)$respArr['code'],$respArr['message'] ?? '操作失败',[$respArr['traceId']]]; | 126 | return [(int)$respArr['code'],$respArr['message'] ?? '操作失败',[$respArr['traceId']]]; |
124 | } | 127 | } |
128 | |||
125 | } catch (\Exception $e) { | 129 | } catch (\Exception $e) { |
126 | Log::channel('api')->error(__METHOD__, ['token'=>$token, 'msg'=>$e->getMessage()]); | 130 | Log::channel('api')->error(__METHOD__, ['token'=>$token, 'msg'=>$e->getMessage()]); |
127 | return [-1,'接口请求失败',[]]; | 131 | return [-1,'接口请求失败',[]]; |
128 | } | 132 | } |
129 | } | 133 | } |
130 | 134 | ||
135 | /** | ||
136 | * 过滤tmeBrandId字段 | ||
137 | * @param $uri | ||
138 | * @return bool | ||
139 | */ | ||
140 | protected function filterTmeBrandId($uri): bool | ||
141 | { | ||
142 | foreach ($this->filterTmeBrandIdUri as $item) { | ||
143 | if (strpos($uri, $item) !== false) { | ||
144 | return true; | ||
145 | } | ||
146 | } | ||
147 | return false; | ||
148 | } | ||
131 | 149 | ||
132 | /** | 150 | /** |
133 | * 获取签名和去空的参数 | 151 | * 获取签名和去空的参数 |
134 | * @param array $array | 152 | * @param $headers |
153 | * @param $params | ||
154 | * @return string | ||
135 | */ | 155 | */ |
136 | protected function getSign($heaers,$params) | 156 | protected function getSign($headers, $params) |
137 | { | 157 | { |
138 | $common_params = array_merge($params,$heaers); | 158 | $common_params = array_merge($params, $headers); |
139 | |||
140 | unset($common_params['tmeBrandId']); | ||
141 | 159 | ||
160 | //排序 | ||
142 | ksort($common_params); | 161 | ksort($common_params); |
143 | $params = ''; | 162 | $params = ''; |
144 | 163 | ||
145 | //print_r($common_params); | ||
146 | |||
147 | foreach ($common_params as $k=>$v) | 164 | foreach ($common_params as $k=>$v) |
148 | { | 165 | { |
149 | if ('' === $v || null === $v || [] === $v) { | 166 | if ('' === $v || null === $v || [] === $v) { |
... | @@ -156,8 +173,6 @@ class BaseController extends Controller | ... | @@ -156,8 +173,6 @@ class BaseController extends Controller |
156 | } | 173 | } |
157 | } | 174 | } |
158 | 175 | ||
159 | |||
160 | // Log::channel('api')->info($params); | ||
161 | return strtoupper(md5($this->appSecret . $params . $this->appSecret)); | 176 | return strtoupper(md5($this->appSecret . $params . $this->appSecret)); |
162 | } | 177 | } |
163 | 178 | ... | ... |
-
Please register or sign in to post a comment