--- title: "测试" description: "模拟支付,测试集成效果。" source: "https://docs.tokenz.one/zh-CN/v1/checkout/testing" api_version: "v1" locale: "zh-CN" version_status: "legacy" docs_stage: "prod" --- # 测试 模拟支付,测试集成效果。 ## 介绍 为确保集成正常运行,请在不移动资金的情况下模拟交易。您可以通过在测试模式下创建和操作资源来进行此操作(在所有 API 调用中使用测试 API 密钥)。可以使用专门的测试支付方式来完成测试结账工作会话。 测试支付方式可让您模拟多种情况: - 成功支付 - 因拒绝或数据无效而导致的支付错误 - 由于银行转账或便利店支付等异步支付方式而延迟的支付 结账结果可以通过测试授权结果开关(测试环境的支付结果)来控制,这个开关仅供测试使用。 - **成功** 将总是导致付款成功 - 同步付款方式(信用卡、PayPay 等):您将立即收到成功响应。 - 异步付款方式(便利店、Pay-easy 等):您将在 10 秒后收到成功响应。 - **拒绝** 将永远不会导致付款成功 - 同步付款方式(信用卡、PayPay 等):付款将被拒绝,结账页面会显示付款详细信息输入画面以便重新尝试(例如使用不同的信用卡)。 - 异步付款方式(便利店、Pay-easy 等):付款永远不会完成,订单将保持在处理状态。 ![](https://docs.tokenz.one/docs/card_filled_success.png) > 当您准备好将集成发布到正式环境时,请将测试 API 密钥替换为正式环境的密钥。如果您的集成使用测试 API 密钥,您将无法处理正式的付款。 ## 完成一次成功的测试支付 1. 创建一笔支付的结账工作会话 使用我们的 [API](https://docs.tokenz.one/zh-CN/v1/api/main) 创建一个结账会话。 - 使用您的测试 API 密钥在测试模式下创建结账会话。 ```bash curl --location 'https://api.tokenz.one/v1/checkoutsession' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer secret_test_YOUR_KEY_HERE' \ --data '{ "amount": { "currency": "JPY", "amount": 5200 }, "itemDetails": [ { "product": { "label": "一颗绿宝石", "images": [ "https://images.ctfassets.net/z82qbo7cv7ia/1dWPbk5Qx2M1Qikj6Knyuc/e37b2c26829c0d30793a348ae3adb3b0/fake-pass.webp" ], "quantity": 3, "price": { "currency": "JPY", "amount": 1200 } } }, { "product": { "label": "绿宝石的货车", "images": [], "quantity": 1, "price": { "currency": "JPY", "amount": 1600 } } } ], "successUrl": "http://localhost:9000/success", "pendingUrl": "http://localhost:9000/pending", "cancelUrl": "http://localhost:9000/cancel", "customerInfo": { "emailAddress": "user@email.com" }, "description": "description", "reference": "reference", "theme": "LIGHT" }' ``` 1. 完成 Tokenz 结账 打开创建结账会话 API 调用返回的 `url`。 - 选择「信用卡」 - 输入任意的电子邮件地址,并且从下列测试卡中选择一张测试卡的信息。 - 确认测试结果切换开关(测试环境的支付结果)为成功,这可以确保你的测试支付会被承认。 - 点击「支付」,这笔交易会被承认,然后你会看到我们的支付成功画面。如果你设置了 webhook,你会收到一条 `order.succeeded` webhook。 - 当你点击「OK」时,你将会被带到你于创建结账工作会话时所指定的 `successUrl`。 > 永远不要在测试模式下使用真实的信用卡信息。请使用下列测试卡。 ### 测试卡号 | 品牌 | 卡号 | 安全码 | 日期 | | --- | --- | --- | --- | | ![](https://docs.tokenz.one/docs/payment-methods/cc-visa.svg) | `4242 4242 4242 4242` | 任意 3 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-visa.svg) | `4111 1111 1111 1111` | 任意 3 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-mastercard.svg) | `5555 5555 5555 4444` | 任意 3 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-mastercard.svg) | `2222 2222 2222 2224` | 任意 3 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-jcb.svg) | `3530 1113 3330 0000` | 任意 3 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-jcb.svg) | `3528 0000 0000 0023` | 任意 3 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-amex.svg) | `3714 4963 539 8431` | 任意 4 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-amex.svg) | `3411 1111 111 1111` | 任意 4 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-diners.svg) | `3611 111111 1111` | 任意 3 位数字 | 任意未来日期 | | ![](https://docs.tokenz.one/docs/payment-methods/cc-diners.svg) | `3636 363636 3632` | 任意 3 位数字 | 任意未来日期 | | | | | | --- | --- | --- | | ![](https://docs.tokenz.one/docs/payment_method_selection.png) | ![](https://docs.tokenz.one/docs/card_filled_success.png) | ![](https://docs.tokenz.one/docs/card_payment_success.png) | ## 测试一次失败的支付 当消费者的支付失败时(例:信用卡被拒绝),我们会允许消费者重新尝试支付,你并不需要针对支付失败的订单作任何处理。 > 在收到成功付款的确认之前,请不要履行订单。 1. 创建一笔支付的结账工作会话 使用我们的 [API](https://docs.tokenz.one/zh-CN/v1/api/main) 创建一个结账工作会话。 - 使用您的测试 API 密钥在测试模式下创建结账工作会话。 ```bash curl --location 'https://api.tokenz.one/v1/checkoutsession' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer secret_test_YOUR_KEY_HERE' \ --data '{ "amount": { "currency": "JPY", "amount": 5200 }, "itemDetails": [ { "product": { "label": "一颗绿宝石", "images": [ "https://images.ctfassets.net/z82qbo7cv7ia/1dWPbk5Qx2M1Qikj6Knyuc/e37b2c26829c0d30793a348ae3adb3b0/fake-pass.webp" ], "quantity": 3, "price": { "currency": "JPY", "amount": 1200 } } }, { "product": { "label": "绿宝石的货车", "images": [], "quantity": 1, "price": { "currency": "JPY", "amount": 1600 } } } ], "successUrl": "http://localhost:9000/success", "pendingUrl": "http://localhost:9000/pending", "cancelUrl": "http://localhost:9000/cancel", "customerInfo": { "emailAddress": "user@email.com" }, "description": "description", "reference": "reference" }' ``` 1. 完成 Tokenz 结账 打开创建结账工作会话 API 调用返回的 `url`。 - 选择「信用卡」 - 填写电子邮件地址,并使用其中一张[测试卡](https://docs.tokenz.one/zh-CN/v1/checkout/testing#%E6%B5%8B%E8%AF%95%E5%8D%A1%E5%8F%B7)的数据填写卡片详细资料。 - 将测试结果开关(测试环境的支付结果)切换到拒绝(拒绝)。这样可以确保您的付款会被拒绝。 - 点击「支付」。付款将被拒绝,您会被重定向回卡片输入页面,在那里您可以再次尝试付款。 | | | | --- | --- | | ![](https://docs.tokenz.one/docs/card_filled_decline.png) | ![](https://docs.tokenz.one/docs/card_payment_decline.png) | ## 完成一次非同步测试支付 要测试非同步支付的流程,可以使用便利店支付作为测试。 这使您能够测试如何处理延迟的支付成功通知。 1. 创建一笔 "konbini" 支付的结账工作会话 使用我们的 [API](https://docs.tokenz.one/zh-CN/v1/api/main) 创建一个结账工作会话。 - 使用您的测试 API 密钥在测试模式下创建结账工作会话。 - 指定 `KONBINI` 为接受的支付方式。 ```bash curl --location 'https://api.tokenz.one/v1/checkoutsession' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer secret_test_YOUR_KEY_HERE' \ --data '{ "amount": { "currency": "JPY", "amount": 5200 }, "itemDetails": [ { "product": { "label": "一颗绿宝石", "images": [ "https://images.ctfassets.net/z82qbo7cv7ia/1dWPbk5Qx2M1Qikj6Knyuc/e37b2c26829c0d30793a348ae3adb3b0/fake-pass.webp" ], "quantity": 3, "price": { "currency": "JPY", "amount": 1200 } } }, { "product": { "label": "绿宝石的货车", "images": [], "quantity": 1, "price": { "currency": "JPY", "amount": 1600 } } } ], "successUrl": "http://localhost:9000/success", "pendingUrl": "http://localhost:9000/pending", "cancelUrl": "http://localhost:9000/cancel", "customerInfo": { "emailAddress": "user@email.com" }, "description": "description", "reference": "reference", "paymentMethodKinds": [ "KONBINI" ], "theme": "LIGHT" }' ``` 1. 完成 Tokenz 结账 打开创建结账工作会话 API 调用返回的 `url`。 - 请确认右上角的国家/地区已选择 `Japan` - 选择 `Konbini` 作为支付方式 - 填写任何名称、电子邮件地址和电话号码,并选择一个便利商店。 - 将测试授权结果开关保持为成功。这可以确保您的订单支付成功。点击 `支付` 按钮以启动支付。 - 结账屏幕显示在便利商店支付的说明。 - 支付完成后(测试支付的情况下为 10 秒后),会显示支付成功画面。如果您设置了 webhook,您也会收到一条 `order.succeeded` webhook。 - 当您点击「OK」,您将被重定向到您在创建结账工作会话时指定的 `successUrl`。 | | | | --- | --- | | ![](https://docs.tokenz.one/docs/payment_method_selection_zh-CN.png) | ![](https://docs.tokenz.one/docs/konbini_filled_zh-CN.png) | > 不要尝试在便利店支付测试付款。测试结账仅供测试,无需进行实际支付。 ## 测试钱包支付,如 PayPay 或支付宝 在实际支付过程中,用户需要登录他们的钱包并批准付款。为了让您能够在没有账户的情况下测试钱包支付,在测试结账时,我们只模拟重定向到钱包提供商的过程。 1. 创建 PayPay 支付的结账工作会话 使用我们的 [API](https://docs.tokenz.one/zh-CN/v1/api/main) 创建一个结账工作会话。 - 使用您的测试 API 密钥在测试模式下创建结账工作会话。 - 指定 `PAYPAY` 为接受的支付方式。 ```bash curl --location 'https://api.tokenz.one/v1/checkoutsession' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer secret_test_YOUR_KEY_HERE' \ --data '{ "amount": { "currency": "JPY", "amount": 5200 }, "itemDetails": [ { "product": { "label": "一颗绿宝石", "images": [ "https://images.ctfassets.net/z82qbo7cv7ia/1dWPbk5Qx2M1Qikj6Knyuc/e37b2c26829c0d30793a348ae3adb3b0/fake-pass.webp" ], "quantity": 3, "price": { "currency": "JPY", "amount": 1200 } } }, { "product": { "label": "绿宝石的货车", "images": [], "quantity": 1, "price": { "currency": "JPY", "amount": 1600 } } } ], "successUrl": "http://localhost:9000/success", "pendingUrl": "http://localhost:9000/pending", "cancelUrl": "http://localhost:9000/cancel", "customerInfo": { "emailAddress": "user@email.com" }, "description": "description", "reference": "reference", "paymentMethodKinds": [ "PAYPAY" ], "theme": "LIGHT" }' ``` 1. 完成 Tokenz 结账 打开创建结账工作会话 API 调用返回的 `url`。 - 填写电子邮件地址。 - 根据您想要的结果,将测试结果开关(测试环境的支付结果)设置为成功(成功)或拒绝(拒绝)。 - 点击「继续使用 PayPay」,在实际付款情况下,这会将用户重定向到 PayPay 完成购买。在测试付款的情况下,我们只显示一个占位符画面,所以您不需要 PayPay 账户就能进行测试。 - 点击「支付」。根据测试结果开关的设置,付款会被成功处理或被拒绝。 | | | | | --- | --- | --- | | ![](https://docs.tokenz.one/docs/paypay_filled_success.png) | ![](https://docs.tokenz.one/docs/paypay_redirect.png) | ![](https://docs.tokenz.one/docs/paypay_payment_success.png) |