テストカード番号とテストデータ
Omise のテスト環境ですべての支払いシナリオをテストするための完全なテストカード番号と支払いデータです。これらのカードを使用して、成功支払い、拒否、3D Secure 認証、さまざまな失敗シナリオをシミュレートできます。
概要
Omise は、サポートされているすべての支払い方法に対応する包括的なテストデータを提供しています。これらのテストカードと支払い方法により、本番環境に移行する前に統合を徹底的にテストでき、成功シナリオ、拒否理由、不正検出、3D Secure 認証、地域の支払い方法をカバーできます。
主な機能
- 完全なカード対応: すべての主要なカードブランド用のテストカード
- 3D Secure テスト: 成功および失敗した認証の両方をテスト
- 拒否シナリオ: 特定の拒否理由とレスポンスをテスト
- 地域方法: サポートされている各市場のカードと支払い方法
- 実世界シナリオ: エッジケースと特殊条件をテスト
- CVV と有効期限テスト: 検証とセキュリティチェックをテスト
標準テストカード
成功支払いカード
成功支払いシナリオをテストするには、これらのカードを使用してください:
| カードブランド | カード番号 | CVV | 有効期限 | 3D Secure | 説明 |
|---|---|---|---|---|---|
| Visa | 4242424242424242 | 任意の3桁 | 任意の将来の日付 | 登録されていない | 標準的な成功支払い |
| Visa | 4111111111111111 | 任意の3桁 | 任意の将来の日付 | 登録されていない | 代替 Visa テストカード |
| Mastercard | 5555555555554444 | 任意の3 桁 | 任意の将来の日付 | 登録されていない | 標準的な成功支払い |
| Mastercard | 5454545454545454 | 任意の3桁 | 任意の将来の日付 | 登録されていない | 代替 Mastercard テストカード |
| JCB | 3530111333300000 | 任意の3桁 | 任意の将来の日付 | 登録されていない | 標準 JCB 支払い |
| American Express | 378282246310005 | 任意の4桁 | 任意の将来の日付 | 登録されていない | 標準 Amex 支払い |
| American Express | 371449635398431 | 任意の4桁 | 任意の将来の日付 | 登録されていない | 代替 Amex テストカード |
| Diners Club | 36227206271667 | 任意の3桁 | 任意の将来の日付 | 登録されていない | 標準 Diners 支払い |
| Discover | 6011111111111117 | 任意の3桁 | 任意の将来の日付 | 登録されていない | 標準 Discover 支払い |
重要な注釈
- CVV: 有効な CVV を使用してください (ほとんどのカードは 3 桁、American Express は 4 桁)
- 有効期限: MM/YY または MM/YYYY 形式で将来の日付を使用してください
- カード名義人: 任意の名前を使用してください (最小 2 文字)
- 金額: さまざまな支払い金額をテストするには、任意の有効な金額を使用してください
3D Secure テストカード
成功 3D Secure 認証
3D Secure 認証が必要で正常に完了するカード:
| カードブランド | カード番号 | CVV | 有効期限 | 認証 | 説明 |
|---|---|---|---|---|---|
| Visa | 4000000000000002 | 任意の3桁 | 任意の将来の日付 | 成功 | 3DS 登録済み、認証成功 |
| Mastercard | 5200000000000007 | 任意の3桁 | 任意の将来の日付 | 成功 | 3DS 登録済み、認証成功 |
| JCB | 3530111333300001 | 任意の3桁 | 任意の将来の日付 | 成功 | 3DS 登録済み、認証成功 |
失敗 3D Secure 認証
3D Secure 認証に失敗するカード:
| カードブランド | カード番号 | CVV | 有効期限 | 認証 | 説明 |
|---|---|---|---|---|---|
| Visa | 4000000000000010 | 任意の3桁 | 任意の将来の日付 | 失敗 | 3DS 登録済み、認証失敗 |
| Mastercard | 5200000000000015 | 任意の3桁 | 任意の将 来の日付 | 失敗 | 3DS 登録済み、認証失敗 |
| Visa | 4000000000000028 | 任意の3桁 | 任意の将来の日付 | 拒否 | 3DS 登録済み、発行者により拒否 |
3D Secure 認証フロー
// JavaScript - 3D Secure 支払いのテスト
const Omise = require('omise')({
secretKey: 'skey_test_xxxxxxxxxx',
omiseVersion: '2019-05-29'
});
async function test3DSecurePayment() {
try {
// 1. 3DS テストカードでトークンを作成
const token = await Omise.tokens.create({
card: {
name: 'Test User',
number: '4000000000000002', // 3DS enrolled card
expiration_month: 12,
expiration_year: 2026,
security_code: '123'
}
});
// 2. チャージを作成 (3DS の authorize_uri が返される)
const charge = await Omise.charges.create({
amount: 100000, // 1,000.00 THB
currency: 'THB',
card: token.id,
return_uri: 'https://example.com/orders/complete'
});
console.log('Charge Status:', charge.status); // 'pending'
console.log('3DS Authorization URL:', charge.authorize_uri);
// 顧客が authorize_uri で 3DS 認証を完了
// 完了後、return_uri にリダイレクトされます
// 3. チャージを取得して最終ステータスを確認
const updatedCharge = await Omise.charges.retrieve(charge.id);
console.log('Final Status:', updatedCharge.status); // 'successful'
} catch (error) {
console.error('Error:', error.message);
}
}
test3DSecurePayment();
# Python - 3D Secure 支払いのテスト
import omise
omise.api_secret = 'skey_test_xxxxxxxxxx'
omise.api_version = '2019-05-29'
def test_3ds_payment():
try:
# 1. 3DS テストカードでトークンを作成
token = omise.Token.create(
card={
'name': 'Test User',
'number': '4000000000000002', # 3DS enrolled card
'expiration_month': 12,
'expiration_year': 2026,
'security_code': '123'
}
)
# 2. チャージを作成 (3DS の authorize_uri が返され る)
charge = omise.Charge.create(
amount=100000, # 1,000.00 THB
currency='THB',
card=token.id,
return_uri='https://example.com/orders/complete'
)
print(f'Charge Status: {charge.status}') # 'pending'
print(f'3DS Authorization URL: {charge.authorize_uri}')
# 顧客が authorize_uri で 3DS 認証を完了
# 完了後、return_uri にリダイレクトされます
# 3. チャージを取得して最終ステータスを確認
updated_charge = omise.Charge.retrieve(charge.id)
print(f'Final Status: {updated_charge.status}') # 'successful'
except omise.errors.BaseError as e:
print(f'Error: {e.message}')
test_3ds_payment()
# Ruby - 3D Secure 支払いのテスト
require 'omise'
Omise.api_key = 'skey_test_xxxxxxxxxx'
Omise.api_version = '2019-05-29'
def test_3ds_payment
begin
# 1. 3DS テストカードでトークンを作成
token = Omise::Token.create(
card: {
name: 'Test User',
number: '4000000000000002', # 3DS enrolled card
expiration_month: 12,
expiration_year: 2026,
security_code: '123'
}
)
# 2. チャージを作成 (3DS の authorize_uri が返される)
charge = Omise::Charge.create(
amount: 100_000, # 1,000.00 THB
currency: 'THB',
card: token.id,
return_uri: 'https://example.com/orders/complete'
)
puts "Charge Status: #{charge.status}" # 'pending'
puts "3DS Authorization URL: #{charge.authorize_uri}"
# 顧客が authorize_uri で 3DS 認証を完了
# 完了後、return_uri にリダイレクトされます
# 3. チャージを取得して最終ステータスを確認
updated_charge = Omise::Charge.retrieve(charge.id)
puts "Final Status: #{updated_charge.status}" # 'successful'
rescue Omise::Error => e
puts "Error: #{e.message}"
end
end
test_3ds_payment
<?php
// PHP - 3D Secure 支払いのテスト
require_once 'vendor/autoload.php';
define('OMISE_API_VERSION', '2019-05-29');
define('OMISE_SECRET_KEY', 'skey_test_xxxxxxxxxx');
function test3DSecurePayment() {
try {
// 1. 3DS テストカードでトークンを作成
$token = OmiseToken::create([
'card' => [
'name' => 'Test User',
'number' => '4000000000000002', // 3DS enrolled card
'expiration_month' => 12,
'expiration_year' => 2026,
'security_code' => '123'
]
]);
// 2. チャージを作成 (3DS の authorize_uri が返される)
$charge = OmiseCharge::create([
'amount' => 100000, // 1,000.00 THB
'currency' => 'THB',
'card' => $token['id'],
'return_uri' => 'https://example.com/orders/complete'
]);
echo "Charge Status: {$charge['status']}\n"; // 'pending'
echo "3DS Authorization URL: {$charge['authorize_uri']}\n";
// 顧客が authorize_uri で 3DS 認証を完了
// 完了後、return_uri にリダイレクトされます
// 3. チャージを取得して最終ステータスを確認
$updatedCharge = OmiseCharge::retrieve($charge['id']);
echo "Final Status: {$updatedCharge['status']}\n"; // 'successful'
} catch (Exception $e) {
echo "Error: {$e->getMessage()}\n";
}
}
test3DSecurePayment();
?>
// Go - 3D Secure 支払いのテスト
package main
import (
"fmt"
"github.com/omise/omise-go"
"github.com/omise/omise-go/operations"
)
func test3DSecurePayment() {
client, _ := omise.NewClient(
"pkey_test_xxxxxxxxxx",
"skey_test_xxxxxxxxxx",
)
client.APIVersion = "2019-05-29"
// 1. 3DS テストカードでトークンを作成
token, createTokenErr := client.CreateToken(&operations.CreateToken{
Name: "Test User",
Number: "4000000000000002", // 3DS enrolled card
ExpirationMonth: 12,
ExpirationYear: 2026,
SecurityCode: "123",
})
if createTokenErr != nil {
fmt.Printf("Error creating token: %v\n", createTokenErr)
return
}
// 2. チャージを作成 (3DS の authorize_uri が返される)
charge, createChargeErr := client.CreateCharge(&operations.CreateCharge{
Amount: 100000, // 1,000.00 THB
Currency: "THB",
Card: token.ID,
ReturnURI: "https://example.com/orders/complete",
})
if createChargeErr != nil {
fmt.Printf("Error creating charge: %v\n", createChargeErr)
return
}
fmt.Printf("Charge Status: %s\n", charge.Status) // 'pending'
fmt.Printf("3DS Authorization URL: %s\n", charge.AuthorizeURI)
// 顧客が authorize_uri で 3DS 認証を完了
// 完了後、return_uri にリダイレクトされます
// 3. チャージを取得して最終ステータスを確認
updatedCharge, retrieveErr := client.GetCharge(charge.ID)
if retrieveErr != nil {
fmt.Printf("Error retrieving charge: %v\n", retrieveErr)
return
}
fmt.Printf("Final Status: %s\n", updatedCharge.Status) // 'successful'
}
func main() {
test3DSecurePayment()
}
拒否されたカードテスト番号
特定の拒否理由
これらのカードで特定の拒否シナリオをテストしてください:
| カード番号 | 拒否理由 | 説明 |
|---|---|---|
4000000000000101 | 資金不足 | カードに資金が不足しています |
4000000000000119 | 処理エラー | 一般的な処理エラー |
4000000000000127 | 紛失カード | カードが紛失として報告されています |
4000000000000135 | 盗難カード | カードが盗難として報告されています |
4000000000000143 | 期限切れカード | カードの有効期限が切れています |
4000000000000150 | 無効な CVV | CVV 検証に失敗しました |
4000000000000168 | 無効なカード番号 | カード番号が無効です |
4000000000000176 | 無効な有効期限 | 有効期限が無効です |
4000000000000184 | 取引不許可 | このカードでは取引が許可されていません |
4000000000000192 | 不正の疑い | 取引が不正としてフラグ付けされています |
4000000000000200 | カード制限 | カードに制限があります |
4000000000000218 | 引き出し限度額超過 | 金額がカード限度額を超えています |
4000000000000226 | 発行者利用不可 | カード発行者システムが利用できません |
4000000000000234 | 取引拒否 | 発行者からの一般的な拒否 |
拒否された支払いのテスト
// JavaScript - 拒否された支払いのテスト
const Omise = require('omise')({
secretKey: 'skey_test_xxxxxxxxxx'
});
async function testDeclinedPayment() {
try {
const token = await Omise.tokens.create({
card: {
name: 'Test User',
number: '4000000000000101', // Insufficient funds
expiration_month: 12,
expiration_year: 2026,
security_code: '123'
}
});
const charge = await Omise.charges.create({
amount: 100000,
currency: 'THB',
card: token.id
});
console.log('Charge Status:', charge.status); // 'failed'
console.log('Failure Code:', charge.failure_code); // 'insufficient_funds'
console.log('Failure Message:', charge.failure_message);
} catch (error) {
console.error('Error:', error.message);
}
}
testDeclinedPayment();
# Python - 適切なエラーハンドリングを使用した拒否された支払いのテスト
import omise
omise.api_secret = 'skey_test_xxxxxxxxxx'
def test_declined_payment():
try:
token = omise.Token.create(
card={
'name': 'Test User',
'number': '4000000000000101', # Insufficient funds
'expiration_month': 12,
'expiration_year': 2026,
'security_code': '123'
}
)
charge = omise.Charge.create(
amount=100000,
currency='THB',
card=token.id
)
print(f'Charge Status: {charge.status}') # 'failed'
print(f'Failure Code: {charge.failure_code}') # 'insufficient_funds'
print(f'Failure Message: {charge.failure_message}')
except omise.errors.BaseError as e:
print(f'Error: {e.message}')
test_declined_payment()
地域別テストカード
タイのテストカード
タイ市場でのテスト専用のカード:
| カードブランド | カード番号 | 通貨 | 説明 |
|---|---|---|---|
| Visa | 4242424242424242 | THB | 標準タイ Visa カード |
| Mastercard | 5555555555554444 | THB | 標準タイ Mastercard |
| JCB | 3530111333300000 | THB | タイで人気の JCB カード |
| UnionPay | 6200000000000005 | THB | 中国人観光客向け UnionPay カード |
シンガポールのテストカード
| カードブランド | カード番号 | 通貨 | 説明 |
|---|---|---|---|
| Visa | 4242424242424242 | SGD | シンガポール Visa カード |
| Mastercard | 5555555555554444 | SGD | シンガポール Mastercard |
マレーシアのテストカード
| カードブランド | カード番号 | 通貨 | 説明 |
|---|---|---|---|
| Visa | 4242424242424242 | MYR | マレーシア Visa カード |
| Mastercard | 5555555555554444 | MYR | マレーシア Mastercard |
日本のテストカード
| カードブランド | カード番号 | 通貨 | 説明 |
|---|---|---|---|
| Visa | 4242424242424242 | JPY | 日本 Visa カード |
| Mastercard | 5555555555554444 | JPY | 日本 Mastercard |
| JCB | 3530111333300000 | JPY | 日本 JCB カード |
| JCB | 3566002020360505 | JPY | 代替 JCB カード |
代替支払い方法のテストデータ
PromptPay テストデータ
タイ市場での PromptPay 支払いをテストします:
| フィールド | テスト値 | 説明 |
|---|---|---|
| 電話番号 | 0812345678 | 有効なタイの携帯電話番号 |
| 電話番号 | +66812345678 | 国コード付きの有効な番号 |
| 国民ID | 1234567890123 | 有効な13桁のタイID |
| 金額 | 任意の金額 | テストには最小額はありません |
// JavaScript - PromptPay 支払いのテスト
const Omise = require('omise')({
secretKey: 'skey_test_xxxxxxxxxx'
});
async function testPromptPayPayment() {
try {
const source = await Omise.sources.create({
type: 'promptpay',
amount: 100000,
currency: 'THB'
});
console.log('Source ID:', source.id);
console.log('QR Code URL:', source.scannable_code.image.download_uri);
const charge = await Omise.charges.create({
amount: 100000,
currency: 'THB',
source: source.id,
return_uri: 'https://example.com/orders/complete'
});
console.log('Charge Status:', charge.status); // 'pending'
// テストモードでは、支払いを手動で成功としてマークできます
// または、タイムアウト期間後に自動的に期限切れになります
} catch (error) {
console.error('Error:', error.message);
}
}
testPromptPayPayment();
TrueMoney Wallet テストデータ
TrueMoney Wallet 支払いをテストします:
| フィールド | テスト値 | 説明 |
|---|---|---|
| 電話番号 | 0812345678 | 有効なタイの携帯電話番号 |
| 金額 | 20 - 1000000 | THB サブユニットでの金額 |
// JavaScript - TrueMoney Wallet 支払いのテスト
async function testTrueMoneyPayment() {
try {
const source = await Omise.sources.create({
type: 'truemoney',
amount: 100000,
currency: 'THB',
phone_number: '0812345678'
});
const charge = await Omise.charges.create({
amount: 100000,
currency: 'THB',
source: source.id,
return_uri: 'https://example.com/orders/complete'
});
console.log('Charge Status:', charge.status);
console.log('Authorization URL:', charge.authorize_uri);
} catch (error) {
console.error('Error:', error.message);
}
}
testTrueMoneyPayment();
Rabbit LINE Pay テストデータ
Rabbit LINE Pay 支払いをテストします:
| フィールド | テスト値 | 説明 |
|---|---|---|
| 金額 | 1 - 5000000 | THB サブユニットでの金額 |
| 通貨 | THB | タイバーツのみ |
# Python - Rabbit LINE Pay のテスト
import omise
omise.api_secret = 'skey_test_xxxxxxxxxx'
def test_rabbit_linepay():
try:
source = omise.Source.create(
type='rabbit_linepay',
amount=100000,
currency='THB'
)
charge = omise.Charge.create(
amount=100000,
currency='THB',
source=source.id,
return_uri='https://example.com/orders/complete'
)
print(f'Charge Status: {charge.status}')
print(f'Authorization URL: {charge.authorize_uri}')
except omise.errors.BaseError as e:
print(f'Error: {e.message}')
test_rabbit_linepay()