本專案為非官方的個人專案,由 Mitchell Chen 一個人撰寫與維護,與歐付寶電子支付股份有限公司無任何從屬或合作關係。
這份文件是我一個人做的。
我叫 Mitchell Chen。2016 年 2 月 15 日到歐付寶報到,2025 年 7 月 30 日離開歐付寶、轉入母公司歐買尬,前後九年五個月。
離開一年多之後,我看著 AI 一路進步,而歐付寶的串接文件仍然沒有變得 AI 友善。
我等了很久,沒有等到,所以就用 g0v 那句「如果沒有人,那我就是那個人」的精神,自己動手做了這一份。
沒有團隊、沒有組織,也沒有人交辦。這個 repo 的每一個決定都是我一個人下的,寫錯的地方也算我的。
台灣的電子發票是法定義務,不是選配功能。只要你在台灣做生意、收得到錢,遲早要面對它。
但要把電子發票串起來,你得先跨過這些門檻:
- 三份官方技術文件,加起來七十幾個章節、幾百張表格。
- 表格跨頁斷裂,Ctrl+F 搜不到欄位名。
- 加密規格寫在附錄,而附錄在第 200 頁。
- 錯誤碼表不完整,很多錯誤只能靠猜。
- 台灣有多家加值中心,名稱相近、文件排版相似,但 API 完全不相容——把甲家的做法套到乙家,可以卡掉一整個下午。
這些都不是「技術難度」,是資訊落差。
大公司有專人研究、有窗口可以問、有前輩踩過雷。一人團隊、剛接案的工程師、想自己架站的小店老闆,只能自己撞。同樣一件事,有人半天做完,有人做三天——差別不在能力,在有沒有人告訴你哪裡會痛。
我認為,這種落差不該是做生意的入場費。
歐付寶的技術文件是公開的。但「公開」和「好用」是兩件事。
一份沒有目錄、沒有索引、表格跨頁斷裂的技術文件,技術上公開,實務上是門檻。把它整理成結構化、可檢索、有出處的 Markdown,不創造新資訊,只是降低取用成本。
本 repo 不說「相信我,加密就是這樣做」。
我給你 4 組測試向量、Python 與 Node.js 兩支驗證器,你自己跑一次,4/4 pass 就是通過。所有規格都標註來源文件與章節,你可以回去對照官方原文。
可驗證比可信任重要。 因為可信任要求你放棄判斷,可驗證讓你保留判斷。
多數技術文件只寫「怎麼做」,不寫「做錯會怎樣」。
但實務上真正耗時間的,永遠是後者:加密順序錯了不會噴錯、逾時重送會開出兩張發票、字軌用完是在週日下午發現、B2B 只做一半會讓對方永遠停在等待確認。
所以本 repo 大量篇幅在寫「不要做什麼」。這不是囉唆,這是把別人踩過的雷標在地圖上。
大型語言模型對台灣本地 API 的記憶是破碎的。它可能自信地告訴你要算 CheckMacValue——那是另一家公司的做法。
AI Skill 的意義就在這裡:把正確的規格放在 AI 手邊,讓它查而不是猜。
這不是為了讓 AI 更聰明,是為了讓你不用去驗證 AI 說的每一句話。
本 repo 的每一張圖都遵循 docs/accessibility.md:WCAG AAA 對比、色盲安全色盤、每張圖附純文字重述、圖示與文字雙編碼。
理由很簡單:如果一份文件只有部分人讀得到,它就沒有完成它的工作。
而且純文字重述順便讓 AI 爬蟲、純文字終端、Mermaid 渲染失敗的讀者也讀得到。無障礙從來不只服務身障者。
本專案認同 g0v 零時政府的核心主張,並以此自我要求:
| g0v 精神 | 本專案的實踐 |
|---|---|
| 開源協作 | 全部內容 MIT 授權,歡迎 fork、修改、商用 |
| 資訊透明 | 誠實揭露 AI 協助整理的產出過程與其限制 |
| 公民參與 | 任何人都能開 issue 指出錯誤,不需要是工程師 |
| 不等待授權 | 不等官方出 SDK,先做出來再說 |
| 降低參與門檻 | 全繁體中文、白話解釋、每個術語都寫「什麼時候會遇到」 |
| 做自己的需求 | 這份文件的第一個使用者是我自己 |
g0v 有一句話:「不要問為什麼沒有人做這個,先承認你就是那個『沒有人』。」
這個 repo 就是這句話的產物。
我也承接 g0v 的另一個習慣:做的東西要能被別人接手。 所以有 SSOT 檔案、有 CI 驗證腳本、有貢獻指南、有 roadmap。一個人做的東西最大的風險就是這個人不做了;如果哪天我停下來,這個 repo 應該還能被下一個人撿起來繼續做。
這是一個人做的作品,但我把它定位為數位公共財(digital public good)。
具體意思是:
- ✅ 永遠開源,MIT 授權,不設商用限制。
- ✅ 不放廣告、不做導流、不收費、不設 pro 版。
- ✅ 不推薦特定廠商——本 repo 只講歐付寶,是因為它是本 repo 的主題,不是因為我認為它比較好。
- ✅ 不收集使用者資料,沒有 telemetry、沒有追蹤。
- ✅ 誠實標示不確定性——官方沒寫清楚的地方,我就說「官方沒寫清楚」,不編造。
- ❌ 不保證內容完整正確。這是我一個人整理的資料,會有錯。
- ❌ 不提供技術支援或 SLA。開 issue 我會看,但不保證回覆時間。
- ❌ 不承擔使用後果。你用這份文件開錯發票,責任在你。
- ❌ 不代表官方立場,也不宣稱任何法規符合性。
因為模糊的期待會傷害雙方。
如果你以為這是官方文件,出事時會怪我;如果我暗示自己有官方背書,是在騙你。講清楚了,你才能做出正確的判斷:這份文件適合拿來理解與定位問題,不適合拿來當合約附件。
我不要求任何回報,但如果你願意:
- 發現錯誤請告訴我。 這是最有價值的貢獻。你踩到的雷,下一個人就不用踩。
- 分享你的踩坑經驗。 特別是官方文件沒寫、只有實際串過才知道的事。
- 拿去改成你自己的版本。 MIT 授權,不用問,不用註明(雖然註明我會很開心)。
- 不要拿去騙人。 不要說這是官方的,不要說用了就合規。
台灣一直有一種傳統:遇到麻煩的事,會有人默默把它整理好放出來。
從各種中文技術文件、輸入法、地圖資料、開放資料工具到疫情時期的口罩地圖——不是因為有人付錢,是因為有人覺得「這件事不該這麼難」。
那些東西的起點,通常也就是一個人。
這個 repo 想加入那個傳統。
如果它幫你省下了一個下午,那就值得了。
撰寫與維護:Mitchell Chen 一人 · https://www.mitch.tw 授權:MIT 定位:個人作品,以 MIT 授權公開釋出給所有人使用,非任何公司之產品或服務