チャージを作成
決済を処理するための新しいチャージを作成します。チャージはトークン(クレジットカード用)、ソース(代替決済方法用)、または顧客ID(保存済みカード用)を使用して作成できます。
リクエストパラメータ
必須 - 2項目必須パラメータ
`amount`INTEGER(required)
最小通貨単位での金額(THBはサタン、USDはセント、JPYは円)。例:100000サタン = 1,000 THB。
`currency`STRING(required)
ISO 4217の3文字の通貨コード(小文字)。
必須 - 3項目中1つ決済方法(1つ必須)
`card`STRING(optional)
Omise.jsからのトークンID(例:tokn_test_...)または顧客からのカードID(例:card_test_...)。customerとsourceが提供されていない場合は必須。
`source`STRING(optional)
PromptPay、モバイルバンキング、QRコードなどの代替決済方法用のソースID。cardとcustomerが提供されていない場合は必須。
`customer`STRING(optional)
顧客ID。顧客のデフォルトカードに課金します。特定のカードを指定するためにcardと組み合わせることができます。cardとsourceが提供されていない場合は必須。
推奨 - 5項目推奨パラメータ
追加 - 7項目追加パラメータ
定期 - 3項目定期決済パラメータ
レスポンス
200
取引成功チャージが正常に作成されました。次のステップを決定するにはstatusフィールドを確認してください。
可能なチャージステータス:
successful- 決済が正常に完了。支払いを受け取りました。pending- チャージはまだ承認またはキャプチャされていません。顧客のアクション待ち。failed- 決済失敗。詳細はfailure_codeとfailure_messageを確認。reversed- チャージが取り消されました(キャプチャされていないチャージは取り消し可能)。expired- 保留中のチャージが承認前に期限切れ。
400
不正なリクエストリクエストの検証に失敗しました。詳細はエラーメッセージを確認してください。
一般的な原因:
- 必須フィールドの欠落(
amount、currency) - 無効な通貨コード
- 決済方法が提供されていない(
card、source、またはcustomer) - 無効な金額(最小値未満)
401
認証エラー認証に失敗しました。無効または欠落したAPIキー。
一般的な原因:
- Authorizationヘッダーの欠落
- 無効なシークレットキー
- シークレットキーの代わりにパブリックキーを使用
- 不正なHTTP Basic Auth形式
402
決済が必要決済処理に失敗しました。
一般的な原因:
- 残高不足
- 発行会社によるカード拒否
- カードの有効期限切れ
- 3Dセキュア認証失敗
- 無効なカード番号またはCVV
5xx
サーバーエラーサーバー側でエラーが発生しました。まれですが、適切に処理してください。
対処方法:
- 指数バックオフでリクエストを再試行
- サービスインシデントについてはstatus.omise.coを確認
- 詳細なガイダンスについてはエラー処理を参照
コードサンプル
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/charges \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-d "amount=100000" \
-d "currency=thb" \
-d "card=tokn_test_5xuy4w91xqz7d1w9u0t"
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
charge = Omise::Charge.create({
amount: 100000,
currency: 'thb',
card: 'tokn_test_5xuy4w91xqz7d1w9u0t'
})
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
charge = omise.Charge.create(
amount=100000,
currency='thb',
card='tokn_test_5xuy4w91xqz7d1w9u0t'
)
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const charge = await omise.charges.create({
amount: 100000,
currency: 'thb',
card: 'tokn_test_5xuy4w91xqz7d1w9u0t'
});
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$charge = OmiseCharge::create([
'amount' => 100000,
'currency' => 'thb',
'card' => 'tokn_test_5xuy4w91xqz7d1w9u0t'
]);
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
Charge charge = client.charges().create()
.amount(100000L)
.currency("thb")
.card("tokn_test_5xuy4w91xqz7d1w9u0t")
.send();
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var charge = await client.Charges.Create(new CreateChargeRequest
{
Amount = 100000,
Currency = "thb",
Card = "tokn_test_5xuy4w91xqz7d1w9u0t"
});
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
charge, _ := client.Charges().Create(&operations.CreateCharge{
Amount: 100000,
Currency: "thb",
Card: "tokn_test_5xuy4w91xqz7d1w9u0t",
})
エラーと結果コード
一般的なエラーコード
| コード | 説明 | 解決方法 |
|---|---|---|
bad_request | パラメータの欠落または無効 | すべての必須フィールドが提供されているか確認 |
authentication_failure | 無効なAPIキー | シークレットキーが正しいか確認 |
invalid_card | カード検証失敗 | カード番号、有効期限、CVVを確認 |
insufficient_funds | カードの残高不足 | 別の決済方法をリクエスト |
stolen_or_lost_card | 盗難/紛失報告されたカード | セキュリティのため決済がブロック |
failed_fraud_check | 不正検出失敗 | Omiseサポートに連絡 |