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

クレジットカード & デビットカード決済

Visa、Mastercard、JCB、American Express、その他の主要なカードブランドで即時承認と安全な処理により決済を受け付けます。

概要

Omiseは、REST APIを使用したPCI認証決済ゲートウェイを通じて、マーチャントがクレジットカードおよびデビットカード決済をグローバルに受け付けることを可能にします。カード決済は即時承認を提供し、通常7日以内(タイ)または21日以内(日本)に決済されます。

サポートされているカードブランド

ブランドタイプ地域
Visaクレジット & デビットタイ、シンガポール、マレーシア、日本
Mastercardクレジット & デビットタイ、シンガポール、マレーシア、日本
JCBクレジット & デビットすべての地域 (日本で人気)
American Expressクレジットすべての地域
Diners Clubクレジット国際
Discoverクレジット国際
UnionPayクレジット & デビット中国および国際

国別の取引限度額

通貨最小最大
タイTHB฿20.00฿150,000.00
日本JPY¥100¥6,000,000
マレーシアMYRRM1.00RM100,000.00
シンガポールSGDS$1.00S$20,000.00

決済フロー

1. クライアント側のトークン化

Omise.jsを使用してカード情報を安全に収集し、トークンを作成します:

<!DOCTYPE html>
<html>
<head>
<title>チェックアウト</title>
<script src="https://cdn.omise.co/omise.js"></script>
</head>
<body>
<form id="checkout-form">
<input type="text" id="card-name" placeholder="カード名義人" />
<input type="text" id="card-number" placeholder="カード番号" />
<input type="text" id="card-expiry-month" placeholder="MM" />
<input type="text" id="card-expiry-year" placeholder="YYYY" />
<input type="text" id="card-cvv" placeholder="CVV" />
<button type="submit">今すぐ支払う</button>
</form>

<script>
Omise.setPublicKey("pkey_test_YOUR_PUBLIC_KEY");

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

Omise.createToken("card", {
name: document.getElementById('card-name').value,
number: document.getElementById('card-number').value,
expiration_month: document.getElementById('card-expiry-month').value,
expiration_year: document.getElementById('card-expiry-year').value,
security_code: document.getElementById('card-cvv').value
}, function(statusCode, response) {
if (statusCode === 200) {
// トークンが正常に作成されました
// トークンをサーバーに送信
fetch('/checkout', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token: response.id })
});
} else {
// エラーを処理
alert(response.message);
}
});
});
</script>
</body>
</html>

2. サーバー側の課金作成

サーバーでトークンを使用して課金を作成します:

curl https://api.omise.co/charges \
-u skey_test_YOUR_SECRET_KEY: \
-d "amount=10025" \
-d "currency=thb" \
-d "card=tokn_test_5rt6s9vah5lkvi1rh9c"

課金ステータス値

ステータス説明
pending決済承認待ち
successful決済が承認され取得されました
failed決済が拒否または失敗しました
expired承認ウィンドウが期限切れになりました
reversed承認が取り消されました

セキュリティ機能

1. PCI DSS準拠

  • OmiseはPCI DSS Level 1認証を取得しています
  • カードデータはサーバーに触れません
  • トークン化により準拠範囲が削減されます

2. 3D Secure認証

  • セキュリティの追加レイヤーを追加
  • 不正とチャージバックを削減
  • カード発行者に責任を転嫁

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

3. 住所確認 (AVS)

  • 請求先住所を確認
  • 承認率を向上
  • 国際カードに推奨

4. CVV確認

  • カードセキュリティコードを確認
  • カード所有を確認
  • 不正リスクを削減

承認率の向上

完全な請求情報を提供

Omise.createToken("card", {
name: "山田太郎",
number: "4242424242424242",
expiration_month: 12,
expiration_year: 2027,
security_code: "123",
// 請求先住所は承認を向上させます
city: "東京",
postal_code: "100-0001",
country: "JP"
}, callback);

顧客コンテキストを含める

curl https://api.omise.co/charges \
-u skey_test_YOUR_SECRET_KEY: \
-d "amount=10025" \
-d "currency=thb" \
-d "card=tokn_test_..." \
-d "description=注文 #12345" \
-d "metadata[customer_email]=john@example.com" \
-d "metadata[customer_ip]=103.246.xxx.xxx"

一般的な問題とトラブルシューティング

問題: 決済が拒否されました

考えられる原因:

  • 残高不足
  • カードが期限切れまたは無効
  • カード限度額を超えました
  • 不正チェックがトリガーされました

解決策:

  • 顧客にカード情報の確認を依頼
  • 別の決済方法を試す
  • 詳細についてカード発行者に連絡

問題: トークンが既に使用されています

原因: トークンは1回限りの使用のみです

解決策:

  • 各課金に新しいトークンを生成
  • 以前の取引からトークンを再利用しない

問題: 金額が低すぎる/高すぎる

原因: 許可された制限外の取引

解決策:

  • 地域の最小/最大金額を確認
  • 必要に応じて大きな取引を分割

ベストプラクティス

  1. 常にHTTPSを使用 - PCI準拠に必要
  2. 適切なエラー処理を実装 - ユーザーフレンドリーなエラーメッセージを表示
  3. 注文コンテキストを提供 - 説明とメタデータを含める
  4. 請求先住所を収集 - 承認率を向上
  5. 高リスクに3D Secureを使用 - 高額商品の不正を削減
  6. 失敗した決済を監視 - パターンと問題を特定
  7. 徹底的にテスト - 本番環境に移行する前にテストカードを使用

FAQ

どのカードブランドをサポートしていますか?

すべての地域でVisa、Mastercard、JCB、American Express、Diners Club、Discover、UnionPayをサポートしています。利用可能性は、マーチャントアカウントの場所によって異なる場合があります。

決済にはどのくらい時間がかかりますか?

決済期間は国によって異なります:

  • タイ: 7日間の保留期間
  • 日本: 21日間の保留期間
  • シンガポール/マレーシア: サポートにご確認ください

保留期間の後、資金は銀行口座に送金可能になります。

国際カードを受け付けることはできますか?

はい、Omiseは国際カードの受付をサポートしています。以下をお勧めします:

  • Address Verification Service (AVS)の有効化
  • 完全な請求情報の収集
  • 利用可能な場合の複数通貨課金の使用
決済が失敗した場合はどうなりますか?

失敗した決済は、failure_codefailure_messageを含むfailedステータスを返します。一般的な失敗コードには以下が含まれます:

  • insufficient_fund - 残高不足
  • stolen_or_lost_card - カードが盗難として報告されました
  • failed_fraud_check - 不正検知がトリガーされました
  • invalid_security_code - 間違ったCVV

これらを適切に処理し、顧客に明確なメッセージを提供してください。

将来の決済のためにカードを保存できますか?

はい! Customers APIを使用して、繰り返しの決済用にカードを保存します:

  1. カードトークンでカスタマーを作成
  2. データベースにカスタマーIDを保存
  3. 将来の決済にカスタマーIDを課金

カードの保存について詳しく知る →

関連リソース

次のステップ

  1. トークン化のためにOmise.jsをセットアップ
  2. サーバー側の課金を実装
  3. テストカードでテスト
  4. セキュリティ強化のために3D Secureを有効化
  5. 統合を本番環境に移行