pasar jasa / Dokumentasi pengembangan API biaya pengiriman
API pengumpulan barang Laut ekspres · v1

Dokumentasi pengembangan API biaya pengiriman

Cina → API perhitungan real-time pengiriman ekspres laut Taiwan. Harga dalam RMB, mendukung penagihan berat dan volume aktual (berat volume), dengan satu permintaan yang mengembalikan detail penagihan lengkap. Dirancang khusus untuk penawaran pengiriman front-end dari platform e-commerce lintas batas seperti 0337.tw.

Laut ekspres

Metode pengiriman (Sea Express)

¥10/kg

Tarif per kilogram (RMB)

+¥20

Biaya tambahan untuk berat yang dapat ditagih kurang dari 10kg

<50ms

waktu respons rata-rata

1 Ringkasan

API pengangkutan memungkinkan platform Anda untuk langsung menampilkan "Biaya Pengumpulan China → Taiwan Sea Express" di meja depan, menghilangkan beban menjaga tabel tarif Anda sendiri.

apa yang bisa dilakukan

  • Perhitungan Pengangkutan - Masukkan berat paket (atau panjang, lebar dan volume), dan kembalikan biaya pengiriman ekspres laut (RMB) paket.
  • Dapatkan tarif - Kueri tarif per kilogram saat ini, ambang batas biaya tambahan, dan koefisien konversi volume, yang memudahkan Anda menghitung atau menyimpan cache di ujung depan.

Semua tanggapan dalam JSON, dalam format amplop terpadu: bila berhasil, success: true dengan data; ketika gagal, success: false dengan kode error dan message.

Mata uang harga : RMB (CNY / ¥). Tarif API ini adalah tarif proyek kerjasama e-commerce lintas batas, yang dikelola secara terpisah dari perhitungan uji coba pengiriman situs resmi 0523.tw (NTD). Jika Anda memerlukan penawaran dalam Dolar Taiwan Baru atau metode pengiriman lainnya, silakan hubungi kami untuk mengaktifkan.

2 Sertifikasi dan informasi dasar

Semua permintaan harus membawa Kunci API. Dapat ditempatkan di header Authorization (disarankan) atau header X-API-Key.

Base URL

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

Header otentikasi (pilih salah satu)

Metode A — Token Pembawa (disarankan)

Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Metode B — Kunci X-API

X-API-Key: lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Kunci API dimulai dengan lk_live_. Harap simpan dengan aman dan jangan pernah memasukkan ke dalam JavaScript front-end atau repositori Git publik; semua panggilan harus dilakukan dari sisi server Anda.

Batas Nilai

Setiap kunci memiliki batas permintaan per menit, dan header respons akan melaporkan batas yang tersisa:

tajukmenjelaskan
X-RateLimit-LimitJumlah permintaan yang diizinkan per menit
X-RateLimit-RemainingJumlah permintaan yang tersisa saat ini
Retry-AfterJumlah detik menunggu hingga batas waktu terlampaui (HTTP 429)

Untuk pengalaman front-end terbaik, disarankan untuk menyimpan hasil /rates selama beberapa menit dan menghitungnya dengan rumus yang sama di server Anda sendiri. Hanya hubungi /quote untuk verifikasi selama langkah penting dalam melakukan pemesanan.

3 Titik akhir: dapatkan tarif

GET /api/v1/freight/rates

Mencantumkan semua metode dan tarif pengiriman yang saat ini diaktifkan. Tidak diperlukan parameter.

bertanya

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

Tanggapan 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 Titik Akhir: Perhitungan Pengangkutan

GETPOST /api/v1/freight/quote

Biaya pengiriman sea express dihitung berdasarkan berat/ukuran volume paket. GET (string kueri) dan POST (JSON atau formulir) keduanya dapat diterima.

Parameter permintaan

parameterJenisDiperlukanmenjelaskan
weightnumberOpsional*Berat sebenarnya dalam kilogram (kg).
lengthnumberOpsional*Panjang, satuannya sentimeter (cm).
widthnumberOpsional*Lebar dalam sentimeter (cm).
heightnumberOpsional*Tinggi, satuannya sentimeter (cm).
methodstringOpsionalMetode pengiriman saat ini adalah sea (sea express). Jika dihilangkan, sea diasumsikan.
* weight dan "lengkap panjang/lebar/tinggi" pilih setidaknya satu . Jika keduanya disediakan, sistem akan mengambil "berat aktual" dan "berat volumetrik" yang lebih besar sebagai berat penagihan.

Contoh permintaan (GET)

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

Contoh permintaan (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}'

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

Deskripsi bidang respons

bidangmenjelaskan
actual_weightBerat sebenarnya (kg). 0 jika tidak disediakan.
volume_weightVolume (volume) berat (kg) = panjang × lebar × tinggi 10000,0 jika tidak disediakan ukuran.
billable_weightBerat yang dapat ditagih (kg) = maks (berat aktual, berat volumetrik).
billable_basisPenagihan didasarkan pada :actual (berdasarkan berat sebenarnya) atau volumetrik (berdasarkan volume).
freightPengangkutan dasar = berat tagihan × tarif per kilogram (tidak termasuk biaya tambahan).
surchargeBiaya tambahan sebenarnya untuk transaksi ini (0 jika tidak dipicu).
surcharge_appliedApakah akan memicu biaya tambahan (bobot penagihan < ambang batas).
total_feePiutang pengangkutan akhir adalah (RMB, dibulatkan ke bilangan bulat terdekat).

5 Rumus penagihan dan contohnya

Logika perhitungan API ini konsisten dengan kalkulator Laut ekspres situs resmi 0523.tw, hanya tarifnya yang diubah menjadi tarif proyek kerjasama. Anda dapat menghitungnya terlebih dahulu menggunakan rumus yang sama di sistem Anda sendiri.

① Berat volume = panjang × lebar × tinggi (cm) 10000
② Berat penagihan = maks (berat sebenarnya, berat volumetrik)
③ Angkutan dasar = Berat penagihan × ¥10/kg
④ Biaya tambahan = Berat penagihan < 10kg ? +¥20 : ¥0
⑤ Piutang pengangkutan = bulat(③ + ④)

Contoh praktis

¥1008 kg Paket → Berat tagihan 8kg < 10kg → 8×10 + 20 = 100
¥20020 kg Paket → Berat tagihan 20kg ≥ 10kg → 20×10 = 200 (Tanpa biaya tambahan)
¥705 kg + kotak 40×30×30cm → berat volume 3,6kg, berat yang dapat ditagih 5kg → 5×10 + 20 = 70
¥1203 kg + kotak 60×50×40cm → berat volume 12kg > berat aktual, berat yang dapat ditagih 12kg ≥ 10kg → 12×10 = 120 (tanpa biaya tambahan)
¥150 Kotak 50×50×60cm (ukuran saja) → Berat volume 15kg, berat penagihan 15kg ≥ 10kg → 15×10 = 150

6 kode kesalahan

Respons kesalahan selalu { "success": false, "error": "...", "message": "..." }.

HTTPerrormenjelaskan
401missing_api_keyTidak ada Kunci API yang disediakan. Silakan tambahkan Otorisasi atau header X-API-Key.
401invalid_api_keyKunci API tidak valid.
403key_suspended / key_revoked / key_expiredKunci telah dinonaktifkan/dicabut/kedaluwarsa.
403insufficient_scopeKuncinya tidak memiliki izin freight:read.
422validation_failedKesalahan format parameter (jenis, rentang).
422missing_parametersTidak ada berat atau panjang/lebar/tinggi penuh yang disediakan.
422unsupported_methodmetode tidak ada dalam daftar yang tersedia.
429rate_limit_exceededMelebihi batas permintaan per menit, lihat Coba Lagi Setelahnya.

7 Contoh program

Contoh panggilan sisi server. Silakan ganti lk_live_... dengan kunci Anda dan simpan di variabel lingkungan.

// 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 Saran integrasi mal Laravel

0337.tw adalah mal Laravel. Disarankan untuk mengemas API biaya pengiriman ke dalam Layanan backend dan menghubungi: selama proses checkout:

  • Setelah mendapatkan total berat (kg)/volume keranjang belanja saat checkout, hubungi /api/v1/freight/quote di backend , dan tetapkan total_fee yang dikembalikan sebagai biaya pengiriman.
  • Kuncinya ditempatkan di .env (misalnya, LUCKY_FREIGHT_KEY) dan dibaca dengan config(). Kunci tidak boleh ditulis langsung (hard-code) di kode program atau front-end.
  • Ketika panggilan gagal (batas waktu / 429), tarif yang di-cache di /rates dihitung secara lokal menggunakan rumus yang sama dengan cadangan untuk memastikan pembayaran tidak terganggu.
  • Jumlahnya dalam RMB; jika mal melunasi tagihan dalam Dolar Taiwan Baru, harap terapkan sendiri konversi nilai tukarnya.

Contoh Laravel (fasad 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);
    }
}

Tambahkan 'lucky' => ['freight_key' => env('LUCKY_FREIGHT_KEY')] di config/services.php, lalu masukkan LuckyFreightService ke dalam Kontroler checkout untuk mendapatkan barang tersebut.

Sentralisasi tarif sumber kebenaran tunggal : dikelola oleh HowBridge. Setelah kami menyesuaikan tarif, API akan segera mencerminkannya, dan mal Anda akan diperbarui secara bersamaan tanpa revisi apa pun.

9 Dukungan dan versi

dukungan teknis: howyunqisoftware@gmail.com

Versi API: v1 (stabil). Perubahan apa pun yang dapat menyebabkan gangguan akan dirilis dengan nomor versi baru (v2), v1 akan tetap kompatibel.

Ubah riwayat: 01-06-2026 — Freight API v1 sedang online (Hai Express, harga dalam RMB).

Terapkan untuk kunci API