рынок услуг / Документация по разработке API платы за доставку
API сбора грузов Морской экспресс · v1

Документация по разработке API платы за доставку

API расчета морских экспресс-перевозок Китай → Тайвань в реальном времени. Цены указаны в юанях, поддерживаются расчеты по фактическому весу и объему (объемному весу), при этом один запрос возвращает полные платежные данные. Специально разработан для предварительного расчета стоимости перевозки на трансграничных платформах электронной коммерции, таких как 0337.tw.

Морской экспресс

Способ доставки (Морской экспресс)

¥10/kg

Цена за килограмм (юаней)

+¥20

Доплата за оплачиваемый вес менее 10 кг.

<50ms

среднее время ответа

1 Обзор

API грузовых перевозок позволяет вашей платформе мгновенно отображать «Сбор за сбор морского экспресса Китай → Тайвань» на стойке регистрации, избавляя вас от необходимости поддерживать собственную таблицу тарифов.

что можно сделать

  • Расчет перевозки — введите вес посылки (или длину, ширину и объем) и верните стоимость морской экспресс-доставки посылки (юаней).
  • Получить ставку — запросить текущую ставку за килограмм, порог надбавки и коэффициент преобразования объема, который вам удобно вычислить или кэшировать на внешнем интерфейсе.

Все ответы представлены в формате JSON в едином формате конверта: в случае успеха success: true с data; в случае неудачи success: false с кодом error и message.

Валюта ценообразования : юани (CNY / ¥). Ставка этого API представляет собой ставку проекта трансграничного сотрудничества в области электронной коммерции, которая поддерживается отдельно от расчета пробной доставки на официальном веб-сайте 0523.tw (NTD). Если вам нужно предложение в новых тайваньских долларах или другие способы доставки, свяжитесь с нами для активации.

2 Сертификация и основная информация

Все запросы должны содержать ключ API. Может быть помещен в заголовок Authorization (рекомендуется) или заголовок X-API-Key.

Base URL

https://0523.tw/api/v1/freight

Заголовок аутентификации (выберите один)

Метод A — токен на предъявителя (рекомендуется)

Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Метод Б — ключ X-API

X-API-Key: lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Ключ API начинается с lk_live_. Пожалуйста, храните в безопасности и никогда не помещайте во внешний JavaScript или общедоступные репозитории Git; все вызовы должны осуществляться со стороны вашего сервера.

Ограничение скорости

У каждого ключа есть лимит запросов в минуту, а в заголовке ответа будет сообщено об оставшемся лимите:

заголовокиллюстрировать
X-RateLimit-LimitКоличество разрешенных запросов в минуту
X-RateLimit-RemainingКоличество запросов, оставшихся на эту минуту
Retry-AfterКоличество секунд ожидания превышения лимита времени (HTTP 429).

Для обеспечения наилучшего внешнего интерфейса рекомендуется кэшировать результаты /rates на несколько минут и вычислять их по той же формуле на своем собственном сервере. Звоните по /quote только для проверки на критических этапах размещения заказа.

3 Конечная точка: получить скорость

GET /api/v1/freight/rates

Перечисляет все доступные на данный момент способы доставки и тарифы. Никакие параметры не требуются.

просить

curl https://0523.tw/api/v1/freight/rates \
  -H "Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx"

Ответ 200

{
  "success": true,
  "currency": "CNY",
  "data": [
    {
      "method": "sea",
      "name_zh": "海快",
      "name_en": "Sea Express",
      "rate_per_kg": 10,
      "surcharge": 20,
      "min_threshold": 15,
      "volume_divisor": 10000,
      "currency": "CNY"
    }
  ]
}

4 Конечная точка: расчет фрахта

GETPOST /api/v1/freight/quote

Стоимость морской экспресс-доставки рассчитывается в зависимости от веса/объема посылки. Допускаются как GET (строка запроса), так и POST (JSON или форма).

Параметры запроса

параметрТипНеобходимыйиллюстрировать
weightnumberНеобязательный*Фактический вес в килограммах (кг).
lengthnumberНеобязательный*Длина, единица измерения — сантиметры (см).
widthnumberНеобязательный*Ширина в сантиметрах (см).
heightnumberНеобязательный*Рост, единица измерения — сантиметры (см).
methodstringНеобязательныйСпособ доставки в настоящее время sea (морской экспресс). Если этот параметр опущен, предполагается sea.
* weight и «полный длина/ширина/высота» выберите хотя бы один . Если указаны оба параметра, система принимает большее из значений «фактического веса» и «объемного веса» в качестве расчетного веса.

Пример запроса (GET)

curl "https://0523.tw/api/v1/freight/quote?weight=8&method=sea" \
  -H "Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx"

Пример запроса (POST JSON)

curl -X POST https://0523.tw/api/v1/freight/quote \
  -H "Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"weight": 5, "length": 40, "width": 30, "height": 30}'

Ответ 200

{
  "success": true,
  "data": {
    "method": "sea",
    "method_name_zh": "海快",
    "method_name_en": "Sea Express",
    "currency": "CNY",
    "currency_symbol": "¥",
    "actual_weight": 5,
    "volume_weight": 3.6,
    "volume_divisor": 10000,
    "billable_weight": 5,
    "billable_basis": "actual",
    "rate_per_kg": 10,
    "freight": 50,
    "surcharge": 20,
    "surcharge_applied": true,
    "min_threshold": 15,
    "total_fee": 70
  }
}

Описание поля ответа

полеиллюстрировать
actual_weightФактический вес (кг). 0, если не указано.
volume_weightОбъем (объем) вес (кг) = длина × ширина × высота ÷ 10000. 0, если размер не указан.
billable_weightОплачиваемый вес (кг) = макс. (фактический вес, объемный вес).
billable_basisВыставление счетов основано на :actual (на основе фактического веса) или volumetric (на основе объема).
freightБазовый фрахт = расчетный вес × ставка за килограмм (без учета дополнительных сборов).
surchargeФактическая комиссия за эту транзакцию (0, если она не активирована).
surcharge_appliedВводить ли дополнительную плату (вес счета < порогового значения).
total_feeОкончательная дебиторская задолженность за фрахт равна (юаней, округленных до ближайшего целого числа).

5 Формулы и примеры выставления счетов

Логика расчета этого API соответствует калькулятору Морской экспресс официального сайта 0523.tw, только ставка меняется на ставку проекта сотрудничества. Вы можете предварительно рассчитать его, используя ту же формулу в своей собственной системе.

① Объемный вес = длина × ширина × высота (см) ÷ 10000
② Учетный вес = макс. (фактический вес, объемный вес)
③ Базовый фрахт = Расчетный вес × ¥10/кг
④ Доплата = Расчетный вес < 10kg ? +¥20 : ¥0
⑤ Дебиторская задолженность за фрахт = раунд(③ + ④)

Практические примеры

¥1008 кг Пакет → Расчетный вес 8 кг < 10 кг → 8×10 + 20 = 100
¥20020 кг Пакет → Расчетный вес 20 кг ≥ 10 кг → 20×10 = 200 (без доплаты)
¥705 кг + коробка 40×30×30 см → объемный вес 3,6 кг, оплачиваемый вес 5 кг → 5×10 + 20 = 70
¥1203 кг + коробка 60×50×40 см → объемный вес 12 кг > фактический вес, оплачиваемый вес 12 кг ≥ 10 кг → 12×10 = 120 (нет доплата)
¥150 Коробка 50×50×60 см (только размер) → Объемный вес 15 кг, расчетный вес 15 кг ≥ 10 кг → 15×10 = 150

6 код ошибки

Ответ об ошибке всегда { "успех": false, "ошибка": "...", "сообщение": "..." }.

HTTPerrorиллюстрировать
401missing_api_keyКлюч API не предоставлен. Добавьте заголовок авторизации или X-API-Key.
401invalid_api_keyКлюч API недействителен.
403key_suspended / key_revoked / key_expiredКлюч деактивирован/отозван/истек срок действия.
403insufficient_scopeКлюч не имеет разрешения freight:read.
422validation_failedОшибка формата параметра (тип, диапазон).
422missing_parametersВес или полная длина/ширина/высота не указаны.
422unsupported_methodметода нет в списке доступных.
429rate_limit_exceededПревышение лимита запросов в минуту, см. Повтор-После.

7 Пример программы

Пример вызова на стороне сервера. Пожалуйста, замените lk_live_... своим ключом и сохраните его в переменной среды.

// composer require guzzlehttp/guzzle
use GuzzleHttp\Client;

$client = new Client(['base_uri' => 'https://0523.tw']);

$res = $client->post('/api/v1/freight/quote', [
    'headers' => [
        'Authorization' => 'Bearer ' . env('LUCKY_FREIGHT_KEY'),
        'Accept'        => 'application/json',
    ],
    'json' => [
        'weight' => 8,
        'method' => 'sea',
    ],
]);

$data = json_decode($res->getBody(), true);
echo '運費 ¥' . $data['data']['total_fee'];  // 運費 ¥100
// Node.js / 伺服器端 — 請勿在瀏覽器暴露金鑰
const res = await fetch('https://0523.tw/api/v1/freight/quote', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.LUCKY_FREIGHT_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ weight: 8, method: 'sea' }),
});
const { data } = await res.json();
console.log(`運費 ¥${data.total_fee}`);  // 運費 ¥100
curl -X POST https://0523.tw/api/v1/freight/quote \
  -H "Authorization: Bearer $LUCKY_FREIGHT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"weight": 8, "method": "sea"}'

8 Предложения по интеграции торгового центра Laravel

0337.tw — это торговый центр Laravel. Рекомендуется упаковать API платы за доставку во внутреннюю службу и вызывать: в процессе оформления заказа:

  • После получения общего веса (кг)/объема корзины покупок при оформлении заказа вызовите /api/v1/freight/quote на бэкэнде и установите возвращенный total_fee в качестве стоимости доставки.
  • Ключ помещается в .env (например, LUCKY_FREIGHT_KEY) и читается с помощью config(). Не прописывайте ключ жёстко в программном коде или во фронтенде.
  • При сбое вызова (тайм-аут / 429) ставка, кэшированная в /rates, рассчитывается локально с использованием той же формулы, что и резервная копия, для обеспечения непрерывного оформления заказа.
  • Сумма указана в юанях; Если торговый центр оплачивает счет в новых тайваньских долларах, пожалуйста, примените конвертацию обменного курса самостоятельно.

Пример Laravel (Http-фасад)

// app/Services/LuckyFreightService.php
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Cache;

class LuckyFreightService
{
    public function quote(float $weight): int
    {
        $res = Http::withToken(config('services.lucky.freight_key'))  // 讀 .env
            ->acceptJson()
            ->timeout(8)
            ->get('https://0523.tw/api/v1/freight/quote', [
                'weight' => $weight,
                'method' => 'sea',
            ]);

        if ($res->successful()) {
            return (int) $res->json('data.total_fee');  // 人民幣
        }

        // 後備:用快取費率本地計算,結帳不中斷
        return $this->fallbackQuote($weight);
    }
}

Добавьте 'lucky' => ['freight_key' => env('LUCKY_FREIGHT_KEY')] в config/services.php, а затем добавьте LuckyFreightService в Контролер оформления заказа для получения груза.

Единый источник достоверной информации : Централизация скорости поддерживается HowBridge. После того, как мы скорректируем ставку, API немедленно отразит ее, и ваш торговый центр будет обновлен одновременно без каких-либо изменений.

9 Поддержка и версии

техническая поддержка: howyunqisoftware@gmail.com

Версия API: v1 (стабильная). Любые критические изменения будут выпущены с новым номером версии (v2), версия v1 останется совместимой.

История изменений: 01.06.2026 — Freight API v1 доступен онлайн (Hai Express, цена в юанях).

Подать заявку на ключ API