聽到「支付功能的實作」,您是否會稍微緊張一下?
我因以下原因希望儘量不去碰觸這個領域:
不過,說「不想碰」並不會被接受,因此我之前曾經參與過使用 Stripe 進行支付功能的開發。
但事實上,許多支付服務都提供了 不使用真實金錢、安全地重現各種支付行為的機制。
這就是今天要介紹的 「測試卡(Test Card)」。
本文將以 PAY.JP 等為例,簡單介紹測試卡的原理與使用方法,希望對於認為「支付似乎很難」的人有所幫助。
近年來,支付方式多樣化,包含 QR 碼和後付款等,但信用卡支付依然是主流,其實作與測試的知識是不可或缺的。
測試卡是專為開發與測試環境而設計的虛擬信用卡號碼。
由於不連接任何實際金融機構,因此不會有任何金錢交易。
因此,可以 安全地重現與正式環境同樣的支付行為。
以國內支付服務 PAY.JP 為例,我們來看看測試卡的使用方式。
在 PAY.JP 中,卡號本身就能指示測試結果。
例如,僅改變號碼就可以重現「成功」「錯誤」等行為。
| 測試卡號 | 結果 | 可驗證的重點 |
|---|---|---|
4242 4242 4242 4242 |
支付成功(正常) | 正常支付後的庫存更新或通知處理 |
4000 0000 0000 0002 |
餘額不足(錯誤) | 使用者是否能收到錯誤訊息 |
4000 0000 0000 0003 |
有效期限切過(錯誤) | 輸入檢查及 UI 的行為 |
也就是說,僅僅透過改變測試卡的號碼,就能自由地嘗試「成功、失敗、錯誤」等模式。
使用測試卡後,以下情況可以安心驗證。
意外地,錯誤的種類可能很多,因此會想偷懶將錯誤訊息統整,但這樣反而會增加詢問的工時,所以建議將可以用測試卡涵蓋的分開顯示。
確實,支付功能的開發需要謹慎。
但是,因為有測試卡這一安全機制,開發階段並不需要感到任何不安。
冷靜想想,「有這樣的機制是理所當然的」可能會浮現在腦海,但當真正負責開發時,因專注於實作,可能會導致發現測試機制的時機延遲。(我自己有過這樣的經驗!)
原文出處:https://qiita.com/inukai-masanori/items/7809cc7b63b37f958880