release
Showing
2 changed files
with
26 additions
and
90 deletions
... | @@ -5,7 +5,6 @@ namespace App\Http\Controllers\Release; | ... | @@ -5,7 +5,6 @@ namespace App\Http\Controllers\Release; |
5 | use App\Helper\CacheKeyTools; | 5 | use App\Helper\CacheKeyTools; |
6 | use App\Helper\Response; | 6 | use App\Helper\Response; |
7 | use App\Http\Controllers\Controller; | 7 | use App\Http\Controllers\Controller; |
8 | use App\Models\Legal\Channel; | ||
9 | use GuzzleHttp\Client; | 8 | use GuzzleHttp\Client; |
10 | use Illuminate\Support\Facades\Cache; | 9 | use Illuminate\Support\Facades\Cache; |
11 | use Illuminate\Support\Facades\Log; | 10 | use Illuminate\Support\Facades\Log; |
... | @@ -18,12 +17,14 @@ class BaseController extends Controller | ... | @@ -18,12 +17,14 @@ class BaseController extends Controller |
18 | */ | 17 | */ |
19 | protected $domain, $appId; | 18 | protected $domain, $appId; |
20 | private $appSecret; | 19 | private $appSecret; |
20 | protected $client; | ||
21 | 21 | ||
22 | public function __construct() | 22 | public function __construct() |
23 | { | 23 | { |
24 | $this->domain = env('TME_DOMAIN','https://openapi-sit.tencentmusic.com'); | 24 | $this->domain = env('TME_DOMAIN','https://openapi-sit.tencentmusic.com'); |
25 | $this->appId = env('TME_APPID','47820741'); | 25 | $this->appId = env('TME_APPID','47820741'); |
26 | $this->appSecret = env('TME_APPSECRET','nPWFDDHKYCP4bUzoq9zyaJQx4ltQqMSs'); | 26 | $this->appSecret = env('TME_APPSECRET','nPWFDDHKYCP4bUzoq9zyaJQx4ltQqMSs'); |
27 | $this->client = new Client(['verify'=>false]); | ||
27 | } | 28 | } |
28 | 29 | ||
29 | /**获取accessToken | 30 | /**获取accessToken |
... | @@ -34,8 +35,7 @@ class BaseController extends Controller | ... | @@ -34,8 +35,7 @@ class BaseController extends Controller |
34 | $url = rtrim($this->domain,'/').'/oauth2/token'; | 35 | $url = rtrim($this->domain,'/').'/oauth2/token'; |
35 | $data = ['appId'=>$this->appId,'appSecret'=>$this->appSecret]; | 36 | $data = ['appId'=>$this->appId,'appSecret'=>$this->appSecret]; |
36 | try { | 37 | try { |
37 | $client = new Client(['verify'=>false]); //实体公钥['verify'=>'/path/to/public.pem'] | 38 | $response = $this->client->request('POST', $url, ['json' => $data]); |
38 | $response = $client->request('POST', $url, ['json' => $data]); | ||
39 | 39 | ||
40 | $respArr = json_decode($response->getBody()->getContents(), true); | 40 | $respArr = json_decode($response->getBody()->getContents(), true); |
41 | Log::channel('api')->info(__METHOD__, $respArr); | 41 | Log::channel('api')->info(__METHOD__, $respArr); |
... | @@ -53,26 +53,6 @@ class BaseController extends Controller | ... | @@ -53,26 +53,6 @@ class BaseController extends Controller |
53 | 53 | ||
54 | } | 54 | } |
55 | 55 | ||
56 | /** ascii码从小到大排序 | ||
57 | * @param array $params | ||
58 | * @return bool|string | ||
59 | */ | ||
60 | function ascSort($params = array()) | ||
61 | { | ||
62 | if (!empty($params)) { | ||
63 | $p = ksort($params); | ||
64 | if ($p) { | ||
65 | $str = ''; | ||
66 | foreach ($params as $k => $val) { | ||
67 | $str .= $k . '=' . $val . '&'; | ||
68 | } | ||
69 | $strs = rtrim($str, '&'); | ||
70 | return $strs; | ||
71 | } | ||
72 | } | ||
73 | return false; | ||
74 | } | ||
75 | |||
76 | /** | 56 | /** |
77 | * 重组请求数据,返回headers和json | 57 | * 重组请求数据,返回headers和json |
78 | * @param string $uri | 58 | * @param string $uri |
... | @@ -80,44 +60,43 @@ class BaseController extends Controller | ... | @@ -80,44 +60,43 @@ class BaseController extends Controller |
80 | * @param bool $isLocal | 60 | * @param bool $isLocal |
81 | * @return array | 61 | * @return array |
82 | */ | 62 | */ |
83 | private function parseData(string $uri, array $reqData, bool $isLocal = true) | 63 | private function parseData(string $uri, array $params) |
84 | { | 64 | { |
85 | if (!$accessToken = Cache::get(CacheKeyTools::tmeAccessToken())) { | 65 | if (!$accessToken = Cache::get(CacheKeyTools::tmeAccessToken())) { |
86 | $accessToken = $this->getToken(); | 66 | $accessToken = $this->getToken(); |
87 | } | 67 | } |
88 | if ($isLocal) { | ||
89 | $data_file = database_path('Release/'.last(explode("/",$uri)).'.query.php'); | ||
90 | $params = include("$data_file"); | ||
91 | $params['tmeBrandId'] = 105737; | ||
92 | } else { | ||
93 | $params = $reqData; | ||
94 | } | ||
95 | $heaers['appId'] = $this->appId; | 68 | $heaers['appId'] = $this->appId; |
96 | $heaers['accessToken'] = $accessToken; | 69 | $heaers['accessToken'] = $accessToken; |
97 | $heaers['timestamp'] = (string)date('YmdHis'); | 70 | $heaers['timestamp'] = (string)date('YmdHis'); |
98 | $heaers['traceId'] = 'md5'; | 71 | $heaers['traceId'] = (string)'1'; |
99 | 72 | $heaers['sign'] = $this->getSign($heaers,$params); | |
100 | return $this->signData($params); | 73 | $heaers['signMethod'] = 'md5'; |
74 | return $heaers; | ||
101 | } | 75 | } |
102 | 76 | ||
103 | /** | 77 | /** |
104 | * 请求接口 | 78 | * 请求接口 |
105 | * @throws \GuzzleHttp\Exception\GuzzleException | 79 | * @throws \GuzzleHttp\Exception\GuzzleException |
106 | */ | 80 | */ |
107 | protected function doApi(string $uri, array $reqData = [], string $method = 'POST') | 81 | protected function doApi(string $uri, array $reqData = [], string $method = 'POST', bool $isLocal = true) |
108 | { | 82 | { |
109 | $this->getSign(); | ||
110 | $url = rtrim($this->domain,'/').'/'.ltrim($uri,'/'); | 83 | $url = rtrim($this->domain,'/').'/'.ltrim($uri,'/'); |
111 | $data = $this->parseData($uri, $reqData); | ||
112 | try { | 84 | try { |
113 | $client = new Client(['verify'=>false]); //实体公钥['verify'=>'/path/to/public.pem'] | 85 | if ($isLocal) { |
86 | $data_file = database_path('Release/'.last(explode("/",$uri)).'.query.php'); | ||
87 | $params = include("$data_file"); | ||
88 | $params['tmeBrandId'] = 105737; | ||
89 | } else { | ||
90 | $params = $reqData; | ||
91 | } | ||
92 | $headers = $this->parseData($uri, $params); | ||
114 | switch (strtoupper($method)) { | 93 | switch (strtoupper($method)) { |
115 | case 'GET': | 94 | case 'GET': |
116 | $response = $client->request('GET', $url, ['query' => $data]); | 95 | $response = $this->client->request('GET', $url, ['query' => $params,'headers'=>$headers]); |
117 | break; | 96 | break; |
118 | case 'POST': | 97 | case 'POST': |
119 | default: | 98 | default: |
120 | $response = $client->request('POST', $url, ['json' => $data]); | 99 | $response = $this->client->request('POST', $url, ['json' => $params,'headers'=>$headers]); |
121 | break; | 100 | break; |
122 | } | 101 | } |
123 | $respArr = json_decode($response->getBody()->getContents(), true); | 102 | $respArr = json_decode($response->getBody()->getContents(), true); |
... | @@ -141,24 +120,9 @@ class BaseController extends Controller | ... | @@ -141,24 +120,9 @@ class BaseController extends Controller |
141 | * @param array $array | 120 | * @param array $array |
142 | * @return array | 121 | * @return array |
143 | */ | 122 | */ |
144 | protected function getSign() | 123 | protected function getSign($heaers,$params) |
145 | { | 124 | { |
146 | $accessToken = $this->getToken(); | 125 | $params = [ |
147 | if (!$accessToken = Cache::get(CacheKeyTools::tmeAccessToken())) { | ||
148 | $accessToken = $this->getToken(); | ||
149 | } | ||
150 | // if ($isLocal) { | ||
151 | // $data_file = database_path('Release/'.last(explode("/",$uri)).'.query.php'); | ||
152 | // $params = include("$data_file"); | ||
153 | // } else { | ||
154 | // $params = $reqData; | ||
155 | // } | ||
156 | $heaers['appId'] = $this->appId; | ||
157 | $heaers['accessToken'] = $accessToken; | ||
158 | $heaers['timestamp'] = (string)date('YmdHis'); | ||
159 | $heaers['traceId'] = 'md5'; | ||
160 | |||
161 | $common_params = [ | ||
162 | "batchId" => "8934234012312323235", | 126 | "batchId" => "8934234012312323235", |
163 | "phone" => "130****0815", | 127 | "phone" => "130****0815", |
164 | "templateId" => "M000198", | 128 | "templateId" => "M000198", |
... | @@ -172,7 +136,7 @@ class BaseController extends Controller | ... | @@ -172,7 +136,7 @@ class BaseController extends Controller |
172 | "tenant"=>"musician", | 136 | "tenant"=>"musician", |
173 | "accountId"=>6793497 | 137 | "accountId"=>6793497 |
174 | ]; | 138 | ]; |
175 | $common_params = array_merge($common_params,$heaers); | 139 | $common_params = array_merge($params,$heaers); |
176 | ksort($common_params); | 140 | ksort($common_params); |
177 | $params = ''; | 141 | $params = ''; |
178 | foreach ($common_params as $k=>$v) | 142 | foreach ($common_params as $k=>$v) |
... | @@ -219,35 +183,4 @@ class BaseController extends Controller | ... | @@ -219,35 +183,4 @@ class BaseController extends Controller |
219 | } | 183 | } |
220 | return $array; | 184 | return $array; |
221 | } | 185 | } |
222 | |||
223 | /** | ||
224 | * 获取签名和去空的参数 | ||
225 | * @param array $array | ||
226 | * @return array | ||
227 | */ | ||
228 | protected function signData(array $array) | ||
229 | { | ||
230 | $common_params = [ | ||
231 | 'cp_id' => $this->cp_id | ||
232 | ]; | ||
233 | $param_arr = array_merge($common_params,$array); | ||
234 | ksort($param_arr); | ||
235 | $params = ''; | ||
236 | $signData = []; | ||
237 | foreach ($param_arr as $k=>$v) | ||
238 | { | ||
239 | if ('' === $v || null === $v || [] === $v) { | ||
240 | continue; | ||
241 | } if (is_array($v)) { | ||
242 | $params .= $k . '=' . json_encode($this->handleSubArrayNumber($v)) . '&'; | ||
243 | } else { | ||
244 | $params .= $k . '=' . $v . '&'; | ||
245 | } | ||
246 | $signData[$k] = $v; | ||
247 | } | ||
248 | $params = trim($params,'&'); | ||
249 | $signData['sign'] = strtoupper(md5($params.$this->key)); | ||
250 | return $signData; | ||
251 | } | ||
252 | |||
253 | } | 186 | } | ... | ... |
-
Please register or sign in to post a comment