marché des services / Documentation de développement de l'API sur les frais d'expédition
API de collecte de fret Maritime express · v1

Documentation de développement de l'API sur les frais d'expédition

API de calcul en temps réel du fret express maritime Chine → Taiwan. Le prix est en RMB, prenant en charge la facturation du poids et du volume réels (poids volumétrique), une seule demande renvoyant les détails de facturation complets. Spécialement conçu pour les cotations de fret frontales des plateformes de commerce électronique transfrontalières telles que 0337.tw.

Maritime express

Mode d'expédition (Sea Express)

¥10/kg

Tarif par kilogramme (RMB)

+¥20

Supplément pour poids facturable inférieur à 10 kg

<50ms

temps de réponse moyen

1 Aperçu

L'API de fret permet à votre plate-forme d'afficher instantanément « Chine → Taiwan Sea Express Collection Fee » à la réception, éliminant ainsi la charge de maintenir votre propre barème de tarifs.

que peut-on faire

  • Calcul du fret - Entrez le poids du colis (ou la longueur, la largeur et le volume) et renvoyez les frais d'expédition maritime express (RMB) du colis.
  • Obtenir le taux - Recherchez le taux actuel par kilogramme, le seuil de supplément et le coefficient de conversion de volume, ce qui est pratique pour vous de calculer ou de mettre en cache sur le front-end.

Toutes les réponses sont au format JSON, dans un format d'enveloppe unifié : en cas de succès, success : true avec data ; en cas d'échec, success : false avec le code error et message.

Devise de tarification du  : RMB (CNY / ¥). Le tarif de cette API est le tarif du projet de coopération en matière de commerce électronique transfrontalier, qui est géré séparément du calcul de l'essai d'expédition du site officiel 0523.tw (NTD). Si vous avez besoin d'un devis en nouveaux dollars taïwanais ou d'autres méthodes d'expédition, veuillez nous contacter pour l'activer.

2 Certification et informations de base

Toutes les demandes doivent apporter une clé API. Peut être placé dans l’en-tête Authorization (recommandé) ou dans l’en-tête X-API-Key.

Base URL

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

En-tête d'authentification (choisissez-en un)

Méthode A — Jeton au porteur (recommandé)

Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Méthode B — Clé X-API

X-API-Key: lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

La clé API commence par lk_live_. Veuillez garder en sécurité et ne jamais placer dans des référentiels JavaScript frontaux ou Git publics ; tous les appels doivent être effectués depuis votre serveur.

Limite de taux

Chaque clé a une limite de requêtes par minute, et l'en-tête de réponse indiquera la limite restante :

en-têteillustrer
X-RateLimit-LimitNombre de requêtes autorisées par minute
X-RateLimit-RemainingNombre de demandes restantes cette minute
Retry-AfterNombre de secondes à attendre en cas de dépassement du délai (HTTP 429)

Pour la meilleure expérience frontale, il est recommandé de mettre en cache les résultats /rates pendant quelques minutes et de les calculer avec la même formule sur votre propre serveur. Appelez uniquement /quote pour vérification pendant les étapes critiques de la passation d'une commande.

3 Point final : obtenir le taux

GET /api/v1/freight/rates

Répertorie toutes les méthodes et tarifs d’expédition actuellement activés. Aucun paramètre n'est requis.

demander

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

Réponse 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 Point final : calcul du fret

GETPOST /api/v1/freight/quote

Les frais d'expédition maritime express sont calculés en fonction du poids/volume du colis. GET (chaîne de requête) et POST (JSON ou formulaire) sont acceptables.

Paramètres de la demande

paramètreTaperRequisillustrer
weightnumberFacultatif*Poids réel en kilogrammes (kg).
lengthnumberFacultatif*Longueur, l'unité est en centimètres (cm).
widthnumberFacultatif*Largeur en centimètres (cm).
heightnumberFacultatif*Hauteur, l'unité est en centimètres (cm).
methodstringFacultatifLe mode d'expédition est actuellement sea (sea express). En cas d'omission, sea est supposé.
* weight et "complète longueur/largeur/hauteur" choisissez au moins un . Lorsque les deux sont fournis, le système prend le plus grand du « poids réel » et du « poids volumétrique » comme poids de facturation.

Exemple de requête (GET)

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

Exemple de requête (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}'

Réponse 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
  }
}

Description du champ de réponse

champillustrer
actual_weightPoids réel (kg). 0 s’il n’est pas fourni.
volume_weightVolume (volume) poids (kg) = longueur × largeur × hauteur ÷ 10000. 0 si aucune taille n'est fournie.
billable_weightPoids facturable (kg) = max (poids réel, poids volumétrique).
billable_basisLa facturation est basée sur :actual (basé sur le poids réel) ou volumetric (basé sur le volume).
freightFret de base = poids facturé × tarif par kilogramme (hors suppléments).
surchargeLe supplément réel pour cette transaction (0 si non déclenché).
surcharge_appliedS'il faut déclencher une majoration (poids de facturation < seuil).
total_feeLa créance finale de fret est (RMB, arrondi au nombre entier le plus proche).

5 Formules et exemples de facturation

La logique de calcul de cette API est cohérente avec le calculateur Maritime express du site officiel 0523.tw, seul le taux est modifié en taux du projet de coopération. Vous pouvez le précalculer en utilisant la même formule dans votre propre système.

① Poids volumétrique = longueur × largeur × hauteur (cm) ÷ 10000
② Poids facturé = max (poids réel, poids volumétrique)
③ Fret de base = Poids facturé × ¥10/kg
④ Supplément = Poids facturé < 10kg ? +¥20 : ¥0
⑤ Fret à recevoir = rond (③ + ④)

Exemples pratiques

¥1008 kg Forfait → Poids de facturation 8kg < 10kg → 8×10 + 20 = 100
¥20020 kg Forfait → Poids de facturation 20kg ≥ 10kg → 20×10 = 200 (Pas de supplément)
¥705 kg + boîte 40×30×30cm → poids volumétrique 3,6kg, poids facturable 5kg → 5×10 + 20 = 70
¥1203 kg + boîte 60×50×40cm → poids volumétrique 12kg > poids réel, poids facturable 12kg ≥ 10kg → 12×10 = 120 (pas de supplément)
¥150 Boîte 50×50×60cm (taille uniquement) → Poids volumétrique 15kg, poids de facturation 15kg ≥ 10kg → 15×10 = 150

6 code d'erreur

La réponse d'erreur est toujours { "success": false, "error": "...", "message": "..." }.

HTTPerrorillustrer
401missing_api_keyAucune clé API n'est fournie. Veuillez ajouter l'en-tête Authorization ou X-API-Key.
401invalid_api_keyLa clé API n'est pas valide.
403key_suspended / key_revoked / key_expiredLa clé a été désactivée/révoquée/expirée.
403insufficient_scopeLa clé ne dispose pas de l'autorisation freight:read.
422validation_failedErreur de format de paramètre (type, plage).
422missing_parametersAucun poids ni pleine longueur/largeur/hauteur n’est fourni.
422unsupported_methodLa méthode n'est pas dans la liste disponible.
429rate_limit_exceededEn cas de dépassement de la limite de requêtes par minute, voir Réessayer après.

7 Exemple de programme

Exemple d'appel côté serveur. Veuillez remplacer lk_live_... par votre clé et stockez-la dans la variable d'environnement.

// 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 Suggestions d'intégration du centre commercial Laravel

0337.tw est le centre commercial Laravel. Il est recommandé de regrouper l'API des frais d'expédition dans un service backend et d'appeler : pendant le processus de paiement :

  • Après avoir obtenu le poids total (kg)/volume du panier à la caisse, appelez /api/v1/freight/quote sur le backend et définissez le total_fee retourné comme frais d'expédition.
  • La clé est placée dans .env (par exemple, LUCKY_FREIGHT_KEY) et lue avec config(). Ne codez pas la clé en dur dans le code du programme ni dans le front-end.
  • Lorsque l'appel échoue (timeout / 429), le tarif mis en cache dans /rates est calculé localement en utilisant la même formule qu'une sauvegarde pour garantir un paiement ininterrompu.
  • Le montant est en RMB ; Si le centre commercial règle la facture en nouveaux dollars taïwanais, veuillez appliquer vous-même la conversion du taux de change.

Exemple Laravel (façade 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);
    }
}

Ajoutez 'lucky' => ['freight_key' => env('LUCKY_FREIGHT_KEY')] dans config/services.php, puis injectez LuckyFreightService dans le contrôleur de caisse pour obtenir le fret.

La source unique de vérité , la centralisation des taux :, est maintenue par HowBridge. Après avoir ajusté le tarif, l'API le reflétera immédiatement et votre centre commercial sera mis à jour simultanément sans aucune révision.

9 Support et versions

assistance technique : howyunqisoftware@gmail.com

Version API : v1 (stable). Toutes les modifications importantes seront publiées avec un nouveau numéro de version (v2), la v1 restera compatible.

Historique des modifications : 01/06/2026 — L'API Freight v1 est en ligne (Hai Express, prix en RMB).

Demander une clé API