'sf', 'number' => 'SF1234567890', 'phone' => '13800138000', 'label' => '顺丰速运' ], [ 'company' => 'jd', 'number' => 'JD1234567890', 'phone' => '13800138000', 'label' => '京东快递' ], ]; echo "1. 检查快递100配置\n"; echo "-------------------------------------------\n"; $config = \think\facade\Config::get('logistics.kuaidi100', []); $enabled = !empty($config['enable']); $customer = $config['customer'] ?? ''; $key = $config['key'] ?? ''; if ($enabled && $customer !== '' && $key !== '') { echo "✓ 快递100已配置\n"; echo " Customer: " . substr($customer, 0, 4) . "****\n"; echo " Key: " . substr($key, 0, 4) . "****\n"; } else { echo "✗ 快递100未配置或已关闭\n"; echo " 提示:请在 .env 文件中配置 LOGISTICS_KUAIDI100_CUSTOMER 和 LOGISTICS_KUAIDI100_KEY\n"; } echo "\n2. 测试官网查询链接生成\n"; echo "-------------------------------------------\n"; foreach ($testCases as $case) { echo "\n{$case['label']} ({$case['number']}):\n"; $urls = ExpressTrackService::officialUrls($case['number']); echo " 顺丰官网: {$urls['sf']}\n"; echo " 京东官网: {$urls['jd']}\n"; } echo "\n3. 测试快递查询(需要真实运单号)\n"; echo "-------------------------------------------\n"; if (!$enabled) { echo "✗ 跳过:快递100未配置\n"; echo " 提示:配置后可测试实时查询功能\n"; } else { echo "提示:请将上面的测试运单号替换为真实运单号后再测试\n"; echo "是否继续测试?(y/n): "; $handle = fopen("php://stdin", "r"); $line = fgets($handle); fclose($handle); if (trim($line) === 'y') { foreach ($testCases as $case) { echo "\n测试 {$case['label']} ({$case['number']}):\n"; try { $result = ExpressTrackService::query( $case['company'], $case['number'], $case['phone'] ); echo " 承运商: {$result['carrier_label']}\n"; echo " 状态: {$result['state_text']}\n"; echo " 数据源: {$result['source']}\n"; if (!empty($result['hint'])) { echo " 提示: {$result['hint']}\n"; } if (!empty($result['traces'])) { echo " 轨迹节点数: " . count($result['traces']) . "\n"; echo " 最新轨迹: {$result['traces'][0]['time']} - {$result['traces'][0]['context']}\n"; } else { echo " 轨迹: 暂无\n"; } } catch (\Exception $e) { echo " ✗ 查询失败: {$e->getMessage()}\n"; } } } else { echo "已跳过实时查询测试\n"; } } echo "\n===========================================\n"; echo "测试完成\n"; echo "===========================================\n\n"; echo "故障排查提示:\n"; echo "1. 如果顺丰查询失败,请确认:\n"; echo " - 运单号格式正确(通常以SF开头)\n"; echo " - 收件人手机号后4位正确\n"; echo " - 快递已揽收\n\n"; echo "2. 如果京东查询失败,请确认:\n"; echo " - 运单号格式正确(通常以JD开头)\n"; echo " - 快递已揽收\n\n"; echo "3. 如果快递100返回错误,请检查:\n"; echo " - Customer 和 Key 是否正确\n"; echo " - 账户余额是否充足\n"; echo " - 网络连接是否正常\n\n"; echo "更多帮助请查看:LOGISTICS_INTEGRATION_GUIDE.md\n";