要确认您的集成应用能否正常工作,可以不转移任何资金,在测试模式 下用特殊的值来模拟交易。
利用测试卡,可以模拟多种场景:
非银行卡支付方式的测试方法与此类似。每种支付方式 都有自己的特殊值。由于速率限制 ,不建议使用测试模式对您的集成进行负载测试。可查看我们的负载测试文档 。
如何使用测试卡 每次使用测试卡时,请在所有 API 调用中使用测试 API 密钥 。无论是提供可交互测试的支付表单,还是编写测试代码,都该这样做。
常见错误 请勿使用真实的银行卡信息。Stripe 服务协议 禁止在真实模式下用真实支付方式详情进行测试。请使用您的测试 API 密钥和下面的卡号。
交互测试 交互测试时,使用一个卡号,例如 4242 4242 4242 4242 。在管理平台或任意支付表单中输入该卡号。
使用有效的未来日期,例如 12/34 。 使用任意三位数 CVC(American Express 卡为四位)。 其他表单字段可以使用任意值。 用测试卡卡号 4242 4242 4242 4242 交互式地测试表单
测试代码 编写测试代码时,使用一个 PaymentMethod
,例如 pm_card_visa ,不要使用卡号。不建议直接在 API 调用或服务器端代码中使用这些卡号,即使是在测试模式下也是这样。如果一定要使用这些卡号,您的代码在上线时可能会出现不符合 PCI 规范的情况。默认情况下,PaymentMethod
不会附到 Customer 。
curl https://api.stripe.com/v1/payment_intents \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount = 500 \
-d currency = gbp \
-d payment_method = pm_card_visa \
-d "payment_method_types[]" = card
多数集成应用已不再使用令牌,但我们提供了测试用的令牌,例如 tok_visa ,方便您在需要时使用。
准备好将您的集成应用上线时,将您测试用的可发布的 API 密钥 换成真实密钥即可。如果您的集成应用仍在使用您的测试 API 密钥,则您不能处理真实付款。
银行卡(按品牌) 要模拟特定银行卡品牌的成功付款,请使用以下列表中的测试卡。
注意 跨境费用根据发卡行所在的国家/地区进行评估。发行国不是美国的卡(如 JCB 和银联)可能需要支付跨境费用,即使在测试模式下也是如此。
品牌 卡号 CVC 日期
Visa 4242 4242 4242 4242 任意 3 位数 任意未来的日期 Visa(借记卡) 4000 0566 5566 5556 任意 3 位数 任意未来的日期 Mastercard 5555 5555 5555 4444 任意 3 位数 任意未来的日期 Mastercard(以 2 开头) 2223 0031 2200 3222 任意 3 位数 任意未来的日期 Mastercard(借记卡) 5200 8282 8282 8210 任意 3 位数 任意未来的日期 Mastercard(预付卡) 5105 1051 0510 5100 任意 3 位数 任意未来的日期 American Express 3782 822463 10005 任意 4 位数 任意未来的日期 American Express 3714 496353 98431 任意 4 位数 任意未来的日期 Discover 6011 1111 1111 1117 任意 3 位数 任意未来的日期 Discover 6011 0009 9013 9424 任意 3 位数 任意未来的日期 Discover(借记卡) 6011 9811 1111 1113 任意 3 位数 任意未来的日期 Diners Club 3056 9300 0902 0004 任意 3 位数 任意未来的日期 Diners Club(14 位卡号) 3622 720627 1667 任意 3 位数 任意未来的日期 BCcard 和 DinaCard 6555 9000 0060 4105 任意 3 位数 任意未来的日期 JCB 3566 0020 2036 0505 任意 3 位数 任意未来的日期 银联 6200 0000 0000 0005 任意 3 位数 任意未来的日期 银联(借记卡) 6200 0000 0000 0047 任意 3 位数 任意未来的日期 银联(19 位卡号) 6205 5000 0000 0000 004 任意 3 位数 任意未来的日期
多数 Cartes Bancaires 和销售点电子转账卡是与 Visa 或 Mastercard 联名的。下表中的测试卡模拟的是使用联名卡成功付款的情形。
品牌/联名品牌 卡号 CVC 日期 Cartes Bancaires/Visa 4000 0025 0000 1001 任意 3 位数 任意未来的日期 Cartes Bancaires/Mastercard 5555 5525 0000 1001 任意 3 位数 任意未来的日期 澳大利亚销售点电子转账 / Visa 4000 0503 6000 0001 任意 3 位数 任意未来的日期 澳大利亚销售点电子转账 / Mastercard 5555 0503 6000 0080 任意 3 位数 任意未来的日期
银行卡(按国家/地区) 要模拟特定国家的成功付款,使用以下部分的测试卡。
国家/地区 卡号 品牌
美洲 美国 (US) 4242 4242 4242 4242 Visa 阿根廷 (AR) 4000 0003 2000 0021 Visa 巴西 (BR) 4000 0007 6000 0002 Visa 加拿大 (CA) 4000 0012 4000 0000 Visa 智利 (CL) 4000 0015 2000 0001 Visa 哥伦比亚 (CO) 4000 0017 0000 0003 Visa 哥斯达黎加 (CR) 4000 0018 8000 0005 Visa 厄瓜多尔 (EC) 4000 0021 8000 0000 Visa 墨西哥 (MX) 4000 0048 4000 8001 Visa 墨西哥 (MX) 5062 2100 0000 0009 Carnet 巴拿马 (PA) 4000 0059 1000 0000 Visa 巴拉圭 (PY) 4000 0060 0000 0066 Visa 秘鲁 (PE) 4000 0060 4000 0068 Visa 乌拉圭 (UY) 4000 0085 8000 0003 Visa 欧洲和中东 阿联酋 (AE) 4000 0078 4000 0001 Visa 阿联酋 (AE) 5200 0078 4000 0022 Mastercard 奥地利 (AT) 4000 0004 0000 0008 Visa 比利时 (BE) 4000 0005 6000 0004 Visa 保加利亚 (BG) 4000 0010 0000 0000 Visa 白俄罗斯 (BY) 4000 0011 2000 0005 Visa 克罗地亚 (HR) 4000 0019 1000 0009 Visa 塞浦路斯 (CY) 4000 0019 6000 0008 Visa 捷克 (CZ) 4000 0020 3000 0002 Visa 丹麦 (DK) 4000 0020 8000 0001 Visa 爱沙尼亚 (EE) 4000 0023 3000 0009 Visa 芬兰 (FI) 4000 0024 6000 0001 Visa 法国 (FR) 4000 0025 0000 0003 Visa 德国 (DE) 4000 0027 6000 0016 Visa 直布罗陀 (GI) 4000 0029 2000 0005 Visa 希腊 (GR) 4000 0030 0000 0030 Visa 匈牙利 (HU) 4000 0034 8000 0005 Visa 爱尔兰 (IE) 4000 0037 2000 0005 Visa 意大利 (IT) 4000 0038 0000 0008 Visa 拉脱维亚 (LV) 4000 0042 8000 0005 Visa 列支敦士登 (LI) 4000 0043 8000 0004 Visa 立陶宛 (LT) 4000 0044 0000 0000 Visa 卢森堡 (LU) 4000 0044 2000 0006 Visa 马耳他 (MT) 4000 0047 0000 0007 Visa 荷兰 (NL) 4000 0052 8000 0002 Visa 挪威 (NO) 4000 0057 8000 0007 Visa 波兰 (PL) 4000 0061 6000 0005 Visa 葡萄牙 (PT) 4000 0062 0000 0007 Visa 罗马尼亚 (RO) 4000 0064 2000 0001 Visa 沙特阿拉伯 (SA) 4000 0068 2000 0007 Visa 斯洛文尼亚 (SI) 4000 0070 5000 0006 Visa 斯洛伐克 (SK) 4000 0070 3000 0001 Visa 西班牙 (ES) 4000 0072 4000 0007 Visa 瑞典 (SE) 4000 0075 2000 0008 Visa 瑞士 (CH) 4000 0075 6000 0009 Visa 英国 (GB) 4000 0082 6000 0000 Visa 英国 (GB) 4000 0582 6000 0005 Visa(借记卡) 英国 (GB) 5555 5582 6555 4449 Mastercard 亚太地区 澳大利亚 (AU) 4000 0003 6000 0006 Visa 中国内地 (CN) 4000 0015 6000 0002 Visa 香港 (HK) 4000 0034 4000 0004 Visa 印度 (IN) 4000 0035 6000 0008 Visa 日本 (JP) 4000 0039 2000 0003 Visa 日本 (JP) 3530 1113 3330 0000 JCB 马来西亚 (MY) 4000 0045 8000 0002 Visa 新西兰 (NZ) 4000 0055 4000 0008 Visa 新加坡 (SG) 4000 0070 2000 0003 Visa 中国台湾 (TW) 4000 0015 8000 0008 Visa 泰国 (TH) 4000 0076 4000 0003 Visa(信用卡) 泰国 (TH) 4000 0576 4000 0008 Visa(借记卡)
拒绝付款的情形 要通过模拟发卡行因各种原因拒绝的付款来测试您的集成应用的错误处理逻辑,请使用此部分的测试卡。使用包含给定错误代码 和拒付代码 的银行卡错误 中的这些结果之一。
常见错误 要模拟一个错误的银行卡安全码 (CVC),您必须提供一个任意三位数的 CVC。如果不提供 CVC,Radar 不会执行 CVC 检查,因此检查不会失败。
不能将上表中的卡绑定到 Customer 对象。要通过成功绑定的卡模拟拒绝付款的情形,请使用下面这张卡。
描述 卡号 详情 绑定后拒付 4000 0000 0000 0341 此卡成功绑定至 Customer 对象,但尝试扣款的操作失败。
欺诈预防 在付款具有高风险等级或未通过验证检查时,Stripe 的欺诈预防系统 Radar 可以阻止付款。您可以用此部分的卡测试您的 Radar 设置,还可以用这些卡来测试您的集成应用对被阻止付款的响应情况。
每张卡模拟一些具体的风险因素。您的 Radar 设置决定着哪些风险因素会使 Radar 阻止付款。被阻止的付款会产生附有欺诈错误代码的银行卡错误 。
常见错误 要模拟失败的银行卡安全码 (CVC) 检查,您必须提供一个任意三位数的 CVC。要模拟失败的邮编检查,您必须提供任意一个有效的邮编。如果不提供这些值,Radar 不会执行相应的检查,因此检查不会失败。
描述 卡号 详情
始终阻止
4100 0000 0000 0019 收款的风险等级为“最高”
Radar 始终会阻止付款。
最高风险
4000 0000 0000 4954 收款的风险等级为“最高”
Radar 可能根据您的设置 阻止付款。
风险升高
4000 0000 0000 9235 收款的风险等级为“升高”
如果您使用 Radar 风控团队版,Radar 可能将付款放入审核队列 。
CVC 检查失败
4000 0000 0000 0101 如果您提供 CVC 号码,则 CVC 检查失败。
Radar 可能根据您的设置 阻止付款
邮编检查失败
4000 0000 0000 0036 如果您提供邮编,则邮编检查失败。
Radar 可能根据您的设置 阻止付款
第 1 行检查失败
4000 0000 0000 0028 地址第 1 行检查失败。
付款成功,除非您用自定义 Radar 规则阻止付款 。
地址检查失败
4000 0000 0000 0010 地址的邮编检查和地址第 1 行检查均失败。
Radar 可能根据您的设置 阻止付款
地址不可用
4000 0000 0000 0044 地址的邮编检查和地址第 1 行检查均不可用。
付款成功,除非您用自定义 Radar 规则阻止付款 。
数据无效 要测试无效数据造成的错误,请提供无效信息。不需要为此使用专门的测试卡。任何无效值均可。例如:
争议 要模拟有争议的交易 ,请使用此部分的测试卡。然后,模拟赢了或输了争议的情形,提供赢或输的证据 。
描述 卡号 详情 欺诈 4000 0000 0000 0259 使用默认账户设置时,收款成功,但以欺诈 为由被提出争议。完成 3DS 验证后,这类争议会受保护 。 未收到 4000 0000 0000 2685 使用默认账户设置时,收款成功,但以未收到产品 为由被提出争议。完成 3DS 验证后,这类争议不会受保护 。 查询 4000 0000 0000 1976 使用默认账户设置时,收款成功,但以查询 为由被提出争议。 警告 4000 0000 0000 5423 使用默认账户设置时,收款成功,仅会收到早期欺诈预警 。 多项争议 4000 0004 0400 0079 使用默认账户设置时,收款成功,但被多次 提出争议。 Visa 有说服力的证据 3.0 4000 0004 0400 0038 使用默认账户设置时,收款成功,但以符合 Visa 有说服力的证据 3.0 的争议 被提出争议。
证据 要模拟赢了或输了争议的情形,请用下表中的某个证据值来响应。
证据 描述 winning_evidence
该争议已关闭且标记为赢。收款金额和相关费用已贷记到您的账户。 losing_evidence
该争议已关闭且标记为输。系统不会贷记您的账户。
退款 真实模式下的退款是异步的:退款可能看上去是成功的,然后会失败;也可能先是 pending
,然后成功。要模拟包含这些行为的退款,请使用此部分的测试卡。(对于其他所有测试卡,退款会立即成功,且之后不会更改状态。)
描述 卡号 详情 异步成功 4000 0000 0000 7726 扣款成功。如果您发起退款,其状态最初会是 pending
。一段时间后,其状态变为 succeeded
,并发送一个 refund.updated
事件 。 异步失败 4000 0000 0000 5126 扣款成功。如果您发起退款,其状态最初会是 succeeded
。一段时间后,其状态变为 failed
,并发送一个 refund.failed
事件 。
您只能通过管理平台取消银行卡退款。在真实模式下,您可以在较短但非特定时限内取消银行卡退款。测试模式允许您在 30 分钟内取消银行卡退款,以模拟该时限的情形。
可用余额 要将测试交易中的资金直接发送到您的可用余额,请使用此部分的测试卡。其他测试卡会将从成功付款得到的资金发送到您的待收余额。
描述 卡号 详情 绕过待收余额 4000 0000 0000 0077 美国扣款成功。资金直接进入您的可用余额,绕过您的待收余额。 绕过待收余额 4000 0037 2000 0278 国际扣款成功。资金直接进入您的可用余额,绕过您的待收余额。
3DS 验证 3DS 验证要求对信用卡交易进行额外一层验证。本节中的测试卡可供您在不同的支付流程中模拟如何触发身份验证。
只有本节中的卡可以通过模拟定义的 3DS 验证行为(如验证流程或不支持的卡)来有效测试您的 3DS 验证集成应用。其他 Stripe 测试卡可能仍会触发 3DS 验证,但我们会返回 attempt_acknowledged
以绕过额外的步骤,因为 3DS 验证测试不是这些卡的目标。
不支持管理平台 对于直接在 Stripe 管理平台中创建的付款,不会发生 3DS 验证重定向,而是会使用您的集成应用自身的前端或调用 API。
验证和设置 要模拟包含验证的付款流程,请使用此部分的测试卡。一些卡也可以设置 为供未来付款所用,或已经这样设置了。
描述 卡号 详情
不设置即验证 4000 0025 0000 3155 该卡要求会话外付款验证,除非您设置 用它进行未来的付款。设置后,将不再要求对会话外付款进行验证。但是,使用该卡进行的会话内付款始终要求验证。 始终验证 4000 0027 6000 3184 无论是如何设置的,该卡仍要求验证所有交易。 已设置 4000 0038 0000 0446 该卡已设置为在会话外使用。该卡要求验证一次性 及其他会话内 付款。但是,所有的会话外付款 都会成功,就好像该卡之前已设置 过一样。 资金不足 4000 0082 6000 3178 该卡要求验证一次性付款 。所有付款都被拒绝,且显示 insufficient_funds
失败代码,即使已成功验证或之前设置 过也一样。
支持及可用性 有法规要求,或者您的 Radar 规则或自定义代码触发时,Stripe 会要求验证。即使是请求了验证,也并非总是执行——例如,客户的卡可能未注册,或可能发生错误。用此部分的测试卡模拟这些因素的各种组合。
3DS 验证的使用情况 结果 卡号 详情
要求 3DS 验证 正常 4000 0000 0000 3220 必须完成 3DS 验证,付款才能成功。默认情况下,Radar 规则会为该卡请求 3DS 验证。 要求 3DS 验证 已拒绝 4000 0084 0000 1629 要求 3DS 验证,但验证后付款会被拒绝,显示 card_declined
失败代码。默认情况下,Radar 规则会为该卡请求 3DS 验证。 要求 3DS 验证 错误 4000 0084 0000 1280 要求 3DS 验证,但 3DS 验证查找请求会失败,显示处理错误。付款被拒绝,显示 card_declined
失败代码。默认情况下,Radar 规则会为该卡请求 3DS 验证。 支持 3DS 验证 正常 4000 0000 0000 3055 可能仍可执行 3DS 验证,但不是必须的。默认情况下,Radar 规则不会为该卡请求 3DS 验证。 支持 3DS 验证 错误 4000 0000 0000 3097 可能仍可执行 3DS 验证,但不是必须的。但是,尝试执行 3DS 验证会导致处理错误。默认情况下,Radar 规则不会为该卡请求 3DS 验证。 支持 3DS 验证 未注册 4242 4242 4242 4242 该卡支持 3DS 验证,但未在 3DS 验证中注册。即使您的 Radar 规则要求 3DS 验证,也不会提示客户进行身份验证。默认情况下,Radar 规则不会为该卡请求 3DS 验证。 不支持 3DS 验证 3782 822463 10005 该卡不支持 3DS 验证,无法调用。PaymentIntent 或 SetupIntent 会在不执行验证的情况下处理。
3DS 验证移动端验证流程 在移动端付款时,可以使用多个验证流程——客户必须与 UI 中的提示信息交互。用此部分的测试卡,为测试而触发特定的验证流程。这些卡不能在基于网页的支付表单或 API 调用中使用。在上述环境中,这些卡能用,但不会触发任何特殊行为。因为这些卡在 API 调用中无法使用,我们不提供测试用的任何 PaymentMethod
或 Token
值。
验证流程 卡号 详情
带外数据 4000 5826 0000 0094 必须对所有交易进行 3DS 2.0 验证。用带外数据 (Out of Band) UI 触发验证流程。 一次性密码 4000 5826 0000 0045 必须对所有交易进行 3DS 2.0 验证。用一次性密码 (One Time Passcode) UI 触发验证流程。 单选 4000 5826 0000 0102 必须对所有交易进行 3DS 2.0 验证。用单选 (single-select) UI 触发验证流程。 多选 4000 5826 0000 0110 必须对所有交易进行 3DS 2.0 验证。用多选 (multi-select) UI 触发验证流程。
验证码验证 为防止欺诈,Stripe 可能会在支付页面上向用户显示验证码验证。用下方的测试卡模拟该流程。
描述 卡号 详情 验证码验证 4000 0000 0000 1208 如果用户正确回答了验证码验证,则收款成功。 验证码验证 4000 0000 0000 3725 如果用户正确回答了验证码验证,则收款成功。
用 PIN 码付款 用此部分的测试卡模拟涉及 PIN 码且成功地线下付款的情形。还有很多测试线下付款的选项,包括模拟的读卡器和物理测试卡。有关更多信息,请查看测试 Stripe Terminal 。
事件接收端 To test event destinations , choose one of these two options:
Perform actions in test mode that send legitimate events to your event destination. For example, to trigger the charge.succeeded event, you can use a test card that produces a successful charge . Trigger events using the Stripe CLI or using Stripe for Visual Studio Code .速率限制 如果您在测试模式下的请求开始收到 429
HTTP 错误,请降低请求的频率。这些错误来自我们的速率限制器 ,它在测试模式下比在真实模式下更严格。
在测试模式下,我们不建议用 Stripe API 对您的集成应用进行负载测试。原因是测试模式下的负载限制器更严格,会导致您看到在生产环境中不会出现的错误。关于替代方式,请查看负载测试 。
非卡支付方式 每次使用测试用的非卡支付方式时,请在所有 API 调用中使用测试 API 密钥 。无论是提供可交互测试的支付表单,还是编写测试代码,都该这样做。
测试程序因支付方式而异:
Learn how to test scenarios with instant verifications using Financial Connections .
在测试模式下发送交易电子邮件 在您收集了银行账户详情并接受授权后,请在测试模式下发送授权确认和微存款验证电子邮件。为此,请在收集支付方式详情 时在 payment_method_data.billing_details[email]
字段中以 {any-prefix}+test_email@{any_domain}
格式提供电子邮件地址。
Test account numbers Stripe 提供了几个测试账号和相应的令牌,您可以用它们来确保您的手动输入银行账户的集成已经可以投入生产。
Account number 令牌 Routing number 行为 000123456789
pm_usBankAccount_success
110000000
付款成功。 000111111113
pm_usBankAccount_accountClosed
110000000
付款因账户已关闭失败。 000111111116
pm_usBankAccount_noAccount
110000000
付款因查无账户失败。 000222222227
pm_usBankAccount_insufficientFunds
110000000
付款因资金不足失败。 000333333335
pm_usBankAccount_debitNotAuthorized
110000000
付款因扣款未获授权失败。 000444444440
pm_usBankAccount_invalidCurrency
110000000
付款因货币无效失败。 000666666661
pm_usBankAccount_failMicrodeposits
110000000
付款时未能发送微额存款。 000555555559
pm_usBankAccount_dispute
110000000
这笔付款触发了争议。 000000000009
pm_usBankAccount_processing
110000000
The payment stays in processing indefinitely. Useful for testing PaymentIntent cancellation . 000777777771
pm_usBankAccount_weeklyLimitExceeded
110000000
The payment fails due to payment amount causing the account to exceed its weekly payment volume limit.
在测试交易完成之前,您需要验证所有付款能够自动成功或失败的测试账户。为此,请使用下面测试用的微存款金额或描述符代码。
测试微存款金额和描述符代码 要模拟不同的场景,请使用这些微存款金额_或_ 0.01 此描述符代码值。
微存款金额 0.01 描述代码的值 场景 32
and 45
SM11AA 模拟验证账户。 10
和 11
SM33CC 模拟次数超过允许的验证尝试次数。 40
和 41
SM44DD 模拟微存款超时。
Link 注意 不要在测试模式 的 Link 账户中存储真实用户数据。将其视为可公开的数据,因为这些测试账户与您的公钥有关。
Currently, Link only works with credit cards, debit cards, and qualified US bank account purchases. Link requires domain registration .
您可以用任意有效的邮件地址为 Link 创建测试模式的账户。下表显示了在验证测试模式下的账户时, Stripe 接受的一次性固定密码值:
值 结果 非下方所列的任意 6 位数 成功 000001 错误,验证码无效 000002 错误,验证码已过期 000003 错误,超过了最大尝试次数
多个资金来源 由于 Stripe 增加了额外的资金来源支持,因此您不需要更新您的集成。Stripe 会自动为它们提供与卡和银行账户支付相同的交易结算时间和担保。
重定向 要通过模拟使用重定向流程(例如,iDEAL)的付款来测试您的集成应用的直接处理逻辑,可使用支持的要求重定向 的支付方式。
要创建成功或失败的测试 PaymentIntent
:
导航到管理平台的支付方式设置部分 ,在测试模式中点击开启 ,启用受支持的支付方式。 收集付款详情。 向 Stripe 提交付款。 授权测试付款或让其失败。 确保您网站上的页面(对应于 return_url
)提供付款的状态。
另见