อัปเดต Charge
อัปเดตคำอธิบายและ metadata ของ charge ที่มีอยู่ มีเพียงสองฟิลด์นี้เท่านั้นที่สามารถแก้ไขได้หลังจากสร้าง charge
พารามิเตอร์คำขอ
จำเป็น - 1 ฟิลด์พารามิเตอร์ที่จำเป็น
`id`STRING(required)
Charge ID ที่ต้องการอั ปเดต ต้องเป็น charge ที่ถูกต้องจากบัญชีของคุณ
เพิ่มเติม - 2 ฟิลด์พารามิเตอร์เพิ่มเติม
การตอบกลับ
200
อัปเดตสำเร็จอัปเดต charge สำเร็จ คืนค่า charge object ที่สมบูรณ์พร้อมฟิลด์ที่อัปเดต
ฟิลด์ที่อัปเดต:
description- คำอธิบายใหม่ (ถ้าระบุ)metadata- metadata object ใหม่ (ถ้าระบุ)- ฟิลด์อื่นๆ ทั้งหมดยังคงเหมือนเดิม
400
คำขอไม่ถูกต้องพารามิเตอร์ที่ระบุไม่ถูกต้อง
สาเหตุทั่วไป:
- Metadata เกิน 15,000 ตัวอักษร
- รูปแบบ metadata ไม่ถูกต้อง
- ไม่ได้ระบุฟิลด์ที่จะอัปเดต
401
ไม่ได้รับอนุญาตการยืนยันตัวตนล้มเหลว API key ไม่ถูกต้องหรือขาดหายไป
สาเหตุทั่วไป:
- ขาด Authorization header
- Secret key ไม่ถูกต้อง
- ใช้ public key แทน secret key
404
ไม่พบCharge ID ไม่มีอยู่
สาเหตุทั่วไป:
- Charge ID ไม่ถูกต้อง
- Charge จากบัญชีอื่น
- ใช้ test key สำหรับ live charge (หรือในทางกลับกัน)
5xx
ข้อผิดพลาดเซิร์ฟเวอร์เกิดข้อผิดพลาดฝั่งเซิร์ฟเวอร์ เกิดขึ้นไม่บ่อยแต่ควรจัดการอย่างเหม าะสม
วิธีจัดการ:
- ลองส่งคำขอใหม่ด้วย exponential backoff
- ตรวจสอบ status.omise.co สำหรับเหตุการณ์บริการ
- ดู การจัดการข้อผิดพลาด สำหรับคำแนะนำโดยละเอียด
ตัวอย่างโค้ด
- 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",
},
})
รหัสข้อผิดพลาดและผลลัพธ์
ฟิลด์ที่อัปเดตได้
| ฟิลด์ | อัปเดตได้? | หมายเหตุ |
|---|---|---|
description | ได้ | คำอธิบายข้อความสำหรับใช้ภายใน |
metadata | ได้ | ข้อมูล key-value ที่กำหนดเอง (แทนที่ทั้งหมด) |
amount | ไม่ได้ | ไม่สามารถเปลี่ยนหลังสร้าง |
currency | ไม่ได้ | ไม่สามารถเปลี่ยนหลังสร้าง |
status | ไม่ได้ | เปลี่ยนผ่าน capture/reverse/ฯลฯ |
card | ไม่ได้ | ไม่สามารถเปลี่ยนวิธี การชำระเงิน |
พฤติกรรมของ Metadata
| การดำเนินการ | ผลลัพธ์ | หมายเหตุสำคัญ |
|---|---|---|
| อัปเดต metadata | แทนที่ object ทั้งหมด | ต้องรวม keys ทั้งหมดที่ต้องการเก็บไว้ |
| ไม่ระบุ metadata | ไม่มีการเปลี่ยนแปลง | metadata ที่มีอยู่ถูกรักษาไว้ |
| metadata ว่าง | ล้าง metadata ทั้งหมด | ข้อมูลที่มีอยู่ทั้งหมดถูกลบ |
ข้อมูลยืนยันตัวตน API
ลองใช้งาน
จำเป็น - 1 ฟิลด์
เพิ่มเติม - 2 ฟิลด์
IP ของคุณ:
...กำลังโหลด...