开发者工具

测试用信用卡号一览

汇总 Stripe、PayPal、Square、Braintree 的测试卡号,按品牌及成功/失败模式分类,支持一键复制。适用于支付功能开发与测试。


[[ labels.stripe_hint ]]
Service [[ labels.col_number ]] [[ labels.col_brand ]] [[ labels.col_behavior ]]
[[ card.service ]] [[ formatNumber(card.number) ]] [[ card.brand ]] [[ labels['subtype_' + card.subtype] ]] [[ behaviorLabel(card.behavior) ]]

使用提示

  • Stripe 测试模式下,CVC 填写任意 3 位数字(Amex 为 4 位),有效期填写未来任意日期,邮政编码填写任意 5 位数字即可通过。使用测试密钥不会产生真实扣款。
  • 所有测试卡号均经过专门设计,可通过 Luhn 校验(卡号验证算法)。因此不会被前端验证拦截,可直接在网关端复现测试场景。
  • 3D Secure(3DS) 测试需使用专用卡号。4000002500003155 会触发认证弹窗,4000000000003220 用于测试 3DS 2 流程。
  • 在生产环境中使用测试卡号会导致交易被拒。请务必将测试密钥与测试卡号配套使用。Stripe 的测试密钥以 sk_test_ 开头。

常见问题

只要与测试密钥(如 sk_test_)配合使用,就不会产生任何真实扣款。如果误用了生产密钥,即使是测试卡号也会尝试处理交易,请务必注意不要混用。

在 Stripe 中,CVC 填写任意数字(Visa/Mastercard 为 3 位,Amex 为 4 位),有效期填写未来任意日期(如 12/34),邮政编码填写任意 5 位数字即可通过。PayPal、Square、Braintree 的沙盒环境同样不会严格验证这些输入值。

这是一种用于验证卡号位数和排列是否有效的计算公式。从右端起每隔一位数字乘以 2,将所有位数之和相加,若结果能被 10 整除则判定为有效。此算法能识别大多数手误,但无法判断卡片是否真实存在。

"4242..." 因重复数字而便于记忆,且经过专门设计可通过 Luhn 校验。由于 Stripe 多年来在官方文档中持续使用该号码,它已成为支付开发者之间的事实标准。

闲话 ― Luhn 算法 ― 自 1954 年守护卡号的校验机制

信用卡号末尾的"校验位"由 IBM 工程师 Hans Peter Luhn 于 1954 年设计的算法进行验证。从右端起每隔一位数字乘以 2,将所有位数之和相加,结果能被 10 整除即为有效。这一简单算法至今仍被 Visa、Mastercard、Amex 等主要品牌采用,能有效识别大多数因手误造成的输入错误。

但 Luhn 校验仅用于检测数字输入错误,无法判断卡片是否真实存在。在前端表单中使用 Luhn 校验仅是 UX 优化(即时错误提示),无法防止欺诈。真正的授权验证必须通过服务端的支付网关来完成。

测试卡号是各支付服务刻意设计为能通过 Luhn 校验的固定号码。例如 Stripe 的 4242424242424242 不仅便于记忆,也能通过 Luhn 验证。卡号本身没有实际意义,只是在 Stripe 系统内被映射到特定行为(如"成功"或"失败")。