選單

各卡組織測試卡號差在哪?Visa 與 Mastercard 比較

Visa、Mastercard、美國運通、Discover、JCB、銀聯的前綴與長度各不相同。本文整理各卡組織公開的號段差異,並說明怎麼為測試挑選合適的號段。

發佈於

  • 測試資料
  • 支付

如果測試資料裡只有一組 Visa 號碼,那等於假設所有卡片都長得一樣。實際上美國運通是 15 位、安全碼四位還印在正面;Discover 與銀聯共享 6 開頭的區段;Maestro 的前綴橫跨好幾個範圍。這些差異正好是前端最容易出錯的地方,所以各卡組織測試卡號應該分開準備,而不是用一組號碼代表全部。這篇整理各家的公開號段與長度差異,並說明怎麼挑選。

為什麼各卡組織的行為不一樣

這些差異不是誰的設計偏好,而是歷史發展的結果。Visa 與 Mastercard 在銀行卡市場長期競爭,號段各自擴張;美國運通走的是封閉式模式,卡號長度與安全碼配置從一開始就不同;Discover、JCB、大來卡與銀聯則分別在不同市場與時代建立起自己的號段。

對開發的意義很直接:「16 位、三位安全碼」只是統計上的多數,不是規格。任何把這個假設寫死的地方——比對規則、欄位寬度、輸入框的最大長度、複製後的重新分組——遇到非主流卡組織就會出錯。

各卡組織的號段與長度一覽

以下是各卡組織公開的號段範圍,可用來判斷前綴並挑選測試資料。這些是公開的編號方案,不是機密。

卡組織 前綴範圍 常見長度 安全碼
Visa 4 13、16、19 3 位
Mastercard 51 至 55、2221 至 2720 16 3 位
美國運通 34、37 15 4 位(正面)
Discover 6011、65、644 至 649、622126 至 622925 16 3 位
JCB 3528 至 3589 16 3 位
大來卡 300 至 305、36、38 至 39 14、16 3 位
銀聯 62 16 至 19 3 位
Maestro 50、56 至 69 12 至 19 3 位

這張表有三個值得留意的細節。第一,Visa 不只 16 位,19 位的號段確實存在,13 位則是較早期的配置。第二,Mastercard 的 2221 至 2720 是相對較新的號段,前綴比對若只認 51 至 55,這批卡片會被判成未知卡組織。第三,Maestro 的號段與其他品牌重疊,比對順序會直接影響結果。

最後提醒一句:這些範圍會隨時間調整,實作時不該把它當成永不改變的常數。

美國運通為什麼最容易漏掉?

美國運通值得單獨討論,因為它同時打破兩個常見假設:長度是 15 位而不是 16 位,而且安全碼是四位數字、印在卡片正面而不是背面的三位。

這兩個差異會造成一連串連鎖問題:安全碼欄位若限制三位,持卡人根本無法完成結帳;號碼在複製貼上後重新分組時,若按每四位一組處理,15 位的號碼會被切成 4-4-4-3,而不是卡面上實際的四六五分組;後端若用固定長度驗證,會直接把合法的美國運通卡判定為無效。

因此它是最有價值的測試案例之一——能在很短的時間內暴露出程式各處硬編碼的假設。

其他品牌各有什麼測試重點?

其餘幾個品牌各自有值得注意的地方。

  • Discover 的前綴種類較多,包含 6011、65、644 至 649,以及較長的 622126 至 622925。較長的前綴若沒有優先比對,很容易被其他規則搶走。
  • JCB 使用 3528 至 3589 這個連續區間,屬於 3 開頭的旅遊娛樂類別,與美國運通、大來卡同類。
  • 大來卡 的號段覆蓋多個區間,長度以 14 位與 16 位為主,是測試非 16 位的另一個好素材。
  • 銀聯 以 62 開頭,常見長度為 16 至 19 位。19 位的號碼特別適合驗證資料結構是否真的支援國際標準允許的上限。
  • Maestro 的範圍最廣,長度橫跨 12 至 19 位,是壓力測試前綴比對邏輯的好選擇。

給開發者:按卡組織準備測試矩陣

準備測試資料時,建議照以下原則安排,讓每個案例都有明確的驗證目的:

  1. 每個卡組織至少一組。 讓測試名稱能直接指出它驗證的是哪個品牌的行為。
  2. 涵蓋最短與最長長度。 包含 13 位與 19 位,以及 15 位的美國運通。
  3. 涵蓋長前綴與短前綴。 例如同時放入 65 與 622126 開頭的號碼,驗證比對順序是否正確。
  4. 涵蓋重疊號段。 至少一組會同時符合兩條規則的號碼,確認優先順序符合預期。
  5. 固定下來,不要每次重新產生。 把選定的號碼寫進固定裝置檔並加上註解,說明每一組的用途。
  6. 同步檢查周邊假設。 資料庫欄位寬度、顯示用的分組長度、複製功能的格式化邏輯,都要跟著卡組織一起驗證。

第五點與可重現性直接相關。如果每次建置都換一批新號碼,失敗的測試就難以重現;這個原則的完整討論見讓測試資料可重現。

要把矩陣填滿,本站的虛擬信用卡工具可以指定卡組織批次產生號碼,比自己手動拼湊省事得多;工具也支援貼上已知片段讓它補齊剩餘位數。這些號碼結構正確、但從未發行,不屬於任何人,也不對應任何帳戶,只適合用在測試環境。

下一步

要理解號段背後的三段結構,讀信用卡號格式;要為各品牌設計驗證邏輯,讀驗證信用卡號;要把完整的失敗情境也納入,讀支付表單測試清單。

繼續閱讀

信用卡號產生器(測試用)相關文章