2 Коміти 259a21521d ... 267471f791

Автор SHA1 Опис Дата
  WIN-2308041133\Administrator 267471f791 1 1 місяць тому
  WIN-2308041133\Administrator 614f2f30f8 1 1 місяць тому
2 змінених файлів з 90 додано та 54 видалено
  1. 42 27
      app/api/controller/Shop.php
  2. 48 27
      app/services/AliyunExpressService.php

+ 42 - 27
app/api/controller/Shop.php

@@ -378,39 +378,54 @@ class Shop extends BaseController
      */
     public function express(Request $request)
     {
-        $post = UtilService::getMore([
-            ['order_id', '', 'empty', '参数错误'],
-        ], $request);
+        try {
+            $post = UtilService::getMore([
+                ['order_id', '', 'empty', '参数错误'],
+            ], $request);
 
-        $order = Db::name('store_order')
-            ->where('order_id', $post['order_id'])
-            ->where('uid', $request->user['uid'])
-            ->find();
+            // 断点1:记录请求参数
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [express] 请求参数: ' . json_encode($post, JSON_UNESCAPED_UNICODE) . "\r\n", 8);
 
-        if (empty($order)) {
-            return app('json')->fail('订单不存在');
-        }
+            $order = Db::name('store_order')
+                ->where('order_id', $post['order_id'])
+                ->where('uid', $request->user['uid'])
+                ->find();
 
-        if (empty($order['express_num'])) {
-            return app('json')->fail('暂无物流信息');
-        }
+            if (empty($order)) {
+                return app('json')->fail('订单不存在');
+            }
 
-        $service = new AliyunExpressService();
-        $result = $service->query($order['express_num'], $order['express_code'] ?? '');
+            // 断点2:记录订单物流字段
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [express] 订单物流信息: express_num=' . ($order['express_num'] ?? '') . ', express_code=' . ($order['express_code'] ?? '') . ', express_type=' . ($order['express_type'] ?? '') . "\r\n", 8);
 
-        if ($result === false) {
-            return app('json')->fail('物流查询失败,请检查阿里云物流AppCode配置');
-        }
+            if (empty($order['express_num'])) {
+                return app('json')->fail('暂无物流信息');
+            }
 
-        $data = [
-            'express_type' => $order['express_type'] ?? '',
-            'express_code' => $order['express_code'] ?? '',
-            'express_num'  => $order['express_num'],
-            'list'         => $result['result']['list'] ?? [],
-            'status'       => $result['result']['deliverystatus'] ?? -1,
-            'status_text'  => $service->getStatusText((int)($result['result']['deliverystatus'] ?? -1)),
-        ];
+            $service = new AliyunExpressService();
+
+            $result = $service->query($order['express_num'], $order['express_code'] ?? '');
+
+            // 断点4:记录阿里云接口原始返回
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [express] 阿里云返回: ' . json_encode($result, JSON_UNESCAPED_UNICODE) . "\r\n", 8);
 
-        return app('json')->success('查询成功', $data);
+            if ($result === false) {
+                return app('json')->fail('物流查询失败,请检查阿里云物流AppCode配置');
+            }
+
+            $data = [
+                'express_type' => $order['express_type'] ?? '',
+                'express_code' => $order['express_code'] ?? '',
+                'express_num'  => $order['express_num'],
+                'list'         => $result['result']['list'] ?? [],
+                'status'       => $result['result']['deliverystatus'] ?? -1,
+                'status_text'  => $service->getStatusText((int)($result['result']['deliverystatus'] ?? -1)),
+            ];
+
+            return app('json')->success('查询成功', $data);
+        } catch (\Exception $e) {
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [express Error] ' . $e->getMessage() . ' File: ' . $e->getFile() . ' Line: ' . $e->getLine() . "\r\n", 8);
+            return app('json')->fail('物流查询异常:' . $e->getMessage());
+        }
     }
 }

+ 48 - 27
app/services/AliyunExpressService.php

@@ -39,36 +39,57 @@ class AliyunExpressService
      */
     public function query(string $no, string $type = '')
     {
-        if (empty($this->appCode)) {
-            return false;
-        }
+        try {
+            // 断点1:appCode和请求参数
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [ExpressService] appCode=' . ($this->appCode ?: '(空)') . ', no=' . $no . ', type=' . $type . "\r\n", 8);
 
-        $params = ['no' => $no];
-        if (!empty($type)) {
-            $params['type'] = $type;
-        }
-        $url = $this->api . '?' . http_build_query($params);
-
-        $ch = curl_init();
-        curl_setopt_array($ch, [
-            CURLOPT_URL            => $url,
-            CURLOPT_RETURNTRANSFER => true,
-            CURLOPT_HTTPHEADER     => [
-                'Authorization: APPCODE ' . $this->appCode,
-            ],
-            CURLOPT_TIMEOUT        => 30,
-            CURLOPT_SSL_VERIFYPEER => false,
-        ]);
-
-        $result = curl_exec($ch);
-        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
-        curl_close($ch);
-
-        if ($httpCode !== 200) {
+            if (empty($this->appCode)) {
+                @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [ExpressService] appCode为空,直接返回false' . "\r\n", 8);
+                return false;
+            }
+
+            $params = ['no' => $no];
+            if (!empty($type)) {
+                $params['type'] = $type;
+            }
+            $url = $this->api . '?' . http_build_query($params);
+
+            // 断点2:请求URL
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [ExpressService] 请求URL: ' . $url . "\r\n", 8);
+
+            $ch = curl_init();
+            curl_setopt_array($ch, [
+                CURLOPT_URL            => $url,
+                CURLOPT_RETURNTRANSFER => true,
+                CURLOPT_HTTPHEADER     => [
+                    'Authorization: APPCODE ' . $this->appCode,
+                ],
+                CURLOPT_TIMEOUT        => 30,
+                CURLOPT_SSL_VERIFYPEER => false,
+            ]);
+
+            $result = curl_exec($ch);
+            $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+            $curlError = curl_error($ch);
+            curl_close($ch);
+
+            // 断点3:HTTP状态码、curl错误、原始返回
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [ExpressService] httpCode=' . $httpCode . ', curlError=' . $curlError . ', result=' . $result . "\r\n", 8);
+
+            if ($httpCode !== 200) {
+                @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [ExpressService] httpCode非200,返回false' . "\r\n", 8);
+                return false;
+            }
+
+            $decoded = json_decode($result, true);
+            // 断点4:解析后的数据
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [ExpressService] 解析结果: ' . json_encode($decoded, JSON_UNESCAPED_UNICODE) . "\r\n", 8);
+
+            return $decoded ?: false;
+        } catch (\Exception $e) {
+            @file_put_contents('quanju.txt', date('Y-m-d H:i:s') . ' [ExpressService Error] ' . $e->getMessage() . ' File: ' . $e->getFile() . ' Line: ' . $e->getLine() . "\r\n", 8);
             return false;
         }
-
-        return json_decode($result, true) ?: false;
     }
 
     /**