lvhao преди 1 ден
родител
ревизия
30be9e1dca
променени са 1 файла, в които са добавени 52 реда и са изтрити 79 реда
  1. 52 79
      core/CoreApp/models/Model_apittv1.php

+ 52 - 79
core/CoreApp/models/Model_apittv1.php

@@ -5,88 +5,61 @@ class Model_apittv1 extends Lin_Model {
             $this->load->_model("Model_logic_ding","logic_ding");
     }
 
-    private function sign($url,$appSecret,$body='') 
-	{
-		// 解析URL获取查询参数
-		$queryParams = array();
-		parse_str(parse_url($url, PHP_URL_QUERY), $queryParams);
-		// 排除'sign'和'access_token'
-		unset($queryParams['sign'], $queryParams['access_token']);
-		// 按字典顺序排序查询参数
-		ksort($queryParams);
-		// 拼接参数为{key}{value}格式
-		$input = '';
-		foreach ($queryParams as $key => $value)
-		{
-    		$input .= $key . $value;
-		}
-		// 追加请求路径
-		$path = parse_url($url, PHP_URL_PATH);
-		$input = $path . $input;
-		if ($body) 
-		{
-			$input .= json_encode($body);
-	    }
-		// 使用app_secret包裹生成的字符串
-		$input = $appSecret . $input . $appSecret;
-		// 生成签名
-		$sign = hash_hmac('sha256', $input,$appSecret);
-        return $sign;
-	}
-
-    // 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']);
+
+
+    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;
-    //     }
-
-    //     // 检查Content-Type,如果不是multipart/form-data,则追加body
-    //     $contentType = $this->getHeader($header, 'Content-Type');
-    //     if (stripos($contentType, 'multipart/form-data') === false && !empty($body)) {
-    //         $parameterStr .= $body;
-    //     }
+        // 按参数名排序
+        ksort($queryParams);
+
+        // 构建参数字符串
+        $parameterStr = $path;
+        foreach ($queryParams as $key => $value) {
+            $parameterStr .= $key . $value;
+        }
+
+        // 检查Content-Type,如果不是multipart/form-data,则追加body
+        $contentType = $this->getHeader($header, 'Content-Type');
+        if (stripos($contentType, 'multipart/form-data') === false && !empty($body)) {
+            $parameterStr .= $body;
+        }
         
-    //     // 用secret包裹参数字符串
-    //     $signatureParams = $secret . $parameterStr . $secret;
+        // 用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;
-    //         }
-    //     }
-    //     return '';
-    // }
-
-    // private function generateSHA256($signatureParams, $secret){
-    //     return hash_hmac('sha256', $signatureParams, $secret);
-    // }
-
-    private function reqGet($url,$headers){
+        // 使用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;
+            }
+        }
+        return '';
+    }
+
+    private function generateSHA256($signatureParams, $secret){
+        return hash_hmac('sha256', $signatureParams, $secret);
+    }
+
+     private function reqGet($url,$headers){
        
         // 初始化cURL
         $ch = curl_init();