🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

聽到「支付功能的實作」,您是否會稍微緊張一下?

我因以下原因希望儘量不去碰觸這個領域:

  • 若與金錢相關出錯會很可怕
  • 安全性似乎很複雜
  • 測試似乎很麻煩

不過,說「不想碰」並不會被接受,因此我之前曾經參與過使用 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


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝13   💬4   ❤️4
434
🥈
我愛JS
📝1   💬3   ❤️2
46
🥉
酷豪
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付