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

クイックスタートガイド

5分で最初のテストchargeを作成します。このガイドでは、決済を受け付けるための最初のAPI呼び出しを行う方法を説明します。

作成するもの

このガイドを終えると、以下が完了します:

  • ✅ Omiseテストアカウントを作成
  • ✅ API keyを確認
  • ✅ 最初のAPI呼び出しを実行
  • ✅ 成功したテストchargeを作成
  • ✅ 基本的な決済フローを理解

所要時間: 5〜10分

ステップ1: アカウントを作成

  1. dashboard.omise.co/signupにアクセス
  2. メールアドレスを入力
  3. パスワードを作成(大文字、小文字、数字、特殊文字(@#?など)を含む10文字以上)
  4. 登録をクリック
  5. メールアドレスを確認
即座にアクセス

テストダッシュボードにすぐにアクセスできます - ビジネス検証は不要です!

ステップ2: API Keyを取得

  1. テストダッシュボードにログイン
  2. 設定Keysに移動
  3. 2つのkeyが表示されます:
    • Public Key (pkey_test_...) - クライアント側の操作用
    • Secret Key (skey_test_...) - サーバー側の操作用
Keyを安全に保管

secret keyをクライアント側のコードや公開リポジトリに公開しないでください!

ステップ3: 最初のChargeを作成

Omiseは2ステップのプロセスで決済を受け付けます:

フローを理解する

ステップ3a: Tokenを作成

まず、public keyを使用して決済方法をtokenizeします。これによりカードデータがサーバーに触れません。

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

レスポンス:

{
"object": "token",
"id": "tokn_test_5xp6ca4dtzx5cskm9mk",
"livemode": false,
"location": "/tokens/tokn_test_5xp6ca4dtzx5cskm9mk",
"used": false,
"card": {
"object": "card",
"id": "card_test_5xp6ca3y2vtgcw24o9p",
"livemode": false,
"brand": "Visa",
"last_digits": "4242",
"expiration_month": 12,
"expiration_year": 2027
},
"created_at": "2024-01-15T07:30:00Z"
}

token.id値を保存してください - 次のステップで必要になります!

ステップ3b: Chargeを作成

次に、サーバー上でsecret keyとtokenを使用してchargeを作成します。

curl https://api.omise.co/charges \
-X POST \
-u skey_test_YOUR_SECRET_KEY: \
-d "amount=100000" \
-d "currency=thb" \
-d "card=tokn_test_5xp6ca4dtzx5cskm9mk"

レスポンス:

{
"object": "charge",
"id": "chrg_test_5xp6ccfmecft4zxrb7p",
"location": "/charges/chrg_test_5xp6ccfmecft4zxrb7p",
"amount": 100000,
"currency": "thb",
"status": "successful",
"paid": true,
"transaction": "trxn_test_5xp6ccfmvcsm7ih0c8w",
"card": {
"object": "card",
"id": "card_test_5xp6ca3y2vtgcw24o9p",
"livemode": false,
"brand": "Visa",
"last_digits": "4242"
},
"created_at": "2024-01-15T07:30:15Z"
}

🎉 おめでとうございます! 最初のchargeの作成に成功しました!

ステップ4: ダッシュボードで確認

  1. テストダッシュボードにアクセス
  2. 左メニューのChargesをクリック
  3. ステータスが「Successful」のテストchargeが表示されます

テストカード

さまざまなシナリオをテストするには、以下のカード番号を使用してください:

カード番号ブランド結果
4242 4242 4242 4242Visa✅ 成功
5555 5555 5555 4444Mastercard✅ 成功
3530 1113 3330 0000JCB✅ 成功
3782 822463 10005Amex✅ 成功
任意の有効期限とCVV

テストモードでは、任意の将来の有効期限と任意の3〜4桁のCVVコードを使用してください。

すべてのテストカードを見る →

次のステップ

最初のchargeを作成したので、次に探索すべきことは以下の通りです:

1. 実際のチェックアウトを構築

本番環境でOmise.jsを使用

決済フォームを使用した完全なチェックアウトフローの実装方法を学びます。

Omise.jsガイドを見る →

2. 決済方法を探索

より多くの決済オプションを追加

PromptPay、TrueMoney、モバイルバンキング、および40以上の決済方法を受け付けます。

決済方法を見る →

3. Webhookを処理

リアルタイム更新を取得

決済が成功、失敗、または返金された際に通知を受け取ります。

Webhookをセットアップ →

4. 徹底的にテスト

すべてのシナリオをテスト

失敗、返金、およびさまざまな決済方法をシミュレートします。

テストガイド →

5. 本番環境に移行

本番環境に移行

ビジネス検証を完了し、実際の決済の受付を開始します。

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

よくある問題と解決策

Token作成が失敗する

問題: tokenを作成する際に認証エラーが発生する。

解決策:

  • public keyを使用していることを確認(pkey_で始まる)
  • keyがテストモード用であることを確認(pkey_test_...)
  • keyがダッシュボードでアクティブであることを確認

Charge作成が失敗する

問題: chargeがエラーまたは無効なリクエストを返す。

解決策:

  • secret keyを使用していることを確認(skey_で始まる)
  • tokenがまだ使用されていないことを確認(tokenは1回限り)
  • 金額が最小通貨単位であることを確認(例: THBのサタン)
  • 通貨コードが正しいことを確認(例: thbjpysgd)

テストモードでカードが拒否される

問題: テストカードが拒否される。

解決策:

  • リストから正しいテストカード番号を使用
  • テストモードであることを確認(test keyを使用)
  • 将来の有効期限を使用していることを確認

FAQ

なぜtokenとchargeの両方が必要なのですか?

2ステップのプロセスにより、統合のセキュリティが保たれます:

  1. Token作成はpublic keyを使用してクライアント(ブラウザ/アプリ)で行われます。これにより、機密のカードデータはサーバーに触れることなく、直接Omiseに送信されます。

  2. Charge作成はsecret keyを使用してサーバーで行われます。サーバーはtoken(生のカードデータではなく)を使用して決済を完了します。

この関心事の分離により、PCI準拠の負担が軽減され、顧客データが安全に保たれます。

tokenを再利用できますか?

いいえ、tokenは1回限りです。tokenを使用してchargeを作成すると、そのtokenは再度使用できません。

顧客に複数回課金するには、以下が必要です:

どの通貨がサポートされていますか?

サポートされている通貨は、アカウントの地域によって異なります:

  • タイ: THB (タイバーツ)
  • 日本: JPY (日本円)
  • シンガポール: SGD (シンガポールドル)
  • マレーシア: MYR (マレーシアリンギット)

一部のアカウントでは複数の通貨をサポートする場合があります。利用可能なオプションについてはダッシュボードを確認してください。

マルチ通貨について学ぶ →

金額をどのように指定しますか?

常に最小通貨単位で金額を指定します:

  • THB: 100000 = ฿1,000.00 (サタン)
  • JPY: 1000 = ¥1,000 (円 - 小数点以下なし)
  • SGD: 10000 = S$100.00 (セント)
  • MYR: 10000 = RM100.00 (セント)

金額フィールドに小数点を使用しないでください。

サンプルコードはどこで見つかりますか?
  • 公式ライブラリ: 各SDKにはサンプルコードが含まれています
  • GitHub: github.com/omiseのサンプルアプリケーション
  • ドキュメント: これらのドキュメント全体で8以上の言語のコード例
テストから本番環境にどのように移行しますか?
  1. ビジネス検証を完了(本番移行を参照)
  2. コード内でtest keyからlive keyに切り替え
  3. 最初は少額の実際の取引でテスト
  4. ダッシュボードとwebhookエンドポイントを監視
  5. 徐々に拡大

統合コードは同じままです - API keyのみが変更されます!

完全な例

以下は、ローカルで実行できる完全なHTML + JavaScriptの例です:

<!DOCTYPE html>
<html>
<head>
<title>Omise Quickstart</title>
<script src="https://cdn.omise.co/omise.js"></script>
</head>
<body>
<h1>฿1,000.00を支払う</h1>

<form id="payment-form">
<div>
<label>カード番号</label>
<input type="text" id="card-number" value="4242424242424242">
</div>
<div>
<label>名前</label>
<input type="text" id="card-name" value="John Doe">
</div>
<div>
<label>有効期限 (MM/YY)</label>
<input type="text" id="card-expiry" value="12/25">
</div>
<div>
<label>CVV</label>
<input type="text" id="card-cvv" value="123">
</div>
<button type="submit">今すぐ支払う</button>
</form>

<div id="result"></div>

<script>
// public keyを設定
Omise.setPublicKey('pkey_test_YOUR_PUBLIC_KEY');

document.getElementById('payment-form').addEventListener('submit', function(e) {
e.preventDefault();

const expiry = document.getElementById('card-expiry').value.split('/');

// ステップ1: tokenを作成
Omise.createToken('card', {
name: document.getElementById('card-name').value,
number: document.getElementById('card-number').value,
expiration_month: expiry[0],
expiration_year: '20' + expiry[1],
security_code: document.getElementById('card-cvv').value
}, function(statusCode, response) {
if (statusCode == 200) {
// ステップ2: tokenをサーバーに送信してchargeを作成
createCharge(response.id);
} else {
document.getElementById('result').innerHTML =
'<p style="color:red">Error: ' + response.message + '</p>';
}
});
});

function createCharge(token) {
// 本番環境では、これはサーバーエンドポイントを呼び出します
// サーバーはsecret keyを使用してchargeを作成します
fetch('/api/charges', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
token: token,
amount: 100000,
currency: 'thb'
})
})
.then(response => response.json())
.then(data => {
document.getElementById('result').innerHTML =
'<p style="color:green">決済成功! Charge ID: ' + data.id + '</p>';
})
.catch(error => {
document.getElementById('result').innerHTML =
'<p style="color:red">Error: ' + error.message + '</p>';
});
}
</script>
</body>
</html>

ヘルプが必要ですか?

さらに詳しく知りたいですか? コンセプトを理解するに進んで、Omiseの仕組みを詳しく学びましょう。