如何整合多承運商配送 API
要整合多承運商配送 API,首先要定義你的系統是否需要配送費率及標籤、建立貨件、追蹤事件,還是三者皆需要。然後選擇一個承運商覆蓋範圍及資料模型符合你業務運作的 API,建立標準化的貨件流程,妥善保護憑證,並在正式上線前測試真實的承運商情境。對許多電子商貿團隊而言,追蹤與標籤生成是兩個獨立的整合項目,因此將兩者視為可互換,可能會造成原本可以避免的缺口。

本指南聚焦於建立可靠多承運商整合背後的實際工作:選擇合適的 API 範圍、對應承運商資料、處理非同步事件、設計重試機制,以及在本地及跨境貨件中驗證結果。
多承運商配送 API 通常包括甚麼
「配送 API」一詞可以描述多種不同功能。在比較供應商之前,先列出你的應用程式必須執行的交易。一個標籤平台可能支援比價、購買標籤、海關資料、建立貨件及作廢標籤。一個追蹤平台可能接受追蹤號碼、識別或接收承運商、返回貨件里程碑,並透過 API 或 webhook 傳送狀態更新。有些供應商涵蓋多個層面,另一些則專注於其中一項。
- 取得費率:在供應商支援的情況下,返回配送選項、服務級別或預計費用。
- 建立貨件:建立貨件記錄,並可能產生標籤或追蹤號碼。
- 追蹤:跨承運商取得目前貨件狀態及事件歷史。
- 通知:當貨件狀態發生變化時向你的系統傳送更新。
- 例外及退貨:在產品範圍包括相關功能時,提供配送問題、退貨事件或逆向物流資料。
不要假設提供追蹤功能的 API 也可以購買標籤,亦不要假設標籤 API 能提供客戶在購買後所需的貨件可見度。請在供應商的官方文件及產品條款中確認每項功能。
1. 定義整合邊界
先撰寫一份簡短的需求文件。文件應列明將傳送及接收資料的系統、你需要的承運商、服務的國家或地區,以及每個狀態所觸發的業務操作。這可避免項目變成含糊的「連接所有承運商」計劃。
列出營運使用情境
- 在結帳時顯示配送選項。
- 在倉庫流程中購買或列印配送標籤。
- 將追蹤號碼附加至訂單。
- 向客戶顯示訂單狀態頁面或配送通知。
- 當包裹延誤、被扣留、退回或已送達時通知支援人員。
- 將承運商事件與訂單、退款及客戶服務個案進行對帳。
為每個使用情境指定負責人。電子商貿營運團隊可能負責標籤及履行流程,而工程團隊負責身份驗證、資料處理及監控。客戶體驗團隊可能負責追蹤頁面及通知。清晰的責任分工十分重要,因為 API 呼叫在技術上成功,並不代表正確的團隊會收到由此產生的例外通知。
區分必要及可選功能
將每項需求標記為必要、優先或不在範圍內。例如,每張訂單可能都需要承運商追蹤,而預計送達日期可能屬於優先功能,標籤作廢則可能不在第一個版本的範圍內。這能讓供應商比較更精確,亦能為團隊制定切合實際的最小可行整合方案。
2. 選擇合適的 API 架構
多承運商連接通常有三種常見方式。
直接整合承運商
你的應用程式分別連接每個承運商。這可以提供直接控制權,但同時亦會產生多套身份驗證方式、請求格式、狀態詞彙、認證要求及維護時間表。當你只使用少量承運商,並需要聚合平台沒有提供的承運商專屬功能時,這種方式可能是合理選擇。
多承運商平台
平台為多個承運商提供單一整合層。主要優點是降低應用程式的複雜性:你的訂單系統可以使用共用流程,而供應商則處理部分承運商之間的差異。取捨是你會依賴平台的覆蓋範圍、資料時效、限制及實作方式。請確認你需要的承運商及服務在目標地區確實獲得支援。
混合架構
混合模式使用聚合平台處理大部分流量,並為選定的承運商或專門業務建立直接連接。對大型或地理分布廣泛的企業而言,這種方式可能很有用,但路由邏輯會變得更複雜。請記錄哪個系統是標籤、追蹤事件、貨件識別碼及配送例外的唯一真實來源。
3. 使用營運標準評估供應商
承運商數量本身並不足以作為選擇標準。供應商可能列出某個承運商,但不支援你的流程所需的服務、國家、事件類型或交易。請使用同一份清單評估各供應商。
| 評估範疇 | 需要確認的問題 |
|---|---|
| 功能範圍 | API 是否提供費率、標籤、追蹤、webhook、退貨,還是只提供其中部分功能? |
| 承運商及地域 | 你所需的承運商、服務、寄件國家及目的地市場是否獲得支援? |
| 資料模型 | 你能否對應承運商專屬的狀態、時間戳記、地點及例外詳情,而不會遺失重要含義? |
| 整合方式 | 供應商是否提供有文件記載的 API 端點、測試憑證、webhook、SDK 或團隊可使用的其他工具? |
| 可靠性控制 | 是否有記載速率限制、錯誤回應、重試指引、維護通知及 webhook 行為? |
| 商業適配度 | 定價模式、使用限制、支援條款及合約要求能否根據預期用量獲得確認? |
如果某項功能沒有公開文件記載,請將其記錄為「需要直接確認」,而不是視為不受支援。請要求供應商使用你的實際承運商、目的地及具代表性的貨件記錄進行概念驗證。
4. 設計標準化資料模型
承運商回應很少會使用完全相同的名稱或事件結構。請建立內部模型,同時保留共用的營運狀態及原始承運商詳細資料。典型的貨件記錄可能包括:
- 內部訂單 ID 及貨件 ID
- 承運商名稱及承運商專屬服務
- 追蹤號碼及包裹識別碼
- 寄件及目的地國家或地區
- 目前標準化狀態
- 原始承運商狀態及描述
- 事件時間戳記、時區及可用的地點
- 例外代碼或訊息
- 上次成功同步時間
使用受控的狀態詞彙,例如已建立標籤、運輸中、派送中、已送達、例外及已退回。同時保留原始回應。標準化有助於面向客戶的系統保持一致,而原始資料則為支援及工程團隊調查不尋常的承運商事件提供所需背景。
5. 分階段建立整合
身份驗證及環境設定
將 API 憑證儲存在秘密管理器中,而不是原始碼、日誌檔案或前端設定中。如果供應商提供獨立環境,請分開使用測試及正式環境憑證。按服務限制存取權限,並根據你的安全政策定期輪換憑證。確認供應商如何驗證請求、需要哪些標頭,以及憑證是否按帳戶、承運商或操作設定範圍。
建立貨件或提交追蹤資料
對於標籤流程,請在發送請求前驗證地址、包裹尺寸、重量、服務選擇及海關欄位。對於追蹤流程,請驗證追蹤號碼及承運商關聯,然後將供應商回應儲存至你的內部貨件 ID。當供應商支援冪等鍵或同等機制時,請讓請求具備冪等性。否則,請設計防護措施,避免逾時造成重複貨件或重複客戶通知。
輪詢及 webhook
輪詢方式簡單直接,但可能產生不必要的流量及延遲更新。Webhook 可以減少重複請求,但需要可從公開網絡連接的端點、在供應商提供時進行簽名驗證、處理重複事件,以及建立重播或對帳流程。穩健的設計通常會結合兩者:接收 webhook 事件以提高速度,然後執行定期對帳,以找出遺漏或延遲的更新。
重試及錯誤處理
在重試前先將錯誤分類。暫時性的網絡故障或供應商速率限制回應,可以透過退避策略重試。地址無效、缺少憑證、不支援的服務或格式錯誤的追蹤號碼,通常需要修正,而不是重複請求。記錄關聯 ID、請求時間、回應代碼及安全的診斷詳情,讓團隊可以在不暴露秘密或個人資料的情況下進行調查。
6. 將跨境貨件視為獨立測試組別
跨境配送帶來的不只是不同的目的地國家。你的流程可能需要海關描述、申報價值、關稅或分類資料、稅務詳情、受限制物品檢查及多次交接。承運商事件的措辭亦可能在出口後或本地派送期間發生變化。
在上線前,至少測試一件本地貨件及數個跨境情境。若這些情況與你的業務相關,請包括一件交接延遲、海關相關例外、事件歷史不完整及退貨的貨件。除非 API 及你自身的業務規則能為該訊息提供可靠依據,否則不要承諾送達日期或海關結果。
7. 在正式環境前驗證整合
API 回應成功只是測試的開始。請使用涵蓋完整訂單生命週期的測試矩陣。
- 為每個必要的承運商或服務提交有效請求。
- 傳送無效或不完整資料,並確認錯誤訊息容易理解。
- 驗證同一貨件不會在逾時或重試後重複建立。
- 傳送重複及亂序事件,以測試事件處理。
- 確認時區及時間戳記顯示正確。
- 檢查例外是否更改正確的內部流程及通知。
- 驗證已送達及已退回的貨件會停止不必要的輪詢。
- 量度處理延遲、錯誤率、webhook 接收率及對帳結果。
在透過新整合路由所有訂單前,先進行有限的正式環境部署。將供應商事件與承運商端記錄及你的倉庫或訂單管理系統進行比較。在整合於正常及例外情況下展現穩定行為之前,請保留建立標籤或客戶服務查詢的手動後備方案。
17TRACK 的定位
對於主要需求是多承運商追蹤而非購買標籤的團隊而言,17TRACK 的 Tracking API 是值得評估的相關選項。其官方 API 文件描述了用於追蹤貨件的開發者整合介面。因此,當電子商貿應用程式需要在訂單管理、客戶服務或購買後體驗中使用承運商狀態資料時,可以考慮此 API。
在未確認範圍前,不要將追蹤 API 視為完整的配送標籤方案。如果你的項目需要費率、標籤生成、海關文件或承運商帳戶管理,請分別評估這些需求,並向供應商要求直接確認。實際的概念驗證應測試你所需的承運商、事件標準化、webhook 或輪詢行為、狀態延遲及例外處理,而不是只依賴功能清單。
常見實作錯誤
- 按承運商數量選擇:列出的承運商可能不涵蓋你所使用的服務或市場。
- 直接將供應商狀態放入使用者介面:承運商用語可能不一致,客戶亦難以理解。
- 忽略重複事件:Webhook 系統通常需要冪等處理。
- 重試每一個失敗:重複的無效請求可能增加負載,卻無法解決根本問題。
- 跳過對帳:遺漏的事件可能令訂單停留在過時狀態。
- 混淆標籤及追蹤的責任歸屬:除非仔細對應識別碼,否則分開的系統可能產生互相衝突的貨件記錄。
- 只測試成功派送:例外及退貨通常才是營運整合發揮價值的地方。
常見問題
配送 API 與追蹤 API 有甚麼分別?
配送 API 可能涵蓋費率、建立貨件、標籤及相關履行操作。追蹤 API 則專注於貨件狀態及事件資料。有些供應商同時提供兩者,另一些則專注於其中一個範疇。在設計整合前,請確認確切的產品範圍。
我應否直接整合每個承運商?
當你使用的承運商很少,或需要承運商專屬功能時,直接整合可能合理。當你需要在多個承運商之間使用共用流程時,多承運商平台可能減少開發及維護工作。較佳選項取決於所需覆蓋範圍、控制程度、成本,以及團隊能夠運作的複雜程度。
Webhook 是否比輪詢更好?
兩者沒有一個在所有情況下都更好。Webhook 可以用較少的重複請求提供更快更新,但需要安全地處理端點並防止重複事件。輪詢較容易控制,但可能不夠即時或需要更多資源。許多正式環境系統會使用 webhook,並配合定期對帳。
我應如何測試多承運商整合?
測試有效貨件、無效請求、重複事件、延遲事件、時區處理、承運商例外、跨境交接、退貨及重試行為。請使用對你的業務真正重要的承運商及目的地,而不要只依賴一般測試範例。
17TRACK 可以提供配送標籤嗎?
本文所引用的公開 17TRACK 產品資料描述的是 Tracking API。如果你的項目需要比價或標籤生成,請直接向供應商確認相關需求,並評估文件所載範圍包括這些功能的方案。


