PHPackages                             carllee1983/ecpay-fulllogistics - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. carllee1983/ecpay-fulllogistics

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

carllee1983/ecpay-fulllogistics
===============================

綠界科技全方位物流服務 PHP SDK

v1.0.0(5mo ago)00MITPHPPHP ^8.3

Since Nov 27Pushed 5mo agoCompare

[ Source](https://github.com/CarlLee1983/ecpay-fulllogistics)[ Packagist](https://packagist.org/packages/carllee1983/ecpay-fulllogistics)[ RSS](/packages/carllee1983-ecpay-fulllogistics/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (6)Versions (2)Used By (0)

ECPay FullLogistics SDK
=======================

[](#ecpay-fulllogistics-sdk)

綠界科技全方位物流服務 PHP SDK

安裝
--

[](#安裝)

```
composer require carllee1983/ecpay-fulllogistics
```

環境需求
----

[](#環境需求)

- PHP 8.3+
- OpenSSL 擴展
- JSON 擴展
- TLS 1.2 支援（綠界僅支援 TLS 1.2 以上加密通訊協定）

重要注意事項
------

[](#重要注意事項)

### 安全性警告

[](#安全性警告)

- **請勿將 HashKey/HashIV 存放或顯示於前端網頁**（如 JavaScript、HTML、CSS），避免金鑰被盜取造成損失及資料外洩
- 務必透過環境變數或設定檔管理金鑰，確保不納入版本控制

### API 特點

[](#api-特點)

- 資料傳遞格式採用 **JSON** 及 **AES-128-CBC** 加密機制
- 導入暫存訂單機制，適合結帳後仍有修改部分出貨資訊需求的廠商
- 採用 RWD 整合物流選擇頁面，廠商無需自行製作頁面

支援的功能
-----

[](#支援的功能)

### 物流訂單建立

[](#物流訂單建立)

類別別名說明`OpenLogisticsSelection``selection`開啟物流選擇頁`UpdateTempTrade``temp`更新暫存物流訂單`CreateLogisticsOrder``create`建立正式物流訂單`GenerateB2CTestData``test_data`B2C 一段標測試資料產生### 列印

[](#列印)

類別別名說明`PrintTradeDocument``print`列印託運單### 逆物流

[](#逆物流)

類別別名說明`ReturnUnimart``return_unimart`7-ELEVEN 逆物流 (B2C)`ReturnFami``return_fami`全家逆物流 (B2C)`ReturnHilife``return_hilife`萊爾富逆物流 (B2C)`ReturnHome``return_home`宅配逆物流### 查詢

[](#查詢)

類別別名說明`QueryLogisticsOrder``query`查詢物流訂單### 異動與取消

[](#異動與取消)

類別別名說明`UpdateB2COrder``update_b2c`異動訂單 (B2C)`UpdateC2COrder``update_c2c`異動訂單 (C2C)`CancelC2COrder``cancel`取消訂單 (C2C)### 通知處理

[](#通知處理)

類別說明`LogisticsNotify`物流狀態通知`ReverseLogisticsNotify`逆物流狀態通知設定
--

[](#設定)

### 環境變數

[](#環境變數)

```
ECPAY_FULLLOGISTICS_SERVER=https://logistics-stage.ecpay.com.tw
ECPAY_FULLLOGISTICS_MERCHANT_ID=your_merchant_id
ECPAY_FULLLOGISTICS_HASH_KEY=your_hash_key
ECPAY_FULLLOGISTICS_HASH_IV=your_hash_iv
```

### Laravel 整合

[](#laravel-整合)

發布設定檔：

```
php artisan vendor:publish --provider="CarlLee\EcPayFullLogistics\Laravel\EcPayFullLogisticsServiceProvider"
```

基本用法
----

[](#基本用法)

### 開啟物流選擇頁

[](#開啟物流選擇頁)

```
use CarlLee\EcPayFullLogistics\Factories\OperationFactory;
use CarlLee\EcPayFullLogistics\Parameter\LogisticsType;

$factory = new OperationFactory([
    'merchant_id' => 'your_merchant_id',
    'hash_key' => 'your_hash_key',
    'hash_iv' => 'your_hash_iv',
]);

$selection = $factory->make('selection')
    ->setMerchantTradeNo('ORDER_' . time())
    ->setLogisticsType(LogisticsType::CVS)
    ->setGoodsAmount(1000)
    ->setGoodsName('測試商品')
    ->setSenderName('寄件人')
    ->setSenderCellPhone('0912345678')
    ->setServerReplyURL('https://your-domain.com/logistics/callback');

$response = $selection->send();

if ($response->isSuccess()) {
    $tempLogisticsId = $response->getTempLogisticsID();
    // 處理成功邏輯
}
```

### 建立正式物流訂單

[](#建立正式物流訂單)

```
use CarlLee\EcPayFullLogistics\Parameter\LogisticsSubType;

$order = $factory->make('create')
    ->setMerchantTradeNo('ORDER_' . time())
    ->setLogisticsSubType(LogisticsSubType::UNIMART_C2C)  // 7-ELEVEN C2C
    ->setGoodsAmount(1000)
    ->setGoodsName('測試商品')
    ->setSenderName('寄件人')
    ->setSenderCellPhone('0912345678')
    ->setReceiverName('收件人')
    ->setReceiverCellPhone('0987654321')
    ->setReceiverStoreID('991182')
    ->setServerReplyURL('https://your-domain.com/logistics/callback');

$response = $order->send();

if ($response->isSuccess()) {
    $logisticsId = $response->getAllPayLogisticsID();
    $validationNo = $response->getCVSValidationNo();
}
```

### 從暫存訂單建立正式訂單

[](#從暫存訂單建立正式訂單)

```
$order = $factory->make('create')
    ->fromTempTrade($tempLogisticsId);

$response = $order->send();
```

### 處理物流狀態通知

[](#處理物流狀態通知)

```
use CarlLee\EcPayFullLogistics\Notifications\LogisticsNotify;

$notify = new LogisticsNotify($hashKey, $hashIV);
$notify->handle($_POST);

if ($notify->isSuccess()) {
    $logisticsId = $notify->getAllPayLogisticsID();
    $status = $notify->getLogisticsStatus();

    // 更新訂單狀態

    echo $notify->getSuccessResponse(); // 1|OK
}
```

### 查詢物流訂單

[](#查詢物流訂單)

```
$query = $factory->make('query')
    ->setAllPayLogisticsID('1234567890');

$response = $query->send();

if ($response->isSuccess()) {
    $status = $response->getLogisticsStatus();
    $statusName = $response->getLogisticsStatusName();
}
```

### 列印託運單

[](#列印託運單)

```
// 單筆列印
$print = $factory->make('print')
    ->setAllPayLogisticsID('1234567890');

// 批次列印
$print = $factory->make('print')
    ->batch(['1234567890', '1234567891']);

$response = $print->send();
$printUrl = $response->getPrintUrl();
```

Laravel 使用方式
------------

[](#laravel-使用方式)

```
use CarlLee\EcPayFullLogistics\Laravel\Facades\EcPayFullLogistics;

// 使用 Facade
$selection = EcPayFullLogistics::make('selection')
    ->setMerchantTradeNo('ORDER_' . time())
    ->setLogisticsType(LogisticsType::CVS)
    // ...

$response = $selection->send();
```

測試環境資訊
------

[](#測試環境資訊)

類型特店編號HashKeyHashIVC2C20001325294y06JbISpM5x9v77hoKGq4kWxNNISB2C2000933XBERn1YOvpM9nfZch1ONHk4P4yqbl5LK測試環境網址：`https://logistics-stage.ecpay.com.tw`正式環境網址：`https://logistics.ecpay.com.tw`

相關資源
----

[](#相關資源)

- [全方位物流服務API技術文件](https://developers.ecpay.com.tw/?p=10075)
- [綠界特店管理後台（測試）](https://vendor-stage.ecpay.com.tw/)

授權
--

[](#授權)

MIT License

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance71

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

164d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6cc3f5bb28af8b207b65843e86f3b3e9feb1efd05b8ba888e1fa223a370ab822?d=identicon)[Carl Lee](/maintainers/Carl%20Lee)

---

Top Contributors

[![CarlLee1983](https://avatars.githubusercontent.com/u/8252510?v=4)](https://github.com/CarlLee1983 "CarlLee1983 (1 commits)")

---

Tags

cvsshippingpostTaiwanlogisticsB2Cecpayconvenience-storec2c7-elevenfamily-marthilifetcat

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/carllee1983-ecpay-fulllogistics/health.svg)

```
[![Health](https://phpackages.com/badges/carllee1983-ecpay-fulllogistics/health.svg)](https://phpackages.com/packages/carllee1983-ecpay-fulllogistics)
```

###  Alternatives

[dsposito/argo

A shipping utility.

23177.0k](/packages/dsposito-argo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
