文件
xionggeshop/addons/shopro_aliyun_express/library/Bridge.php

68 行
2.0 KiB
PHP

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
namespace addons\shopro_aliyun_express\library;
use fast\ExpressBird;
class Bridge
{
public static function isEnabled()
{
return ExpressConfig::getInstance()->isEnabled();
}
/**
* 统一轨迹查询入口
*/
public static function queryTrack($waybillNo, $phone = '', $expressCode = '', $useCache = true)
{
$waybillNo = ExpressSanitizer::waybillNo($waybillNo);
$phone = ExpressSanitizer::phone($phone);
$expressCode = ExpressSanitizer::expressCode($expressCode);
if ($waybillNo === '') {
throw new \Exception('快递单号不能为空');
}
if (self::isEnabled()) {
$service = new ExpressQueryService();
return $service->queryTrack($waybillNo, $phone, $expressCode, null, $useCache);
}
return self::fallbackQuery($waybillNo, $phone);
}
/**
* 兼容旧 ExpressBird 返回格式(Success + Traces)
*/
public static function queryTrackLegacy($waybillNo, $phone = '', $expressCode = '', $useCache = true)
{
if (self::isEnabled()) {
$service = new ExpressQueryService();
$normalized = $service->queryTrack($waybillNo, $phone, $expressCode, null, $useCache);
return $service->toKdniaoExpressFormat($normalized);
}
return self::fallbackQueryLegacy($waybillNo, $phone);
}
protected static function fallbackQuery($waybillNo, $phone)
{
$legacy = self::fallbackQueryLegacy($waybillNo, $phone);
return [
'success' => !empty($legacy['Success']),
'trackList' => TrackNormalizer::fixDeliveringIcons($legacy['Traces'] ?? []),
'expressStatus' => '',
'expressCompanyName' => '',
'expressCompanyCode' => '',
'provider' => 'expressbird',
];
}
protected static function fallbackQueryLegacy($waybillNo, $phone)
{
$bird = new ExpressBird();
return $bird->queryTrack($waybillNo, $phone);
}
}