綠界測試環境 vs 正式環境:上線前你一定要知道的行為差異

綠界測試環境 vs 正式環境:上線前你一定要知道的行為差異

每一個串接過綠界的開發者都經歷過同一個心跳加速的時刻:測試環境一切正常,切到正式環境卻全面爆炸。這不是因為你的程式寫錯了,而是兩套環境之間存在一些看似微小、影響卻巨大的差異。把這些差異搞清楚,能讓你在上線前少掉九成的焦慮。

差異一:API 端點完全不同。測試環境的端點是 payment-stage.ecpay.com.tw,正式環境是 payment.ecpay.com.tw。這是最基本的切換,卻也是最容易忘記的。建議將端點寫成環境變數,透過部署流程自動切換,而不是寫死在程式碼中。

差異二:MerchantID 與 HashKey/HashIV 是兩套獨立的資料。測試環境使用綠界提供的公用測試帳號(MerchantID: 3002607 或 2000132),而正式環境使用你在廠商後台申請到的專屬帳號。HashKey 和 HashIV 也完全不同。如果你在正式環境誤用了測試金鑰,所有的 CheckMacValue 都會驗證失敗。

差異三:測試環境的信用卡交易不會真正扣款。你可以使用綠界提供的測試卡號(如 4311-9522-2222-2222)模擬刷卡,而正式環境的每一筆交易都會真正向持卡人收費。這代表你不能用測試卡號在正式環境進行測試。

差異四:測試環境的 ATM、超商代碼與條碼需要手動模擬付款。在測試環境中,消費者拿到虛擬帳號或超商代碼後不會真的去繳款,因此你必須登入綠界廠商測試後台(vendor-stage.ecpay.com.tw),使用「模擬付款」功能來觸發 ReturnURL 通知。正式環境則是消費者真正繳款後,由銀行或超商回報給綠界,綠界再通知你。

差異五:通知的時效性不同。測試環境的模擬付款通知幾乎是即時的,但正式環境中,ATM 轉帳通知可能延遲數分鐘到數小時,超商條碼繳費的通知甚至可能延遲一到兩個工作天。你的訂單超時機制需要考慮這些延遲。

差異六:Apple Pay 在測試環境有限制。你需要使用實際的 Apple 裝置和 Sandbox 帳號來測試,且測試環境的 Apple Pay 行為與正式環境並不完全一致。

差異七:電子發票的測試環境連接的是財政部的 Stage 系統,該系統經常不穩定,可能會出現上傳失敗的情況,這並不代表你的程式有問題。

差異八:廠商後台網址不同。測試用 vendor-stage.ecpay.com.tw,正式用 vendor.ecpay.com.tw。

差異九:部分功能需要在正式環境另外申請開通,例如站內付 2.0、信用卡分期、定期定額等。測試環境預設開啟所有功能,但正式環境可能需要聯繫綠界業務才能啟用。

差異十:撥款與對帳功能僅在正式環境有意義。測試環境不會產生真實的撥款記錄和對帳檔案。

上線前切換清單:確認 API 端點已切換、確認 MerchantID 和 HashKey/HashIV 已更新、確認 ReturnURL 和 OrderResultURL 指向正式伺服器、移除所有測試卡號的硬編碼、確認 HTTPS 憑證有效且走 443 Port、確認防火牆已開放綠界 IP、在正式環境進行一筆小額真實交易驗證全流程。按照這份清單逐一核對,你就能自信地按下上線按鈕。

分享文章: