--- title: "測試" description: "模擬支付以測試您的整合。" source: "https://docs.tokenz.one/zh-TW/v1/checkout/testing" api_version: "v1" locale: "zh-TW" 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-TW/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-TW/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-TW/v1/checkout/testing#%E6%B8%AC%E8%A9%A6%E5%8D%A1%E8%99%9F)的資料填寫卡片詳細資訊。 - 將測試授權結果開關切換到拒絕。這樣可以確保您的付款會被拒絕。 - 點擊「支付」。付款將被拒絕,您會被重新導向回卡片輸入頁面,在那裡您可以再次嘗試付款。 | | | | --- | --- | | ![](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-TW/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" ] }' ``` 1. 完成 Tokenz 結帳 打開創建結帳工作階段 API 呼叫返回的 `url`。 - 請確認右上角的國家/地區已選擇 `Japan` - 選擇 `Konbini` 作為支付方式 - 填寫任何名稱、電子郵件地址和電話號碼,並選擇一個便利商店。 - 將測試授權結果開關保持為成功。這可以確保您的訂單支付成功。點擊 `Pay` 按鈕以啟動支付。 - 結帳螢幕顯示在便利商店支付的說明。 - 支付完成後(測試支付的情況下為 10 秒後),會顯示支付成功畫面。如果您設定了 webhook,您也會收到一個 `order.succeeded` webhook。 - 當您點擊「OK」,您將被重定向到您在創建結帳工作階段時指定的 `successUrl`。 | | | | --- | --- | | ![](https://docs.tokenz.one/docs/payment_method_selection.png) | ![](https://docs.tokenz.one/docs/konbini_filled.png) | > 不要嘗試在便利店支付測試付款。測試結帳僅供測試,無需進行實際支付。 ## 測試錢包支付,如 PayPay 或支付寶 在實際支付過程中,用戶需要登入他們的錢包並批准付款。為了讓您能夠在沒有帳戶的情況下測試錢包支付,在測試結帳時,我們只模擬重定向到錢包提供商的過程。 1. 創建 PayPay 支付的結帳工作階段 使用我們的 [API](https://docs.tokenz.one/zh-TW/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 帳戶就能進行測試。 - 點擊「Pay」。根據測試結果開關的設定,付款會被成功處理或被拒絕。 | | | | | --- | --- | --- | | ![](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) |