浏览代码

商品拍照识别,图片搜索商品

lizhen_gitee 11 月之前
父节点
当前提交
f0f7329f8e
共有 2 个文件被更改,包括 95 次插入3 次删除
  1. 91 0
      application/api/controller/Demo.php
  2. 4 3
      application/config.php

+ 91 - 0
application/api/controller/Demo.php

@@ -5,6 +5,13 @@ namespace app\api\controller;
 use app\common\controller\Api;
 use app\common\library\Easemob;
 use app\common\library\Tenim;
+
+use TencentCloud\Common\Credential;
+use TencentCloud\Common\Profile\ClientProfile;
+use TencentCloud\Common\Profile\HttpProfile;
+use TencentCloud\Common\Exception\TencentCloudSDKException;
+use TencentCloud\Tiia\V20190529\TiiaClient;
+use TencentCloud\Tiia\V20190529\Models\DetectProductRequest;
 /**
  * 示例接口
  */
@@ -96,4 +103,88 @@ class Demo extends Api
         dump(get_last_time($a));
     }
 
+
+    //腾讯云拍照识别商品
+    //{"Response":{"Products":[{"Name":"按摩椅","Parents":"家用电器-个护健康","Confidence":99,"XMin":107,"YMin":59,"XMax":447,"YMax":366}],"RequestId":"187745fc-0497-441e-88f5-f3f17d854016"}}
+    public function search_by_image($image = 'https://jiankangyijia-1304634122.cos.ap-nanjing.myqcloud.com/uploads/20240504/5cbfbb7880323f05839d82afe1500569.png'){
+        $tencent_yun = config('tencent_yun');
+        $secret_id   = $tencent_yun['secret_id'];
+        $secret_key  = $tencent_yun['secret_key'];
+
+        $token       = "";
+        $service     = "tiia";
+        $host        = "tiia.tencentcloudapi.com";
+        $req_region  = "ap-beijing";
+        $version     = "2019-05-29";
+        $action      = "DetectProduct";
+        $payload     = json_encode(['ImageUrl' => localpath_to_netpath($image)]);
+        $endpoint    = "https://tiia.tencentcloudapi.com";
+        $algorithm   = "TC3-HMAC-SHA256";
+        $timestamp   = time();
+        $date        = gmdate("Y-m-d", $timestamp);
+
+// ************* 步骤 1:拼接规范请求串 *************
+        $http_request_method = "POST";
+        $canonical_uri = "/";
+        $canonical_querystring = "";
+        $ct = "application/json; charset=utf-8";
+        $canonical_headers = "content-type:".$ct."\nhost:".$host."\nx-tc-action:".strtolower($action)."\n";
+        $signed_headers = "content-type;host;x-tc-action";
+        $hashed_request_payload = hash("sha256", $payload);
+        $canonical_request = "$http_request_method\n$canonical_uri\n$canonical_querystring\n$canonical_headers\n$signed_headers\n$hashed_request_payload";
+
+// ************* 步骤 2:拼接待签名字符串 *************
+        $credential_scope = "$date/$service/tc3_request";
+        $hashed_canonical_request = hash("sha256", $canonical_request);
+        $string_to_sign = "$algorithm\n$timestamp\n$credential_scope\n$hashed_canonical_request";
+
+// ************* 步骤 3:计算签名 *************
+        $secret_date    = hash_hmac("sha256", $date, "TC3".$secret_key, true);
+        $secret_service = hash_hmac("sha256", $service, $secret_date, true);
+        $secret_signing = hash_hmac("sha256", "tc3_request", $secret_service, true);
+        $signature      = hash_hmac("sha256", $string_to_sign, $secret_signing);
+
+// ************* 步骤 4:拼接 Authorization *************
+        $authorization = "$algorithm Credential=$secret_id/$credential_scope, SignedHeaders=$signed_headers, Signature=$signature";
+
+// ************* 步骤 5:构造并发起请求 *************
+        $headers = [
+            "Authorization"  => $authorization,
+            "Content-Type"   => "application/json; charset=utf-8",
+            "Host"           => $host,
+            "X-TC-Action"    => $action,
+            "X-TC-Timestamp" => $timestamp,
+            "X-TC-Version"   => $version
+        ];
+        if ($req_region) {
+            $headers["X-TC-Region"] = $req_region;
+        }
+        if ($token) {
+            $headers["X-TC-Token"] = $token;
+        }
+        $headers = array_map(function ($k, $v) { return "$k: $v"; }, array_keys($headers), $headers);
+
+        try {
+            $timeOut = 3;
+            $ch = curl_init();
+            curl_setopt($ch, CURLOPT_URL, $endpoint);
+            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
+            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+            curl_setopt($ch, CURLOPT_TIMEOUT, $timeOut);
+            curl_setopt($ch, CURLOPT_HEADER, 0);
+            curl_setopt($ch, CURLOPT_POST, 1);
+            curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
+            $response = curl_exec($ch);
+            curl_close($ch);
+
+            return $response;
+        } catch (Exception $err) {
+            echo $err->getMessage();
+        }
+
+    }
+
+
 }

+ 4 - 3
application/config.php

@@ -354,11 +354,12 @@ return [
         'SecretKey' => '',
     ],
 
-    //腾讯增强版人脸核身
+    //腾讯增强版人脸核身。 商品识别 。 cos
     'tencent_yun' => [
-        'secret_id' => '',
-        'secret_key' => '',
+        'secret_id' => 'AKIDcCsNhsulSzNbefXqFi8ORI4jEYgdQ1Rk',
+        'secret_key' => 'dCb3PbbS7bvADB3pEi9WqDZosocJp694',
     ],
+    
 
     'newconfiggroup' =>    [
         'siteconfig' => '网站配置',