メインコンテンツへスキップ

Test vs Live Mode

Omiseは、実際の取引を処理したり実際のお金を使用したりすることなく、統合を開発およびテストできる完全なテスト環境を提供します。

2つの独立した環境

Omiseは2つの完全に隔離された環境で動作します:

Test Mode (Sandbox)

  • 無料で使用 - 料金や手数料なし
  • 完全に機能的 - すべての機能と決済方法をテスト
  • 実際のお金なし - シミュレートされたトランザクションのみ
  • 検証不要 - サインアップ後すぐにアクセス
  • テストカード - 異なるシナリオをシミュレートする特別なカード番号を使用
  • 独立したダッシュボード - dashboard.omise.coのTest Dashboard

Live Mode (本番環境)

  • 💰 実際のトランザクション - 実際のお金が処理される
  • 💰 実際のカード - 顧客が実際の決済方法を使用
  • 💰 手数料が適用 - 標準の取引手数料が適用
  • 💰 検証が必要 - ビジネス検証が必要
  • 💰 独立したダッシュボード - dashboard.omise.coのLive Dashboard
完全な隔離

TestとLiveモードは完全に分離されています。テストデータがライブデータに影響することはなく、テストchargeが実際のお金を処理することもありません。

モード間の切り替え

TestとLiveモードの唯一の違いは、使用するAPI keyです:

モードPublic KeySecret Key
Testpkey_test_...skey_test_...
Livepkey_...skey_...
同じコード、異なるKey

統合コードはまったく同じままです。本番環境に移行する準備ができたら、API keyを交換するだけです!

コード例

// 開発/テスト
const omise = require('omise')({
secretKey: 'skey_test_5xp6c8n0jvds5mmjizz' // Test key
});

// 本番環境
const omise = require('omise')({
secretKey: 'skey_5xp6c8n0jvds5mmjizz' // Live key ("_test_"なし)
});

Test Dashboardの機能

Test modeを使用する際、特別なテスト機能にアクセスできます:

1. 自動Transfer

Test modeでは、転送された資金が自動的に「Transferable」残高に表示されます:

  • Test Mode: 即時、待機期間なし
  • Live Mode: 7日(タイ)、21日(日本)

2. 手動ステータス制御

特定の決済方法では、chargeを手動で成功または失敗としてマークできます:

  1. ダッシュボードのchargeに移動
  2. Actionsをクリック
  3. Mark as SuccessfulまたはMark as Failedを選択

これは、銀行振込やQR決済などの代替決済方法をテストするのに便利です。

3. Webhookテスト

Test webhookは、テストデータを使用してライブwebhookと同じように発火します:

  • 設定されたwebhookエンドポイントに配信
  • Test modeデータを含む
  • 本番環境に移行する前にwebhookハンドラーの開発を支援

4. Transferシミュレーション

完全なtransferフローをテスト:

  1. Chargeを作成
  2. 資金がtransferableになるまで待つ(testでは即時)
  3. Transferを作成
  4. Mark as sentMark as paidを使用して銀行処理をシミュレート

テストカード

Test modeで異なるシナリオをシミュレートするには、これらの特別なカード番号を使用します:

成功する決済

カード番号ブランド3DS
4242 4242 4242 4242Visaいいえ
5555 5555 5555 4444Mastercardいいえ
3530 1113 3330 0000JCBいいえ
3782 822463 10005American Expressいいえ
3600 666633 3344Diners Clubいいえ
6011 1111 1111 1117Discoverいいえ
任意の有効期限とCVV

Test modeでは、将来の有効期限と任意の3-4桁のCVVコードを使用します。特定の値は重要ではありません。

失敗する決済

これらのカードで特定のエラーシナリオをテスト:

カード番号エラーコードエラーメッセージ
4000 0000 0000 0002insufficient_fund残高不足
4000 0000 0000 0069stolen_or_lost_cardカード盗難報告
4000 0000 0000 0101failed_processing決済処理失敗
4000 0000 0000 0119payment_rejected発行者による決済拒否
4000 0000 0000 0127failed_fraud_check不正チェック失敗
4000 0000 0000 0010invalid_account_number無効なカード番号

例:

curl https://vault.omise.co/tokens \
-X POST \
-u pkey_test_YOUR_KEY: \
-d "card[number]=4000000000000002" \
-d "card[name]=John Doe" \
-d "card[expiration_month]=12" \
-d "card[expiration_year]=2027" \
-d "card[security_code]=123"

# これは"insufficient_fund"で失敗するchargeを作成します

3D Secureテスト

3D Secure(3DS)認証をテストするには:

  1. 3DSを有効化 - テストアカウントで(support@omise.coにお問い合わせ)
  2. 3DSテストカードを使用(下表参照)
  3. モック認証ページが表示されます
  4. CompleteまたはFailを選択して異なる結果をテスト

3D Secureテストカード

注記

3DSテストには、3DS対応のテストアカウントが必要です。テストアカウントで3D Secureを有効にするには、support@omise.coにお問い合わせください。

登録失敗カード(設定の問題):

カード番号ブランド結果
4111 1111 1115 0002Visa3DS登録失敗
5555 5511 1112 0002Mastercard3DS登録失敗
3530 1111 1110 0002JCB3DS登録失敗

認証失敗カード(検証の問題):

カード番号ブランド結果
4111 1111 1114 0003Visa3DS認証失敗
5555 5511 1111 0003Mastercard3DS認証失敗
3771 3816 1111 003Amex3DS認証失敗

テストフロー:

# 1. 3DSカードでtokenを作成
curl https://api.omise.co/tokens \
-u pkey_test_YOUR_PUBLIC_KEY: \
-d "card[name]=John Doe" \
-d "card[number]=4111111111150002" \
-d "card[expiration_month]=12" \
-d "card[expiration_year]=2027" \
-d "card[security_code]=123"

# 2. 3DSリダイレクト用のreturn_uriでchargeを作成
curl https://api.omise.co/charges \
-u skey_test_YOUR_SECRET_KEY: \
-d "amount=100000" \
-d "currency=thb" \
-d "card=TOKEN_ID" \
-d "return_uri=https://example.com/3ds-return"

# 3. Chargeステータスはauthorize_uriと共に"pending"になります
# 4. 認証のために顧客をauthorize_uriにリダイレクト
# 5. 顧客が3DSチャレンジを完了
# 6. Chargeステータスが"successful"または"failed"に変更

3D Secureについて詳しく見る →

決済方法のテスト

クレジット/デビットカード

上記のテストカード番号をpublic keyと共に使用してtokenを作成:

Omise.setPublicKey('pkey_test_YOUR_KEY');

Omise.createToken('card', {
name: 'John Doe',
number: '4242424242424242', // テストカード
expiration_month: 12,
expiration_year: 2027,
security_code: '123'
}, callback);

代替決済方法

代替決済方法(PromptPay、TrueMoney、モバイルバンキングなど)の場合:

  1. Test keyを使用してsource/chargeを作成
  2. Test modeでは、シミュレートされた決済ページが表示されます
  3. 異なるシナリオをテストするために決済を完了またはキャンセル
  4. またはダッシュボードでMark as Successful/Failedを使用

例 - PromptPay:

curl https://api.omise.co/sources \
-X POST \
-u skey_test_YOUR_KEY: \
-d "type=promptpay" \
-d "amount=100000" \
-d "currency=THB"

# テストQRコードと決済ページを返します

Webhookのテスト

Test Webhookの設定

  1. Test Dashboard → 設定Webhooksに移動
  2. WebhookエンドポイントのURLを追加
  3. 受信するイベントを選択
  4. 設定を保存

Test Webhookの要件

  • ✅ 公開アクセス可能なURL(localhost不可)
  • ✅ 有効なSSL証明書を持つHTTPS
  • ✅ 200ステータスコードを返す
  • ✅ 10秒以内に応答
ローカル開発

Webhook テストのためにローカル開発サーバーを公開するには、ngroklocaltunnelなどのツールを使用してください。

Webhook配信のテスト

  1. イベントをトリガー(charge、refundなどを作成)
  2. Webhookエンドポイントのログを確認
  3. ダッシュボードで確認: 設定WebhooksDelivery Logs

Webhookペイロードの例(Test Mode):

{
"object": "event",
"id": "evnt_test_5xp6ch5pmx5c5zzfjc3",
"livemode": false,
"location": "/events/evnt_test_5xp6ch5pmx5c5zzfjc3",
"key": "charge.complete",
"created_at": "2024-01-15T08:00:00Z",
"data": {
"object": "charge",
"id": "chrg_test_5xp6ccfmecft4zxrb7p",
"livemode": false,
"status": "successful",
"amount": 100000,
"currency": "thb"
}
}

Test modeを示す"livemode": falseフィールドに注意してください。

テストチェックリスト

本番環境に移行する前に、これらのシナリオをテストしてください:

基本機能

  • テストカードで成功するchargeを作成
  • 失敗したcharge(拒否されたカード)を処理
  • Refundを処理(全額および部分)
  • Customerにカードを保存
  • 保存されたカードにcharge

エラーハンドリング

  • ネットワークタイムアウト
  • 無効なカード番号
  • 拒否された決済
  • 残高不足
  • APIエラー(無効なパラメータ)

決済方法

  • サポート予定のすべての決済方法
  • 市場向けの地域決済方法
  • 成功と失敗の両方のシナリオ

Webhook

  • Webhook配信と解析
  • 失敗した配信の再試行ロジック
  • 署名検証
  • 処理するすべてのイベントタイプ

3D Secure(有効な場合)

  • 3DS登録チェック
  • 成功する認証
  • 失敗する認証
  • ユーザーの放棄

ユーザーエクスペリエンス

  • 決済フォームの使いやすさ
  • モバイルレスポンシブ
  • エラーメッセージの表示
  • 成功の確認
  • メール通知

セキュリティ

  • API keyがセキュアに保存されている
  • HTTPSが有効
  • ログに機密データなし
  • カードデータがサーバーに触れない

完全なテストガイドを見る →

TestとLiveの違い

機能Test ModeLive Mode
トランザクションシミュレート実際
お金偽物実際
カードテストカードのみ実際のカードのみ
手数料手数料なし標準手数料が適用
検証不要ビジネス検証が必要
Transferスケジュール即時7-21日の保留期間
DashboardTest DashboardLive Dashboard
API Key_test_プレフィックス_test_プレフィックスなし
WebhookLiveと同じTestと同じ

一般的な問題

テストカードがLive Modeで機能しない

問題: テストカード番号がLive modeで拒否されます。

解決策: テストカードはtest keyでのみ機能します。Live modeでは実際のカードを使用してください(テストには少額から開始)。

実際のカードがTest Modeで機能しない

問題: 実際のカード番号がtest modeで拒否されます。

解決策: Test modeは特別なテストカード番号のみを受け付けます。Test modeで実際のカードを使用してテストしないでください。

Webhookがローカルで配信されない

問題: Webhookがローカル開発サーバーに届きません。

解決策: ngrokなどのトンネルサービスを使用:

# ngrokを起動
ngrok http 3000

# Webhook設定でHTTPS URLを使用
https://abc123.ngrok.io/webhooks

テストデータが見つからない

問題: Live dashboardでテストchargeやデータが見つかりません。

解決策: TestとLive環境は完全に分離されています。テストデータはTest Dashboardタブで表示してください、Live Dashboardではありません。

FAQ

本番環境でtest keyを使用できますか?

いいえ、test keyは実際の決済方法では機能しません。本番環境でtest keyを使用しようとすると、認証エラーが発生します。本番環境では常にlive keyを使用してください。

本番環境に移行する前にテストデータを削除する必要がありますか?

不要です! TestとLive環境は完全に分離されています。テストデータはtest環境に残り、liveアカウントに一切影響しません。

公開webhookエンドポイントなしでテストするにはどうすればよいですか?

オプション:

  1. ngrokなどのツールを使用してローカルサーバーを公開
  2. ステージング環境にデプロイして公開URLを取得
  3. Webhookテストツールを使用(webhook.siteなど)してペイロードを検査
  4. 手動でイベントをトリガーし、ダッシュボードで配信ログを確認
顧客が誤ってtest keyで支払うことはありますか?

いいえ、test keyはテスト決済方法でのみ機能します。実際の顧客はtest keyを使用して決済を完了できないため、本番環境での誤った使用から保護されます。

Test modeをどのくらいの期間使用できますか?

永久に! Test modeに時間制限はありません。使用用途:

  • 開発とテスト
  • 新しい開発者のトレーニング
  • デプロイ前の新機能のテスト
  • 統合のデモンストレーション
Test modeにレート制限はありますか?

はい、test modeにもlive modeと同じレート制限が適用されます。これにより、アプリケーションがレート制限をどのように処理するかをテストできます。

レート制限について学ぶ →

本番環境への移行

統合を十分にテストしたら:

  1. ビジネス検証を完了 - 必要な書類を提出
  2. Live API keyを取得 - 検証後、Live Dashboardで利用可能
  3. コードを更新 - Test keyをlive keyに置き換え
  4. 実際のカードでテスト - まず少額のテスト購入を行う
  5. 綿密に監視 - ダッシュボードとwebhookログを確認
  6. 徐々にスケール - 低ボリュームから開始して増やす

本番移行チェックリストを見る →


テストの準備はできましたか? テストAPI keyを取得して構築を開始しましょう!

質問がありますか? 完全なテストガイドを確認するか、support@omise.coにお問い合わせください。