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

+ 15 - 47
core/CoreApp/models/Model_apittv1.php

@@ -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){
        
         // 初始化cURL