チャージをキャプチャ
以前に承認されたチャージをキャプチャして決済を完了します。最初に承認(capture=false)して後でキャプチャする事前承認ワークフローで使用します。
リクエストパラメータ
必須 - 1項目必須パラメータ
`id`STRING(required)
キャプチャするチャージID。キャプチャされていない承認済みチャージ(status: successful、authorized: true、capture: false、capturable: true)である必要があります。
追加 - 2項目追加パラメータ
レスポンス
200
キャプチャ成功チャージが正常にキャプチャされました。決済が完了し、資金が振り替えられました。
キャプチャ後の主要フィールドの変更:
capture- falseからtrueに変更paid- falseからtrueに変更capturable- trueからfalseに変更refundable- falseからtrueに変更paid_at- 現在のタイムスタンプに設定
400
不正なリクエスト無効なパラメータが提供されました。
一般的な原因:
- 無効なcapture_amount(承認金額を超過)
- 無効なチャ ージID形式
401
認証エラー認証に失敗しました。無効または欠落したAPIキー。
一般的な原因:
- Authorizationヘッダーの欠落
- 無効なシークレットキー
- シークレットキーの代わりにパブリックキーを使用
404
見つかりませんチャージIDが存在しません。
一般的な原因:
- 不正なチャージID
- 別のアカウントのチャージ
- 本番チャージにテストキーを使用(またはその逆)
422
処理不可能なエンティティチャージをキャプチャできません。
一般的な原因:
- チャージは既にキャプチャ済み
- チャージがキャプチャ不可能(期限切れまたは取り消し済み)
- キャプチャ金額が承認金額を超過
- 承認が期限切れ(7日間を超過)
5xx
サーバーエラーサーバー側でエラーが発生しました。まれですが、適切に処理してください。
対処方法:
- 指数バックオフでリクエストを再試行
- サービスインシデントについてはstatus.omise.coを確認
- 詳細なガイダンスについてはエラー処理を参照
コードサンプル
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/charges/chrg_test_5xuy4w91xqz7d1w9u0t/capture \
-X POST \
-u skey_test_5xuy4w91xqz7d1w9u0t:
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
charge = Omise::Charge.capture('chrg_test_5xuy4w91xqz7d1w9u0t')
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
charge = omise.Charge.capture('chrg_test_5xuy4w91xqz7d1w9u0t')
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const charge = await omise.charges.capture('chrg_test_5xuy4w91xqz7d1w9u0t');
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$charge = OmiseCharge::retrieve('chrg_test_5xuy4w91xqz7d1w9u0t');
$charge->capture();
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
Charge charge = client.charges().capture("chrg_test_5xuy4w91xqz7d1w9u0t")
.send();
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var charge = await client.Charges.Capture("chrg_test_5xuy4w91xqz7d1w9u0t");
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
charge, _ := client.CaptureCharge("chrg_test_5xuy4w91xqz7d1w9u0t", nil)
エラーと結果コード
一般的なエラーコード
| コード | 説明 | 解決方法 |
|---|---|---|
not_found | チャージIDが存在しない | チャージIDが正しいか確認 |
already_captured | チャージは既にキャプチャ済み | キャプチャ前にチャージステータスを確認 |
not_capturable | チャージをキャプチャできない | capturableフィールドがtrueか確認 |
capture_amount_too_high | 金額が承認額を超過 | capture_amountを減らす |
authorization_expired | 事前承認が期限切れ(7日超) | 新しいチャージを作成 |
キャプチャ後のチャージステータス
| フィールド | キャプチャ前 | キャプチャ後 |
|---|---|---|
capture | false | true |
paid | false | true |
capturable | true | false |
refundable | false | true |
paid_at | null | ISO 8601タイムスタンプ |
API認証情報
試してみる
必須 - 1項目
追加 - 2項目
あなたのIP:
...読み込み中...