Commit 5019a677 5019a677336472f1ba3430cbb7c48243c9a9bbb1 by mengfan.xie

release

1 parent f20c1efe
...@@ -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 }
......
1 <?php 1 <?php
2 return [ 2 return [
3 'originalCompayName' => '海葵测试艺人02',//艺人名 3 'cmsAlbumId' => 123,
4 'albumName'=>'专辑名',
5 'version'=>'dj',
6 'translationName'=>''
4 ]; 7 ];
......