首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 整合愛快遞 API 查詢物流軌跡完整範例

     編輯:PHP 綜合知識

前置準備

  1. 至 愛快遞 註冊取得 API Key。
  2. 建立快遞公司代碼對照表(如 sto_express => zjs)。

核心程式碼 (ECShop 整合範例)

<?php
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');

if ($order_id = intval($_REQUEST['id'])) {
    // 1. 取得訂單物流資訊
    $sql = "SELECT consignee, mobile, tel, tracking_sn, shipping_code, shipping_name
            FROM " . $GLOBALS['ecs']->table('order_info') . " WHERE order_id = $order_id";
    $order = $GLOBALS['db']->getRow($sql);

    // 2. 映射快遞代碼
    $map = [
        'ems' => 'ems', 'ems2' => 'ems',
        'sto_express' => 'zjs', 'sto_nopay' => 'zjs',
        'zto' => 'zhongtong', 'sto' => 'shentong',
        'yto' => 'yuantong', 'sf' => 'shunfeng',
        'emssn' => 'ems', 'sf2' => 'shunfeng', 'yunda' => 'yunda'
    ];
    $logistics_code = $map[$order['shipping_code']] ?? $order['shipping_code'];

    // 3. 呼叫 API
    $key = 'YOUR_API_KEY';
    $url = "https://www.aikuaidi.cn/rest/?key=$key&order={$order['tracking_sn']}&id=$logistics_code&ord=asc&show=html";
    $result = file_get_contents($url);

    // 4. 輸出
    echo "<div>收貨人: <strong>{$order['consignee']}</strong></div>";
    echo "<div>電話: <strong>{$order['mobile']} / {$order['tel']}</strong></div>";
    echo "<div>物流: <strong>{$order['shipping_name']}</strong></div>";
    echo "<div>單號: <strong>{$order['tracking_sn']}</strong></div>";
    echo $result; // API 直接回傳 HTML 片段
    echo "<br><a href='$url' target='_blank'>查看原始回應</a>";
}

關鍵點說明

  • API 回傳格式由 show=html 決定,亦可用 json 取得結構化資料自行排版。
  • 編碼問題:若 API 回傳 GBK,需 iconv('gbk', 'utf-8', $result)。
  • 錯誤處理:檢查 $result 是否包含錯誤訊息,記錄日誌便於除錯。
  • 快取:同一單號短時間內重複查詢可快取結果,減少 API 呼叫次數。

其他主流物流 API

平台特點
快遞鳥支援 1000+ 家、即時推播、SDK 完善
聚合數據多介面整合、計費靈活
官方開放平台 (順豐、EMS 等)最準確、需企業資質審核
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved