Chargeを更新
既存のchargeの説明とmetadataを更新します。charge作成後に変更できるのはこれら2つのフィールドのみです。
API認証情報
リクエストパラメータ
必須 - 1項目必須パラメータ
`id`STRING(required)
更新するcharge ID。アカウントの有効なchargeである必要があ ります。
追加 - 2項目追加パラメータ
レスポンス
200
更新成功Chargeが正常に更新されました。更新されたフィールドを含む完全なchargeオブジェクトを返します。
更新されたフィールド:
description- 新しい説明(提供された場合)metadata- 新しいmetadataオブジェクト(提供された場合)- その他のすべてのフィールドは変更されません
400
不正なリクエスト無効なパラメータが提供されました。
一般的な原因:
- Metadataが15,000文字を超過
- 無効なmetadataフォーマット
- 更新するフィールドが提供されていない
401
認証されていません認証に失敗しました。APIキーが無効または欠落しています。
一般的な原因:
- Authorizationヘッダーの欠落
- 無効なsecret key
- secret keyの代わりにpublic keyを使用
404
見つかりませんCharge IDが存在しません。
一般的な原因:
- 誤ったcharge ID
- 別アカウントのcharge
- 本番chargeにテストkeyを使用(またはその逆)
コードサンプル
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/charges/chrg_test_5xuy4w91xqz7d1w9u0t \
-X PATCH \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-d "description=Order #1234 - Shipped" \
-d "metadata[status]=shipped"
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
charge = Omise::Charge.update('chrg_test_5xuy4w91xqz7d1w9u0t', {
description: 'Order #1234 - Shipped',
metadata: { status: 'shipped', tracking: 'TH123456789' }
})
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
charge = omise.Charge.update(
'chrg_test_5xuy4w91xqz7d1w9u0t',
description='Order #1234 - Shipped',
metadata={'status': 'shipped', 'tracking': 'TH123456789'}
)
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const charge = await omise.charges.update('chrg_test_5xuy4w91xqz7d1w9u0t', {
description: 'Order #1234 - Shipped',
metadata: { status: 'shipped', tracking: 'TH123456789' }
});
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$charge = OmiseCharge::retrieve('chrg_test_5xuy4w91xqz7d1w9u0t');
$charge->update(array(
'description' => 'Order #1234 - Shipped',
'metadata' => array('status' => 'shipped', 'tracking' => 'TH123456789')
));
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
Map<String, String> metadata = new HashMap<>();
metadata.put("status", "shipped");
metadata.put("tracking", "TH123456789");
Charge charge = client.charges().update("chrg_test_5xuy4w91xqz7d1w9u0t")
.description("Order #1234 - Shipped")
.metadata(metadata)
.send();
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var charge = await client.Charges.Update("chrg_test_5xuy4w91xqz7d1w9u0t", new UpdateChargeRequest {
Description = "Order #1234 - Shipped",
Metadata = new Dictionary<string, object> {
{ "status", "shipped" },
{ "tracking", "TH123456789" }
}
});
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
charge, _ := client.UpdateCharge("chrg_test_5xuy4w91xqz7d1w9u0t", &operations.UpdateCharge{
Description: "Order #1234 - Shipped",
Metadata: map[string]interface{}{
"status": "shipped",
"tracking": "TH123456789",
},
})
エラーコードと結果コード
更新可能なフィールド
| Field | Can Update? | Notes |
|---|---|---|
description | はい | 内部使用のためのテキスト説明 |
metadata | はい | カスタムキーバリューデータ(完全に置き換え) |
amount | いいえ | 作成後は変更できません |
currency | いいえ | 作成後は変更できません |
status | いいえ | capture/reverseなどで変更されます |
card | いいえ | 決済方法を変更できません |
Metadataの動作
| Action | Result | Important Note |
|---|---|---|
| Metadataを更新 | オブジェクト全体を置き換え | 保持したいすべてのキーを含める必要があります |
| Metadataを省略 | 変更なし | 既存のmetadataが保持されます |
| 空のmetadata | すべてのmetadataをクリア | 既存のデータがすべて削除されます |
試してみる
必須 - 1項目
追加 - 2項目