|
@@ -7,58 +7,26 @@ class Model_apittv1 extends Lin_Model {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- private function sign($url,$header,$body,$secret){
|
|
|
|
|
- //解析URL
|
|
|
|
|
- $urlParts = parse_url($url);
|
|
|
|
|
-
|
|
|
|
|
- //获取路径
|
|
|
|
|
- $path = $urlParts['path']??'';
|
|
|
|
|
-
|
|
|
|
|
- //解析查询参数
|
|
|
|
|
- $queryParams = [];
|
|
|
|
|
- if(isset($urlParts['query'])){
|
|
|
|
|
- parse_str($urlParts['query'],$queryParams);
|
|
|
|
|
- }
|
|
|
|
|
- // 移除sign和access_token参数
|
|
|
|
|
- unset($queryParams['sign']);
|
|
|
|
|
- unset($queryParams['access_token']);
|
|
|
|
|
-
|
|
|
|
|
- // 按参数名排序
|
|
|
|
|
- ksort($queryParams);
|
|
|
|
|
-
|
|
|
|
|
- // 构建参数字符串
|
|
|
|
|
- $parameterStr = $path;
|
|
|
|
|
- foreach ($queryParams as $key => $value) {
|
|
|
|
|
- $parameterStr .= $key . $value;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ private function sign($method,$query,$body,$secret){
|
|
|
|
|
+
|
|
|
|
|
+ unset($query['sign']);
|
|
|
|
|
+ unset($query['access_token']);
|
|
|
|
|
|
|
|
- // 检查Content-Type,如果不是multipart/form-data,则追加body
|
|
|
|
|
- $contentType = $this->getHeader($header, 'Content-Type');
|
|
|
|
|
- if (stripos($contentType, 'multipart/form-data') === false && !empty($body)) {
|
|
|
|
|
- $parameterStr .= $body;
|
|
|
|
|
|
|
+ $input = $method;
|
|
|
|
|
+ ksort($query);
|
|
|
|
|
+ foreach ($query as $key => $value) {
|
|
|
|
|
+ $input.= $key.$value;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // 用secret包裹参数字符串
|
|
|
|
|
- $signatureParams = $secret . $parameterStr . $secret;
|
|
|
|
|
-
|
|
|
|
|
- // 使用HMAC-SHA256生成签名
|
|
|
|
|
- return $this->generateSHA256($signatureParams, $secret);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private function getHeader($header,$name){
|
|
|
|
|
- $lowerName = strtolower($name);
|
|
|
|
|
- foreach ($header as $key => $value) {
|
|
|
|
|
- if (strtolower($key) === $lowerName) {
|
|
|
|
|
- return $value;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(!empty($body)){
|
|
|
|
|
+ $input.= json_encode($body);
|
|
|
}
|
|
}
|
|
|
- return '';
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private function generateSHA256($signatureParams, $secret){
|
|
|
|
|
- return hash_hmac('sha256', $signatureParams, $secret);
|
|
|
|
|
|
|
+ $input = $secret . $input . $secret;
|
|
|
|
|
+ // 生成签名
|
|
|
|
|
+ $sign = hash_hmac('sha256', $input,$secret);
|
|
|
|
|
+ return $sign;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
private function reqGet($url,$headers){
|
|
private function reqGet($url,$headers){
|
|
|
|
|
|
|
|
// 初始化cURL
|
|
// 初始化cURL
|