下载授权书归档
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