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