Commit 5019a677 5019a677336472f1ba3430cbb7c48243c9a9bbb1 by mengfan.xie

release

1 parent f20c1efe
......@@ -5,7 +5,6 @@ namespace App\Http\Controllers\Release;
use App\Helper\CacheKeyTools;
use App\Helper\Response;
use App\Http\Controllers\Controller;
use App\Models\Legal\Channel;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
......@@ -18,12 +17,14 @@ class BaseController extends Controller
*/
protected $domain, $appId;
private $appSecret;
protected $client;
public function __construct()
{
$this->domain = env('TME_DOMAIN','https://openapi-sit.tencentmusic.com');
$this->appId = env('TME_APPID','47820741');
$this->appSecret = env('TME_APPSECRET','nPWFDDHKYCP4bUzoq9zyaJQx4ltQqMSs');
$this->client = new Client(['verify'=>false]);
}
/**获取accessToken
......@@ -34,8 +35,7 @@ class BaseController extends Controller
$url = rtrim($this->domain,'/').'/oauth2/token';
$data = ['appId'=>$this->appId,'appSecret'=>$this->appSecret];
try {
$client = new Client(['verify'=>false]); //实体公钥['verify'=>'/path/to/public.pem']
$response = $client->request('POST', $url, ['json' => $data]);
$response = $this->client->request('POST', $url, ['json' => $data]);
$respArr = json_decode($response->getBody()->getContents(), true);
Log::channel('api')->info(__METHOD__, $respArr);
......@@ -53,26 +53,6 @@ class BaseController extends Controller
}
/** ascii码从小到大排序
* @param array $params
* @return bool|string
*/
function ascSort($params = array())
{
if (!empty($params)) {
$p = ksort($params);
if ($p) {
$str = '';
foreach ($params as $k => $val) {
$str .= $k . '=' . $val . '&';
}
$strs = rtrim($str, '&');
return $strs;
}
}
return false;
}
/**
* 重组请求数据,返回headers和json
* @param string $uri
......@@ -80,44 +60,43 @@ class BaseController extends Controller
* @param bool $isLocal
* @return array
*/
private function parseData(string $uri, array $reqData, bool $isLocal = true)
private function parseData(string $uri, array $params)
{
if (!$accessToken = Cache::get(CacheKeyTools::tmeAccessToken())) {
$accessToken = $this->getToken();
}
if ($isLocal) {
$data_file = database_path('Release/'.last(explode("/",$uri)).'.query.php');
$params = include("$data_file");
$params['tmeBrandId'] = 105737;
} else {
$params = $reqData;
}
$heaers['appId'] = $this->appId;
$heaers['accessToken'] = $accessToken;
$heaers['timestamp'] = (string)date('YmdHis');
$heaers['traceId'] = 'md5';
return $this->signData($params);
$heaers['traceId'] = (string)'1';
$heaers['sign'] = $this->getSign($heaers,$params);
$heaers['signMethod'] = 'md5';
return $heaers;
}
/**
* 请求接口
* @throws \GuzzleHttp\Exception\GuzzleException
*/
protected function doApi(string $uri, array $reqData = [], string $method = 'POST')
protected function doApi(string $uri, array $reqData = [], string $method = 'POST', bool $isLocal = true)
{
$this->getSign();
$url = rtrim($this->domain,'/').'/'.ltrim($uri,'/');
$data = $this->parseData($uri, $reqData);
try {
$client = new Client(['verify'=>false]); //实体公钥['verify'=>'/path/to/public.pem']
if ($isLocal) {
$data_file = database_path('Release/'.last(explode("/",$uri)).'.query.php');
$params = include("$data_file");
$params['tmeBrandId'] = 105737;
} else {
$params = $reqData;
}
$headers = $this->parseData($uri, $params);
switch (strtoupper($method)) {
case 'GET':
$response = $client->request('GET', $url, ['query' => $data]);
$response = $this->client->request('GET', $url, ['query' => $params,'headers'=>$headers]);
break;
case 'POST':
default:
$response = $client->request('POST', $url, ['json' => $data]);
$response = $this->client->request('POST', $url, ['json' => $params,'headers'=>$headers]);
break;
}
$respArr = json_decode($response->getBody()->getContents(), true);
......@@ -141,24 +120,9 @@ class BaseController extends Controller
* @param array $array
* @return array
*/
protected function getSign()
protected function getSign($heaers,$params)
{
$accessToken = $this->getToken();
if (!$accessToken = Cache::get(CacheKeyTools::tmeAccessToken())) {
$accessToken = $this->getToken();
}
// if ($isLocal) {
// $data_file = database_path('Release/'.last(explode("/",$uri)).'.query.php');
// $params = include("$data_file");
// } else {
// $params = $reqData;
// }
$heaers['appId'] = $this->appId;
$heaers['accessToken'] = $accessToken;
$heaers['timestamp'] = (string)date('YmdHis');
$heaers['traceId'] = 'md5';
$common_params = [
$params = [
"batchId" => "8934234012312323235",
"phone" => "130****0815",
"templateId" => "M000198",
......@@ -172,7 +136,7 @@ class BaseController extends Controller
"tenant"=>"musician",
"accountId"=>6793497
];
$common_params = array_merge($common_params,$heaers);
$common_params = array_merge($params,$heaers);
ksort($common_params);
$params = '';
foreach ($common_params as $k=>$v)
......@@ -219,35 +183,4 @@ class BaseController extends Controller
}
return $array;
}
/**
* 获取签名和去空的参数
* @param array $array
* @return array
*/
protected function signData(array $array)
{
$common_params = [
'cp_id' => $this->cp_id
];
$param_arr = array_merge($common_params,$array);
ksort($param_arr);
$params = '';
$signData = [];
foreach ($param_arr as $k=>$v)
{
if ('' === $v || null === $v || [] === $v) {
continue;
} if (is_array($v)) {
$params .= $k . '=' . json_encode($this->handleSubArrayNumber($v)) . '&';
} else {
$params .= $k . '=' . $v . '&';
}
$signData[$k] = $v;
}
$params = trim($params,'&');
$signData['sign'] = strtoupper(md5($params.$this->key));
return $signData;
}
}
......
<?php
return [
'originalCompayName' => '海葵测试艺人02',//艺人名
'cmsAlbumId' => 123,
'albumName'=>'专辑名',
'version'=>'dj',
'translationName'=>''
];
......