MT

moksa1123/taiwan-ecommerce-toolkit

开发工具
47 stars 质量 40 趋势 40

Taiwan E-Commerce Integration Toolkit - 台灣電商整合開發工具包:電子發票、金流、物流共 22 家服務商串接(ECPay、NewebPay、LINE Pay、ezPay 等),AI-ready skills、production-ready、MIT

概览

Taiwan E-Commerce Toolkit 是專為台灣電商生態系統設計的企業級整合開發工具包,提供完整的電子發票、金流串接、物流整合解決方案。本工具包收錄台灣三大領域共 (9 家發票 + 14 家金流 + 11 家可串接物流),另收錄 10 家**的物流業者與其替代路徑,搭配智能開發工具與生產級程式碼範例,協助開發團隊快速完成電商系統整合。 - [email protected]+ — 9 家發票(ECPay / SmilePay / Amego / ezPay / PayNow / O'Pay / SunPay / 財政部大平台 / 關貿) - [email protected]+ — 14 家金流(ECPay / NewebPay / PAYUNi / SmilePay / PChomePay / ezPay / PayNow / Shopline / LINE Pay / TapPay / O'Pay / 街口 / 紅陽 / GoMyPay) - [email protected]+ — 11 家可串接物流(7 aggregator + HCT 直連 + 3 家即時配送)+ 10 家僅供查詢 :財政部大平台是上游,只做查詢/驗證(手機條碼、載具、捐贈碼),;關貿網路已收錄於資料層,但文件需簽約,尚無 reference。 :黑貓、嘉里大榮、宅配通、中華郵政、7-11 交貨便、全家好賣+、萊爾富、OK、蝦皮店到店都**,只能經聚合商。這些在 providers.csv 標為 api_available=false 並附替代路徑,避免誤以為可直連;紅陽物流的參數規格尚未公開,同樣標為 false。 安裝舊版會看到 npm deprecation 提示(55 個舊版已 deprecated)— 請以 npm shield 上的 latest 版本為準。

README

Taiwan E-Commerce Integration Toolkit

台灣電商整合開發工具包

電子發票 · 金流串接 · 物流整合


專案概覽

Taiwan E-Commerce Toolkit 是專為台灣電商生態系統設計的企業級整合開發工具包,提供完整的電子發票、金流串接、物流整合解決方案。本工具包收錄台灣三大領域共 34 個服務商(9 家發票 + 14 家金流 + 11 家可串接物流),另收錄 10 家無法直接串接的物流業者與其替代路徑,搭配智能開發工具與生產級程式碼範例,協助開發團隊快速完成電商系統整合。

最新版本(請以 npm 為準):

  • [email protected]+ — 9 家發票(ECPay / SmilePay / Amego / ezPay / PayNow / O’Pay / SunPay / 財政部大平台 / 關貿)
  • [email protected]+ — 14 家金流(ECPay / NewebPay / PAYUNi / SmilePay / PChomePay / ezPay / PayNow / Shopline / LINE Pay / TapPay / O’Pay / 街口 / 紅陽 / GoMyPay)
  • [email protected]+ — 11 家可串接物流(7 aggregator + HCT 直連 + 3 家即時配送)+ 10 家僅供查詢

發票的兩個例外:財政部大平台是上游,只做查詢/驗證(手機條碼、載具、捐贈碼),不能開立發票;關貿網路已收錄於資料層,但文件需簽約,尚無 reference。

物流的「僅供查詢」是什麼:黑貓、嘉里大榮、宅配通、中華郵政、7-11 交貨便、全家好賣+、萊爾富、OK、蝦皮店到店都沒有對外商家 API,只能經聚合商。這些在 providers.csv 標為 api_available=false 並附替代路徑,避免誤以為可直連;紅陽物流的參數規格尚未公開,同樣標為 false。

狀態: Production Ready · MIT 授權

安裝舊版會看到 npm deprecation 提示(55 個舊版已 deprecated)— 請以 npm shield 上的 latest 版本為準。


快速開始

Step 1: 安裝 CLI 工具

# 依需求選擇安裝 (擇一或全裝)
npm install -g taiwan-invoice-skill     # 電子發票
npm install -g taiwan-payment-skill     # 金流串接
npm install -g taiwan-logistics-skill   # 物流整合

Step 2: 初始化專案

# 進入你的專案目錄
cd /path/to/your/project

Step 3: 開始使用

初始化完成後,啟動你的 AI 助手,直接用自然語言描述需求:

使用綠界測試環境產生 B2C 發票開立程式碼,金額 1050 元

建立 ECPay 信用卡付款訂單,交易金額 2500 元

查詢台北市信義區的 7-11 超商取貨點資訊

核心特色

企業級程式碼標準

所有程式碼範例均達到生產環境品質標準:

  • 完整型別定義 - Python Dataclass 搭配 Literal、Optional、Dict 型別提示
  • 專業文件規範 - 詳細的 Docstring 文件 (Args/Returns/Raises/Example)
  • 嚴謹錯誤處理 - 系統化錯誤分類與自動重試機制
  • 實戰測試憑證 - 包含測試環境憑證,可直接執行驗證
  • 可維護架構 - 遵循 SOLID 原則,易於擴展與維護

BM25 智能搜尋引擎

採用 BM25 演算法實作的語義搜尋系統,支援跨領域智能查詢:

# 錯誤碼查詢
python scripts/search.py "10000009" --domain error

# 欄位映射搜尋
python scripts/search.py "CheckMacValue" --domain field

# 稅務規則查詢
python scripts/search.py "B2B 稅額計算" --domain tax

智能推薦系統

基於關鍵字權重與 BM25 評分的服務商推薦引擎:

# 發票加值中心推薦
python taiwan-invoice/scripts/recommend.py "電商平台 高交易量 系統穩定"

# 金流平台推薦
python taiwan-payment/scripts/recommend.py "整合簡單 快速上線 多元支付"

# 物流服務推薦
python taiwan-logistics/scripts/recommend.py "超商取貨 溫控配送 冷凍宅配"

自動化程式碼生成器

支援 TypeScript 與 Python 雙語言輸出的程式碼生成工具:

# 生成發票服務模組
python taiwan-invoice/scripts/generate-invoice-service.py ECPay --lang typescript --output ./services

# 生成物流服務模組
python taiwan-logistics/scripts/generate-logistics-service.py PAYUNi --output ts

資料驅動架構

採用 CSV 檔案管理核心數據,便於維護與更新:

  • providers.csv - 服務商比較資訊
  • operations.csv - API 端點定義
  • error-codes.csv - 錯誤碼對照表
  • field-mappings.csv - 欄位映射關係
  • tax-rules.csv - 稅務計算規則

系統化錯誤處理

完整的錯誤處理機制與自動重試策略:

  • 錯誤分類 - 6 大類別 (驗證/認證/權限/業務邏輯/網路/伺服器)
  • 自動重試 - 4 種重試策略 (NO_RETRY/IMMEDIATE/EXPONENTIAL_BACKOFF/LINEAR_BACKOFF)
  • 智能建議 - 針對性錯誤解決方案
  • 詳細日誌 - 完整的錯誤追蹤記錄

專案結構

taiwan-ecommerce-toolkit/
├── README.md                      # 本文件 (總覽)
├── LICENSE                        # MIT 授權
├── CLAUDE.md                      # Claude Code 專案指引
│
├── taiwan-invoice/                # 電子發票核心內容 (Source of Truth)
│   ├── README.md                  # 發票專案說明
│   ├── SKILL.md                   # AI 技能文檔
│   ├── EXAMPLES.md                # 程式碼範例
│   ├── references/                # API 文件
│   ├── examples/                  # 生產級 Python 範例
│   ├── scripts/                   # Python 智能工具
│   └── data/                      # CSV 數據檔
│
├── taiwan-payment/                # 金流整合核心內容 (Source of Truth)
│   ├── README.md                  # 金流專案說明
│   ├── SKILL.md                   # AI 技能文檔
│   ├── EXAMPLES.md                # 程式碼範例
│   ├── references/                # API 文件
│   ├── examples/                  # 生產級 Python 範例
│   ├── scripts/                   # Python 智能工具
│   └── data/                      # CSV 數據檔
│
├── taiwan-logistics/              # 物流串接核心內容 (Source of Truth)
│   ├── README.md                  # 物流專案說明
│   ├── SKILL.md                   # AI 技能文檔
│   ├── EXAMPLES.md                # 程式碼範例
│   ├── references/                # API 文件
│   ├── examples/                  # 生產級 Python 範例
│   ├── scripts/                   # Python 智能工具
│   └── data/                      # CSV 數據檔
│
├── invoice-cli/                   # 發票 CLI (npm: taiwan-invoice-skill)
│   ├── src/                       # TypeScript 源碼
│   ├── assets/                    # 打包資源
│   └── dist/                      # 編譯輸出
│
├── payment-cli/                   # 金流 CLI (npm: taiwan-payment-skill)
│   ├── src/                       # TypeScript 源碼
│   ├── assets/                    # 打包資源
│   └── dist/                      # 編譯輸出
│
└── logistics-cli/                 # 物流 CLI (npm: taiwan-logistics-skill)
    ├── src/                       # TypeScript 源碼
    ├── assets/                    # 打包資源
    └── dist/                      # 編譯輸出

廠商整合支援

電子發票 (7 家加值中心 + 財政部大平台)

加值中心 加密 / 認證 技術特點 API 風格
ECPay 綠界 AES-128-CBC + HashKey/HashIV 市佔率高、SDK 完整、文件最齊 JSON (AES 加密)
SmilePay 速買配 Grvc + Verify_key 共享密鑰 老牌穩定、無 AES 門檻、整合最簡單 URL Parameters
Amego 光貿 MD5 簽章 + App Key MIG 4.0 標準、現代 RESTful JSON (URL Encoded)
ezPay 簡單付 AES-256-CBC + SHA256 (32 碼 HashKey) 藍新集團小型品牌、字軌管理、批次開立 Form Post (MerchantID_ / PostData_)
PayNow 立吉富 JWT Bearer Token 金物流發票一站式、POS 機批次取號 RESTful JSON
O’Pay 歐付寶 MerchantID + RqHeader + AES 加密 Data 與綠界發票 API 同源架構,網域與金鑰不同 JSON (AES 加密)
SunPay 紅陽 Token 欄位 AES-128-CBC 可與紅陽金流搭配隨交易自動開立 JSON
財政部大平台 AppID + APIKey(HMAC-SHA256 加簽) 只做查詢/驗證(手機條碼、捐贈碼、中獎號碼),不能開立 Form POST

金流串接平台 (14 家)

金流平台 加密 / 認證 支援付款方式 技術特點
ECPay 綠界 SHA256 CheckMacValue 信用卡 / ATM / WebATM / 超商代碼 / 超商條碼 / Apple Pay / TWQR / 微信 / 無卡分期(裕富、中租)/ DigitalPayment(街口、一卡通 MONEY) 市佔率最高、文檔最完整
NewebPay 藍新 AES-256-CBC + SHA256 信用卡 / 分期 (InstFlag) / ATM / CVS / LINE Pay / Apple Pay / Google Pay / Samsung Pay / TWQR / 玉山 / 台灣Pay / 跨境支付寶/微信 / CVSCOM MPG 整合、信用卡記憶
PAYUNi 統一 AES-256-GCM + SHA256 信用卡 (Token) / ATM / CVS / JKoPay (街口) / ICASH (愛金卡) / AFTEE / LinePay RESTful JSON、AFTEE 獨家
SmilePay 速買配 Verify_key + Mid_smilepay 加權檢核碼 ATM / Barcode / ibon / FamiPort / 信用卡 / 分期 / 聯合信用卡 (Pay_zg=1/2/3/4/6/11) XML 回應、Pay_zg 編碼
PChomePay 拍錢包 HTTP Basic Auth → 8h pcpay-token 信用卡 (CARD) / ATM / 超商代碼 (BCODE) / 拍錢包 (PI, 5% P 幣回饋) / 超商取貨 (IPL7/IPLFM/IPLHL) 金物流二合一、PChome 生態
ezPay 簡單付 AES-256-CBC(32-byte padding)+ SHA256 HashData ezPay 帳戶 / 約定連結帳戶 / 約定信用卡 / TWQR 跨機構;跨境支付寶 / 微信 電子支付機構、/API/Twqr/*
PayNow 立吉富 JWT Bearer (現代) / 動態 AES-256 (傳統) CreditCard / Installment / ATM / CVS / LINE Pay 線上+線下 / Apple Pay + ApplePayDeferred 延遲扣款 雙 API、Stripe-like PaymentIntent
Shopline Payments merchantId + apiKey HTTP Header 信用卡 / Apple Pay / LINE Pay / 街口 / ATM / 中租 BNPL RESTful JSON、金額以分為單位、HMAC-SHA256 Webhook
LINE Pay v4 Channel ID + Secret + 每次 HMAC-SHA256 + Nonce LINE Pay 直連、Preapproved Pay 自動扣款 Request → Confirm 兩段、跨國
TapPay Partner Key + App Key + Merchant ID 信用卡 / Apple Pay / Google Pay / LINE Pay / 街口 / Virtual Account PCI 隔離、Prime 兩段式、Card Token 重複扣款
O’Pay 歐付寶 SHA256 CheckMacValue(同 ECPay) 信用卡 / ATM / 超商 / AccountLink 銀行快付 / 儲值消費 / 微信 / TWQR 與 ECPay 同源架構、延遲撥款
JKOPAY 街口 api-key Header + HMAC-SHA256 digest 線上支付 / POS / 授權扣款 / 街口幣 專營電支、官方公開文件站
SunPay 紅陽 RSA 分段加密 + SHA256 check_value 信用卡 / ATM / 超商代收 收錄的金流中唯一使用 RSA
GoMyPay 需申請文件 信用卡 / 銀聯 / WEBATM / 虛擬帳號 / 超商條碼 / 定期扣款 參數規格待補

物流串接服務 (11 家:7 aggregator + HCT 直連 + 3 即時配送)

物流服務 類型 加密 / 認證 支援物流類型 技術特點
ECPay 綠界 aggregator MD5 CheckMacValue B2C 7-11(含冷凍)/ 全家 / 萊爾富;C2C 四大超商;宅配黑貓 / 中華郵政 市佔率最高、SDK 完整
NewebPay 藍新 aggregator AES-256-CBC + SHA256 B2C 僅 7-11;C2C 四大超商;無宅配 取貨付款/不付款皆 ≤ 20,000
PAYUNi 統一 aggregator AES-256-GCM + SHA256 7-11 (常溫/冷凍) / T-Cat (常溫/冷藏/冷凍) 溫控配送最完整
SmilePay 速買配 aggregator Verify_key + Mid_smilepay 加權檢核碼 7-11 C2C+B2C / 全家 C2C / 黑貓 COD+PICKUP+逆物流 Pay_zg 矩陣 51/52/55/56/57/58/81/82/83
PChomePay 拍錢包 aggregator HTTP Basic Auth → token 7-11 / 全家 / 萊爾富(取貨付款) 金物流二合一、Notify IP 113.196.231.190
PayNow 立吉富 aggregator 3DES / ECB / Zero-Padding(不同於金流端) 11 條產品線(含海外配送、冷凍) 雙 API(金流 vs 物流加密不同)
ezShip 台灣便利配 aggregator 無簽章(su_id 帳號綁定) 全家 / 萊爾富 / OK / 宅配 / 店港澳 不含 7-11
HCT 新竹物流 direct carrier API 自訂加密(申請後提供) 直連 carrier API 收錄的聚合商都沒有新竹物流選項
Lalamove 即時配送 HMAC-SHA256 自簽 同城即時配送 先報價後下單(報價 5 分鐘效期)
pandago 即時配送 OAuth 2.0 + RSA 簽 JWT assertion 同城即時配送 費用與時間為兩支獨立端點
Uber Direct 即時配送 OAuth 2.0 client_credentials 同城即時配送 Token 30 天,台灣可用性未經官方確認

多平台支援

支援 14 種 AI 編碼助手平台,涵蓋主流開發工具:

平台 啟動方式 平台 啟動方式
Claude Code /taiwan-* Antigravity /taiwan-*
Cursor /taiwan-* Kiro /taiwan-*
Windsurf 自動載入 Codex 自動載入
GitHub Copilot /taiwan-* Qoder 自動載入
Cline 自動載入 OpenCode 自動載入
Gemini CLI 自動載入 Continue 自動載入
Trae 自動載入 CodeBuddy 自動載入

CLI 指令

共通指令

# 列出支援平台
taiwan-invoice list
taiwan-payment list
taiwan-logistics list

# 顯示技能資訊
taiwan-invoice info
taiwan-payment info
taiwan-logistics info

# 檢查更新
taiwan-invoice update
taiwan-payment update
taiwan-logistics update

# 覆蓋安裝
taiwan-invoice init --force
taiwan-payment init --force
taiwan-logistics init --force

Python 範例程式

電子發票範例

生產級 ECPay 發票整合實作:

  • ecpay-invoice-example.py
    • B2C 二聯式發票開立
    • B2B 三聯式發票開立
    • 發票作廢 (void_invoice)
    • 發票折讓 (issue_allowance)
    • AES-128-CBC 完整加解密
    • B2B 金額自動計算 (含稅轉未稅+稅額)

金流串接範例

完整的金流整合實作,遵循企業級開發規範:

物流串接範例

完整的超商物流 (CVS) 與宅配整合實作:

程式碼規範

所有範例皆包含:

  • 完整的 Dataclass 資料結構定義
  • 詳細的型別提示 (Literal, Optional, Dict[str, any])
  • 專業的 Docstring 說明文件
  • 完善的錯誤處理機制與中文錯誤訊息
  • 測試環境憑證與使用範例
  • 可直接用於生產環境的程式碼品質

智能開發工具

所有工具皆採用純 Python 實作,無需安裝外部依賴套件。

BM25 搜尋引擎

# 電子發票錯誤碼查詢
python taiwan-invoice/scripts/search.py "10000009" --domain error

# 金流欄位映射查詢
python taiwan-payment/scripts/search.py "CheckMacValue" --domain field

# 物流 API 端點查詢
python taiwan-logistics/scripts/search.py "查詢物流狀態" --domain operation

服務商推薦系統

# 電子發票加值中心推薦
python taiwan-invoice/scripts/recommend.py "電商平台 高交易量 系統穩定"

# 金流平台推薦
python taiwan-payment/scripts/recommend.py "整合簡單 快速上線"

# 物流服務推薦
python taiwan-logistics/scripts/recommend.py "超商取貨 溫控配送"

程式碼生成器

# 產生發票服務模組
python taiwan-invoice/scripts/generate-invoice-service.py ECPay --lang typescript --output ./services

# 產生物流服務模組
python taiwan-logistics/scripts/generate-logistics-service.py PAYUNi --output ts

系統化錯誤處理

from error_handler import InvoiceErrorHandler, retry_on_error

# 查詢錯誤資訊
handler = InvoiceErrorHandler(provider='ecpay')
info = handler.get_error_info('10000009')
print(info.suggestion)

# 自動重試裝飾器
@retry_on_error(max_retries=3, backoff_factor=2)
def issue_invoice(data):
    # 失敗時自動重試 3 次 (1s, 2s, 4s 間隔)
    pass

常見問題


技術規格

系統需求

  • Node.js: >= 18.0.0 (CLI 工具)
  • Python: >= 3.8 (範例程式與智能工具)
  • TypeScript: >= 5.0 (程式碼生成器輸出)

Python 依賴

# 範例程式所需依賴
pip install pycryptodome requests

# 智能工具無需外部依賴 (純 Python 標準庫)

支援的加密方式

演算法 應用
AES-128-CBC ECPay 電子發票
AES-256-CBC NewebPay 金流、ezPay 金流(電子支付平台 / 跨境 MPG,32-byte padding)、ezPay 發票、NewebPay 物流
AES-256-GCM PAYUNi 金流 / 物流(EncryptInfo = hex(base64(密文) + ::: + base64(tag)))
動態 AES-256 (GP/GK) PayNow 傳統 cashflow(每次以 GP/GK 檢核碼取 Key/IV)
3DES / ECB / Zero-Padding PayNow 物流(24-byte Key + 8-byte IV,不同於金流端 AES-256)
JWT Bearer Token PayNow 現代 PaymentIntent、PayNow 發票
HTTP Basic → Token PChomePay(取得 8 小時 pcpay-token)
Verify_key + 加權檢核碼 SmilePay(無 AES,反推 Mid_smilepay 算法)
HMAC-SHA256 + Nonce LINE Pay v4
HMAC-SHA256 (Webhook) Shopline Payments
Partner Key + Prime 兩段式 TapPay(PCI 隔離)
SHA256 ECPay/NewebPay/PAYUNi/ezPay 多家用作 CheckMacValue / TradeSha / HashInfo / HashData / CheckCode
MD5 Amego 發票、ECPay 物流

開發與貢獻

Git 工作流程

# 1. Clone 專案
git clone https://github.com/Moksa1123/taiwan-ecommerce-toolkit.git
cd taiwan-ecommerce-toolkit

# 2. 建立功能分支
git checkout -b feat/your-feature

# 3. 修改對應的核心內容目錄
# - taiwan-invoice/     (發票相關)
# - taiwan-payment/     (金流相關)
# - taiwan-logistics/   (物流相關)

# 4. 同步到 CLI assets (發布前)
cp -r taiwan-invoice/* invoice-cli/assets/taiwan-invoice/
cp -r taiwan-payment/* payment-cli/assets/taiwan-payment/
cp -r taiwan-logistics/* logistics-cli/assets/taiwan-logistics/

# 5. 提交變更
git add .
git commit -m "feat: description"
git push -u origin feat/your-feature

# 6. 建立 Pull Request
gh pr create

發布流程 (維護者)

發布由 GitHub Actions 於 tag 推送時觸發,不需手動 npm publish。完整說明見 RELEASING.md。

# 1. 更新版本號(assets 同步已由 build 自動處理,不需手動 cp)
cd payment-cli && npm version minor --no-git-tag-version && cd ..

# 2. 本機驗證
node scripts/sync-assets.mjs          # 同步 assets
python scripts/validate-data.py       # CSV 完整性
python taiwan-payment/scripts/test_recommend.py

# 3. commit 後打 tag 觸發發布
git add -A && git commit -m "chore(payment): bump to 1.4.0" && git push
git tag payment-v1.4.0 && git push origin payment-v1.4.0

tag 前綴決定發布哪個套件:invoice-v* / payment-v* / logistics-v*。 workflow 會驗證 tag 版號與 package.json 一致、assets 已同步、資料檔完整、回歸測試通過,任一不過即中止發布。

使用者安裝流程

# 1. 全域安裝 CLI 工具
npm install -g taiwan-invoice-skill
npm install -g taiwan-payment-skill
npm install -g taiwan-logistics-skill

# 2. 進入專案目錄
cd /path/to/your/project

# 3. 初始化技能檔案 (選擇 AI 平台)
taiwan-invoice init --ai claude
taiwan-payment init --ai claude
taiwan-logistics init --ai claude

# 4. 啟動 AI 助手,開始使用
# Claude Code: 直接描述需求或使用 /taiwan-invoice
# Cursor: 使用 /taiwan-invoice 斜線命令
# Windsurf: 自動載入,直接描述需求

授權

MIT License


相關連結


Made by Moksa [email protected]

View this README on GitHub

推荐工具

换一个关键词,或者移除筛选条件。

安装

npx skillfish add moksa1123/taiwan-ecommerce-toolkit