Dienstleistungsmarkt / Versandkosten API-Entwicklungsdokumentation
See-Express-Frachtabhol-API · v1

Versandkosten API-Entwicklungsdokumentation

Echtzeitberechnungs-API für China → Taiwan-Seeexpressfracht. Die Preise sind in RMB angegeben und unterstützen die tatsächliche Gewichts- und Volumenabrechnung (Volumengewicht), wobei eine einzige Anfrage die vollständigen Rechnungsdetails zurückgibt. Speziell entwickelt für Front-End-Frachtangebote von grenzüberschreitenden E-Commerce-Plattformen wie 0337.tw.

See-Express

Versandart (Sea Express)

¥10/kg

Preis pro Kilogramm (RMB)

+¥20

Zuschlag für abrechenbares Gewicht unter 10 kg

<50ms

durchschnittliche Reaktionszeit

1 Überblick

Mit der Fracht-API kann Ihre Plattform sofort „China → Taiwan Sea Express Collection Fee“ an der Rezeption anzeigen, sodass Sie keine eigene Tariftabelle pflegen müssen.

was kann getan werden

  • Frachtberechnung – Geben Sie das Gewicht des Pakets (oder Länge, Breite und Volumen) ein und erstatten Sie die Seeexpress-Versandgebühr (RMB) des Pakets.
  • Tarif abrufen – Fragen Sie den aktuellen Tarif pro Kilogramm, den Zuschlagsschwellenwert und den Volumenumrechnungskoeffizienten ab, die Sie bequem im Frontend berechnen oder zwischenspeichern können.

Alle Antworten sind in JSON, in einem einheitlichen Umschlagformat: bei Erfolg, success: true mit data; wenn fehlgeschlagen, success: false mit error Code und message.

Preiswährung: RMB (CNY / ¥). Der Tarif dieser API ist der Tarif für grenzüberschreitende E-Commerce-Kooperationsprojekte, der getrennt von der Testberechnung der offiziellen Website (NTD) 0523.tw verwaltet wird. Wenn Sie ein Angebot in neuen Taiwan-Dollar oder anderen Versandarten benötigen, kontaktieren Sie uns bitte zur Aktivierung.

2 Zertifizierung und grundlegende Informationen

Alle Anfragen müssen einen API-Schlüssel mitbringen. Kann im Authorization-Header (empfohlen) oder im X-API-Key-Header platziert werden.

Base URL

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

Authentifizierungsheader (wählen Sie einen aus)

Methode A – Inhabertoken (empfohlen)

Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Methode B – X-API-Key

X-API-Key: lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Der API-Schlüssel beginnt mit lk_live_. Bitte bewahren Sie sicher auf und platzieren Sie niemals in Front-End-JavaScript oder öffentlichen Git-Repositorys. Alle Anrufe sollten von Ihrer Serverseite aus erfolgen.

Ratenbegrenzung

Jeder Schlüssel hat ein Anforderungslimit pro Minute und der Antwortheader meldet das verbleibende Limit:

Kopfzeileveranschaulichen
X-RateLimit-LimitAnzahl der zulässigen Anfragen pro Minute
X-RateLimit-RemainingAnzahl der in dieser Minute verbleibenden Anfragen
Retry-AfterAnzahl der Sekunden, die gewartet werden muss, bis das Zeitlimit überschritten wurde (HTTP 429)

Für das beste Front-End-Erlebnis wird empfohlen, die Ergebnisse von /rates einige Minuten lang zwischenzuspeichern und sie mit derselben Formel auf Ihrem eigenen Server zu berechnen. Rufen Sie /quote zur Überprüfung nur während der kritischen Schritte einer Bestellung an.

3 Endpunkt: Rate abrufen

GET /api/v1/freight/rates

Listet alle derzeit aktivierten Versandmethoden und -tarife auf. Es sind keine Parameter erforderlich.

fragen

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

Antwort 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 Endpunkt: Frachtberechnung

GETPOST /api/v1/freight/quote

Die Gebühr für den Seeexpress-Versand wird auf der Grundlage des Gewichts/Volumens des Pakets berechnet. Sowohl GET (Abfragezeichenfolge) als auch POST (JSON oder Formular) sind akzeptabel.

Parameter anfordern

ParameterTypErforderlichveranschaulichen
weightnumberOptional*Tatsächliches Gewicht in Kilogramm (kg).
lengthnumberOptional*Länge, Einheit ist Zentimeter (cm).
widthnumberOptional*Breite in Zentimetern (cm).
heightnumberOptional*Höhe, Einheit ist Zentimeter (cm).
methodstringOptionalDie Versandart ist derzeit sea (Seeexpress). Wenn es weggelassen wird, wird sea angenommen.
* Gewicht und „vollständig Länge/Breite/Höhe“ wählen Sie mindestens ein . Wenn beide Angaben vorliegen, verwendet das System das größere der beiden Werte „tatsächliches Gewicht“ und „Volumengewicht“ als Abrechnungsgewicht.

Anforderungsbeispiel (GET)

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

Anforderungsbeispiel (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}'

Antwort 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
  }
}

Beschreibung des Antwortfelds

Feldveranschaulichen
actual_weightTatsächliches Gewicht (kg). 0, wenn nicht angegeben.
volume_weightVolumen (Volumen) Gewicht (kg) = Länge × Breite × Höhe ÷ 10000. 0, wenn keine Größe angegeben ist.
billable_weightAbrechnungsfähiges Gewicht (kg) = max. (tatsächliches Gewicht, Volumengewicht).
billable_basisDie Abrechnung erfolgt nach :actual (basierend auf tatsächlichem Gewicht) oder volumetrisch (basierend auf Volumen).
freightGrundfracht = Abrechnungsgewicht × Tarif pro Kilogramm (ohne Zuschläge).
surchargeDer tatsächliche Zuschlag für diese Transaktion (0, wenn nicht ausgelöst).
surcharge_appliedOb ein Zuschlag ausgelöst werden soll (Abrechnungsgewicht < Schwellenwert).
total_feeDie endgültige Frachtforderung beträgt (RMB, auf die nächste ganze Zahl gerundet).

5 Abrechnungsformeln und Beispiele

Die Berechnungslogik dieser API stimmt mit dem See-Express-Rechner der offiziellen Website 0523.tw überein, nur der Tarif wird in den Kooperationsprojekttarif geändert. Sie können es mit der gleichen Formel in Ihrem eigenen System vorberechnen.

① Volumengewicht = Länge × Breite × Höhe (cm) ÷ 10000
② Abrechnungsgewicht = max (tatsächliches Gewicht, Volumengewicht)
③ Grundfracht = Rechnungsgewicht × ¥10/kg
④ Zuschlag = Rechnungsgewicht < 10kg ? +¥20 : ¥0
⑤ Frachtforderung = Round(③ + ④)

Praxisbeispiele

¥1008 kg Paket → Rechnungsgewicht 8kg < 10kg → 8×10 + 20 = 100
¥20020 kg Paket → Rechnungsgewicht 20kg ≥ 10kg → 20×10 = 200 (Kein Aufpreis)
¥705 kg + Karton 40×30×30 cm → Volumengewicht 3,6 kg, abrechnungsfähiges Gewicht 5 kg → 5×10 + 20 = 70
¥1203 kg + Karton 60×50×40cm → Volumengewicht 12kg > tatsächliches Gewicht, abrechnungsfähiges Gewicht 12kg ≥ 10kg → 12×10 = 120 (kein Aufpreis)
¥150 Box 50×50×60cm (nur Größe) → Volumengewicht 15 kg, Rechnungsgewicht 15 kg ≥ 10 kg → 15×10 = 150

6 Fehlercode

Die Fehlerantwort lautet immer { "success": false, "error": "...", "message": "..." }.

HTTPerrorveranschaulichen
401missing_api_keyEs wird kein API-Schlüssel bereitgestellt. Bitte fügen Sie den Autorisierungs- oder X-API-Key-Header hinzu.
401invalid_api_keyDer API-Schlüssel ist ungültig.
403key_suspended / key_revoked / key_expiredDer Schlüssel wurde deaktiviert/entzogen/abgelaufen.
403insufficient_scopeDer Schlüssel verfügt nicht über die Berechtigung freight:read.
422validation_failedParameterformatfehler (Typ, Bereich).
422missing_parametersKein Gewicht oder volle Länge/Breite/Höhe angegeben.
422unsupported_methodDie Methode ist nicht in der verfügbaren Liste enthalten.
429rate_limit_exceededBei Überschreitung des Anforderungslimits pro Minute siehe „Retry-After“.

7 Programmbeispiel

Beispiel für einen serverseitigen Aufruf. Bitte ersetzen Sie lk_live_... durch Ihren Schlüssel und speichern Sie ihn in der Umgebungsvariablen.

// 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 Vorschläge zur Integration des Laravel-Einkaufszentrums

0337.tw ist das Einkaufszentrum Laravel. Es wird empfohlen, die Versandkosten-API in einen Backend-Dienst zu packen und während des Bestellvorgangs Folgendes aufzurufen:

  • Nachdem Sie an der Kasse das Gesamtgewicht (kg)/Volumen des Warenkorbs erhalten haben, rufen Sie /api/v1/freight/quote im -Backend auf und legen Sie die zurückgegebene Gebühr total_fee als Versandkosten fest.
  • Der Schlüssel wird in .env platziert (z. B. LUCKY_FREIGHT_KEY) und mit config() gelesen. Der Schlüssel darf nicht im Programmcode oder im Frontend fest codiert werden.
  • Wenn der Anruf fehlschlägt (Timeout / 429), wird die in /rates zwischengespeicherte Rate lokal nach der gleichen Formel wie bei einer Sicherung berechnet, um einen unterbrechungsfreien Checkout sicherzustellen.
  • Der Betrag ist in RMB; Wenn das Einkaufszentrum die Rechnung in neuen Taiwan-Dollar begleicht, nehmen Sie die Wechselkursumrechnung bitte selbst vor.

Laravel-Beispiel (HTTP-Fassade)

// 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);
    }
}

Fügen Sie 'lucky' => ['freight_key' => env('LUCKY_FREIGHT_KEY')] in config/services.php hinzu und fügen Sie dann LuckyFreightService in den Checkout-Controller ein, um die Fracht zu erhalten.

Die Single Source of Truth : Ratenzentralisierung wird von HowBridge verwaltet. Nachdem wir den Preis angepasst haben, spiegelt die API ihn sofort wider und Ihr Einkaufszentrum wird gleichzeitig ohne Überarbeitung aktualisiert.

9 Support und Versionen

technische Unterstützung: howyunqisoftware@gmail.com

API-Version: v1 (stabil). Alle wichtigen Änderungen werden mit einer neuen Versionsnummer (v2) veröffentlicht, v1 bleibt kompatibel.

Änderungshistorie: 01.06.2026 – Freight API v1 ist online (Hai Express, Preis in RMB).

Beantragen Sie einen API-Schlüssel