mercado de servicios / Documentación de desarrollo de API de tarifa de envío
API de cobro de carga Marítimo exprés · v1

Documentación de desarrollo de API de tarifa de envío

API de cálculo en tiempo real de flete marítimo expreso de China → Taiwán. El precio está en RMB y admite facturación por peso y volumen real (peso por volumen), y una sola solicitud devuelve detalles de facturación completos. Especialmente diseñado para cotizaciones de flete iniciales de plataformas de comercio electrónico transfronterizo como 0337.tw.

Marítimo exprés

Método de envío (Sea Express)

¥10/kg

Tarifa por kilogramo (RMB)

+¥20

Recargo por peso facturable inferior a 10kg

<50ms

tiempo promedio de respuesta

1 Descripción general

La API de carga permite que su plataforma muestre instantáneamente "Tarifa de cobro de China → Taiwán Sea Express" en la recepción, eliminando la carga de mantener su propia tabla de tarifas.

¿Qué se puede hacer?

  • Cálculo de flete : ingrese el peso del paquete (o largo, ancho y volumen) y devuelva la tarifa de envío marítimo expreso (RMB) del paquete.
  • Obtener tasa : consulta la tasa actual por kilogramo, el umbral de recargo y el coeficiente de conversión de volumen, lo cual le resulta conveniente calcular o almacenar en caché en la interfaz.

Todas las respuestas están en JSON, en un formato de sobre unificado: cuando tienen éxito, success: true con data; cuando falla, success: false con el código error y message.

Moneda de fijación de precios : RMB (CNY / ¥). La tarifa de esta API es la tarifa del proyecto de cooperación de comercio electrónico transfronterizo, que se mantiene por separado del cálculo de prueba de envío del sitio web oficial (NTD) 0523.tw. Si necesita una cotización en nuevos dólares taiwaneses u otros métodos de envío, contáctenos para activarla.

2 Certificación e información básica.

Todas las solicitudes deben traer clave API. Se puede colocar en el encabezado Authorization (recomendado) o en el encabezado X-API-Key.

Base URL

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

Encabezado de autenticación (elija uno)

Método A: Token al portador (recomendado)

Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Método B: clave X-API

X-API-Key: lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

La clave API comienza con lk_live_. Mantenga seguro y nunca coloque en repositorios frontales de JavaScript o Git públicos; Todas las llamadas deben realizarse desde el lado del servidor.

Límite de tarifa

Cada clave tiene un límite de solicitudes por minuto y el encabezado de respuesta informará el límite restante:

encabezamientoilustrar
X-RateLimit-LimitNúmero de solicitudes permitidas por minuto
X-RateLimit-RemainingNúmero de solicitudes restantes en este minuto
Retry-AfterNúmero de segundos para esperar hasta que se superó el límite de tiempo (HTTP 429)

Para obtener la mejor experiencia de front-end, se recomienda almacenar en caché los resultados de /rates durante unos minutos y calcularlos con la misma fórmula en su propio servidor. Llame únicamente a /quote para verificación durante los pasos críticos de realizar un pedido.

3 Punto final: obtener tarifa

GET /api/v1/freight/rates

Enumera todos los métodos y tarifas de envío actualmente habilitados. No se requieren parámetros.

preguntar

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

Respuesta 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 Punto final: cálculo de flete

GETPOST /api/v1/freight/quote

La tarifa de envío marítimo exprés se calcula en función del peso/volumen del paquete. Tanto GET (cadena de consulta) como POST (JSON o formulario) son aceptables.

Solicitar parámetros

parámetroTipoRequeridoilustrar
weightnumberOpcional*Peso real en kilogramos (kg).
lengthnumberOpcional*Longitud, la unidad es centímetros (cm).
widthnumberOpcional*Ancho en centímetros (cm).
heightnumberOpcional*Altura, la unidad es centímetros (cm).
methodstringOpcionalEl método de envío actualmente es sea (sea express). Cuando se omite, se supone sea.
* peso y "completo largo/ancho/alto" elija al menos un . Cuando se proporcionan ambos, el sistema toma el mayor entre "peso real" y "peso volumétrico" como peso de facturación.

Ejemplo de solicitud (OBTENER)

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

Ejemplo de solicitud (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}'

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

Descripción del campo de respuesta

campoilustrar
actual_weightPeso real (kg). 0 si no se proporciona.
volume_weightVolumen (volumen) peso (kg) = largo × ancho × alto ÷ 10000. 0 si no se proporciona el tamaño.
billable_weightPeso facturable (kg) = máx (peso real, peso volumétrico).
billable_basisLa facturación se basa en :actual (basado en el peso real) o volumetric (basado en el volumen).
freightFlete básico = peso de facturación × tarifa por kilogramo (sin incluir recargos).
surchargeEl recargo real para esta transacción (0 si no se activa).
surcharge_appliedSi se debe activar el recargo (peso de facturación
total_feeEl flete final por cobrar es (RMB, redondeado al número entero más cercano).

5 Fórmulas y ejemplos de facturación.

La lógica de cálculo de esta API es consistente con la calculadora Marítimo exprés del sitio web oficial 0523.tw, solo la tarifa se cambia a la tarifa del proyecto de cooperación. Puedes precalcularlo usando la misma fórmula en tu propio sistema.

① Peso del volumen = largo × ancho × alto (cm) ÷ 10000
② Peso de facturación = máx (peso real, peso volumétrico)
③ Flete básico = Peso de facturación × ¥10/kg
④ Recargo = Peso de facturación < 10kg ? +¥20 : ¥0
⑤ Flete por cobrar = ronda(③ + ④)

Ejemplos prácticos

¥1008 kg Paquete → Peso de facturación 8kg < 10kg → 8×10 + 20 = 100
¥20020 kg Paquete → Peso de facturación 20kg ≥ 10kg → 20×10 = 200 (Sin recargo)
¥705 kg + caja 40×30×30cm → peso volumen 3,6kg, peso facturable 5kg → 5×10 + 20 = 70
¥1203 kg + caja 60×50×40cm → peso volumen 12kg > peso real, peso facturable 12kg ≥ 10kg → 12×10 = 120 (sin recargo)
¥150 Caja 50×50×60cm (solo tamaño) → Peso volumen 15kg, peso facturación 15kg ≥ 10kg → 15×10 = 150

6 código de error

La respuesta de error es siempre { "success": false, "error": "...", "message": "..." }.

HTTPerrorilustrar
401missing_api_keyNo se proporciona ninguna clave API. Agregue el encabezado Autorización o X-API-Key.
401invalid_api_keyLa clave API no es válida.
403key_suspended / key_revoked / key_expiredLa clave ha sido desactivada/revocada/caducada.
403insufficient_scopeLa clave no tiene el permiso freight:read.
422validation_failedError de formato de parámetro (tipo, rango).
422missing_parametersNo se proporciona peso ni longitud/ancho/alto completo.
422unsupported_methodEl método no está en la lista disponible.
429rate_limit_exceededExceder el límite de solicitudes por minuto, consulte Reintentar después.

7 Ejemplo de programa

Ejemplo de llamada del lado del servidor. Reemplace lk_live_... con su clave y guárdela en la variable de entorno.

// 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 Sugerencias de integración del centro comercial Laravel

0337.tw es el centro comercial Laravel. Se recomienda empaquetar la API de tarifa de envío en un Servicio backend y llamar a: durante el proceso de pago:

  • Después de obtener el peso/volumen total (kg) del carrito de compras al finalizar la compra, llame a /api/v1/freight/quote en el backend y establezca el total_fee devuelto como tarifa de envío.
  • La clave se coloca en .env (por ejemplo, LUCKY_FREIGHT_KEY) y se lee con config(). No escriba la clave directamente en el código del programa ni en el front-end.
  • Cuando la llamada falla (tiempo de espera/429), la tarifa almacenada en caché en /rates se calcula localmente utilizando la misma fórmula que una copia de seguridad para garantizar un pago ininterrumpido.
  • El importe está en RMB; Si el centro comercial paga la factura en nuevos dólares taiwaneses, aplique usted mismo la conversión del tipo de cambio.

Ejemplo de Laravel (fachada 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);
    }
}

Agregue 'lucky' => ['freight_key' => env('LUCKY_FREIGHT_KEY')] en config/services.php y luego inyecte LuckyFreightService en el controlador de pago para obtener el flete.

La centralización de tarifas única fuente de verdad : es mantenida por HowBridge. Después de que ajustemos la tarifa, la API la reflejará inmediatamente y su centro comercial se actualizará simultáneamente sin ninguna revisión.

9 Soporte y versiones

apoyo técnico: howyunqisoftware@gmail.com

Versión API: v1 (estable). Cualquier cambio importante se publicará con un nuevo número de versión (v2), la v1 seguirá siendo compatible.

Historial de cambios: 01/06/2026: Freight API v1 está en línea (Hai Express, precio en RMB).

Solicite una clave API