pasaran perkhidmatan / Dokumen Pembangunan API Pertanyaan Status Penghantaran
API Penjejakan Pakej Disatukan · v1

Dokumen Pembangunan API Pertanyaan Status Penghantaran

Semak dengan serta-merta status penghantaran lengkap bungkusan disatukan mengikut nombor penjejakan: dari Koleksi Ekspres China, gudang Gudang Penggabungan Shenzhen, penghantaran Taiwan, ke peringkat pelepasan Kastam Taiwan (GC329) dan tandatangan penghantaran terminal. Data yang sama seperti laman web rasmi HowBridge, direka khas untuk dok dengan platform e-dagang rentas sempadan seperti 0337.tw.

Pertanyaan nombor pesanan

Nombor Penjejakan China Express/Pelanggan/Pembawa

Garis masa penuh

Kumpul → Gudang → Penghantaran → Tandatangani untuk resit

GC329

Peringkat pelepasan kastam Taiwan

Tiada maklumat peribadi

Hanya status dikembalikan, tanpa maklumat penerima.

1 Gambaran keseluruhan

Benarkan platform anda menggunakan nombor penjejakan untuk mengetahui "di mana sekarang" pakej yang disatukan.

perjalanan pakej

China mengambil alih→ Gudang gudang kontena Shenzhen→ Penggabungan dan pembungkusan/penghantaran Taiwan→ Pelepasan Kastam Taiwan (GC329)→ Penghantaran terminal/ditandatangani untuk

API secara automatik akan menentukan peringkat mana pakej berada berdasarkan nombor pesanan, dan mengembalikan status semasa, garis masa yang lengkap, dan (jika ia telah memasuki Kastam Taiwan) kemajuan pelepasan kastam lima peringkat GC329.

boleh menggunakan nombor penjejakan :. Nombor penjejakan ekspres Cina (nombor penjejakan yang digunakan oleh pelanggan untuk dihantar ke gudang kontena Shenzhen), no. pesanan pelanggan, atau no penjejakan pembawa. Sistem akan membandingkan secara automatik merentas sumber.
Perlindungan privasi: API ini hanya bertanya dengan "nombor penjejakan pakej tunggal", dan data yang dikembalikan tidak mengandungi nama, alamat, nombor telefon dan maklumat peribadi penerima ; ia juga tidak dibenarkan untuk menyenaraikan pakej orang lain dalam kelompok dengan nombor bil muatan utama (B######).

2 Pensijilan dan maklumat asas

Semua permintaan mesti membawa Kunci API (kunci yang sama dengan API yuran penghantaran sudah memadai dan kebenaran shipment:read perlu diaktifkan).

Base URL

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

Pengepala pengesahan (pilih satu)

Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx
// 或
X-API-Key: lk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Sila hubunginya dari bahagian pelayan dan jangan letakkan kunci dalam JavaScript bahagian hadapan. Had kadar adalah dalam unit utama dan pengepala respons X-RateLimit-Remaining akan melaporkan baki had; jika melebihi had, HTTP 429 akan dikembalikan.

3 Titik akhir: pertanyaan status kargo

GETPOST /api/v1/shipment/track

Semak status penghantaran satu pakej berdasarkan nombor penjejakan. Kedua-dua GET (rentetan pertanyaan) dan POST (JSON / borang) boleh diterima.

Permintaan parameter

parametertaipDiperlukanmenggambarkan
tracking_numberstringDiperlukanNombor penjejakan pakej (4–64 aksara, abjad angka dan - _). Nombor Penjejakan China Express / Nombor Penjejakan Pelanggan / Nombor Penjejakan Penghantaran semuanya boleh diterima.

Contoh permintaan (GET)

curl "https://0523.tw/api/v1/shipment/track?tracking_number=SF1234567890123" \
  -H "Authorization: Bearer lk_live_xxxxxxxxxxxxxxxxxxxxxxxx"

Respons 200 (Contoh sudah berada di gudang/dalam transit)

{
  "success": true,
  "cached": false,
  "tracking_number": "SF1234567890123",
  "data": {
    "tracking_number": "SF1234567890123",
    "customer_order_no": "LK260601001",
    "carrier_tracking_no": "SF1234567890123",
    "logistics": "順豐速運",
    "status_code": 2,
    "status": "已入倉",
    "description": "包裹已進入深圳集運倉,等待集運打包",
    "is_delivered": false,
    "is_final": false,
    "last_event_time": "2026-06-01 12:30:00",
    "updated_at": "2026-06-01 12:31:05",
    "timeline": [
      { "name": "已攬收", "completed": true,  "time": "2026-05-30 09:00:00" },
      { "name": "已入倉 (深圳集運倉)", "completed": true,  "time": "2026-06-01 12:30:00" },
      { "name": "集運打包/台灣運送", "completed": false, "time": null },
      { "name": "已簽收", "completed": false, "time": null }
    ],
    "customs_stages": null,
    "events": null
  }
}

Respons 404 (tiada nombor pesanan ditemui)

{
  "success": false,
  "error": "not_found",
  "message": "查無此單號。請確認單號正確,或包裹尚未進入集運系統。",
  "tracking_number": "SF1234567890123"
}

4 Penerangan medan respons (data)

padangtaipmenggambarkan
statusstring Status semasa (boleh dibaca manusia) , seperti diramalkan / disimpan / dalam transit / dihantar ke Taiwan / ditandatangani untuk penerimaan. Adalah disyorkan untuk memaparkan rentetan ini secara langsung.
status_codenumberKod status (bergantung pada sumber, lihat bahagian seterusnya). Adalah disyorkan untuk menggunakan status, is_delivered, is_final untuk memacu UI.
is_deliveredboolAdakah ia telah ditandatangani untuk?
is_finalboolSama ada ia muktamad (ditandatangani/dipulangkan/dibatalkan/tidak boleh dihantar). Benar untuk menghentikan pengundian.
logisticsstringPembekal logistik (penghantaran terminal China Express atau Taiwan).
descriptionstringPenerangan acara terkini.
last_event_timedatetimeMasa acara logistik terkini.
timelinearrayGaris masa peringkat, setiap item mengandungi name / completed / time / deskripsi.
customs_stagesobject|nullKastam Taiwan GC329 Kemajuan pelepasan kastam (batal jika pelepasan kastam belum selesai). Lihat bahagian seterusnya.
eventsarray|nullSejarah peristiwa logistik asal (disediakan semasa penjejakan penghantaran terminal).

5 status dan garis masa

Peringkat utama penyatuan (garis masa)

pentaskepentingan
Ramalan (tidak dimasukkan ke dalam gudang)Pelanggan telah meramalkan nombor pesanan, tetapi bungkusan itu belum tiba di Gudang Penggabungan Shenzhen.
Telah disimpan di gudang (Gudang Kontena Shenzhen)Gudang Penggabungan Shenzhen telah menerima pakej tersebut.
Penggabungan dan pembungkusan/penghantaran TaiwanDibungkus dan dihantar, dihantar melalui laut/udara ke Taiwan.
Dalam transit/menghantar ke TaiwanPelepasan kastam dan penghantaran akhir selepas tiba di Taiwan.
Ditandatangani untukPenerima telah menandatangani untuk penghantaran (is_delivered = true).

Peringkat pelepasan kastam (customs_stages,GC329)

Selepas pakej memasuki Kastam Taiwan, customs_stages akan memaparkan kemajuan lima peringkat dan peratusan keseluruhan:

{
  "hbl": "691MK539819",
  "trans_type_name": "海運",
  "current_stage_name": "海關放行",
  "progress_percent": 80,
  "is_completed": false,
  "stages": [
    { "code": "XX", "name": "船(機)抵達",   "done": true },
    { "code": "E1", "name": "連線收單建檔", "done": true },
    { "code": "D1", "name": "計稅",        "done": true },
    { "code": "RL", "name": "海關放行",     "done": true },
    { "code": "OW", "name": "出倉",        "done": false }
  ],
  "source": "關港貿單一窗口 GC329"
}

6 kod ralat

HTTPerrormenggambarkan
401missing_api_key / invalid_api_keyTiada/Kunci API tidak sah.
403insufficient_scopeKunci belum diberikan kebenaran shipment:read.
404not_foundNombor penjejakan ini tidak ditemui, atau pakej masih belum memasuki sistem penyatuan.
422validation_failedtracking_number tiada atau tidak sepadan dengan format.
429rate_limit_exceededMelebihi had permintaan seminit, lihat Cuba Semula Selepas.

7 Contoh program

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

$res = $client->get('/api/v1/shipment/track', [
    'headers' => ['Authorization' => 'Bearer ' . env('LUCKY_FREIGHT_KEY')],
    'query'   => ['tracking_number' => 'SF1234567890123'],
]);

$d = json_decode($res->getBody(), true)['data'];
echo $d['status'];  // 已入倉
const r = await fetch('https://0523.tw/api/v1/shipment/track?tracking_number=SF1234567890123', {
  headers: { 'Authorization': `Bearer ${process.env.LUCKY_FREIGHT_KEY}` },
});
const { data } = await r.json();
console.log(data.status, data.is_delivered);
curl "https://0523.tw/api/v1/shipment/track?tracking_number=SF1234567890123" \
  -H "Authorization: Bearer $LUCKY_FREIGHT_KEY"

8 amalan terbaik

  • Kekerapan mengundi : Adalah disyorkan untuk menyemak nombor pesanan yang sama setiap 15-30 minit; hasilnya dicache pada pelayan ini selama 5 minit (cached: true bermaksud hit).
  • menghentikan pengundian : Hentikan pengundian apabila is_final = true (ditandatangani/dipulangkan/dibatalkan).
  • Pemacu status : Paparkan dengan rentetan status, gunakan is_delivered / is_final untuk mengekod proses untuk mengelak proses yang sukar status_code (takrifan kod sumber yang berbeza adalah berbeza).
  • Tiada nombor pesanan :404 Berkemungkinan besar bermaksud pakej tersebut belum lagi memasuki sistem penyatuan (pelanggan baru sahaja membuat pesanan tetapi belum menghantarnya), dan anda boleh mencuba lagi kemudian.

9 Sokongan dan versi

sokongan teknikal: howyunqisoftware@gmail.com

Versi API: v1 (stabil).

Sejarah perubahan: 2026-06-01 — API pertanyaan status penghantaran v1 adalah dalam talian.

Dokumentasi API Penghantaran Mohon kunci API