Commit 4f52db95 4f52db95e97eaf8947e776b4cca0374bf1f1a35b by lemon

下载授权书归档

1 parent 462a1cec
...@@ -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
......