ทำให้ Charge หมดอายุ
ทำให้ charge ที่รอดำเนินการหมดอายุด้วยตนเองที่ยังไม่ได้รับการอนุมัติ ใช้ได้เฉพาะกับวิธีการชำระเงินบางประเภทที่มี flow แบบ redirect
พารามิเตอร์คำขอ
จำเป็น - 1 ฟิลด์พารามิเตอร์ที่จำเป็น
`id`STRING(required)
Charge ID ที่ต้องการทำให้หมดอายุ ต้องเป็น charge ที่รอดำเนินการที่ยังไม่ได้รับการอนุมัติ ใช้ได้เฉพาะกับ payment sources ที่รองรับ (Alipay CN/HK, DANA, GCash, KakaoPay, PayPay, Touch 'n Go)
การตอบกลับ
200
ทำให้หมดอายุสำเร็จCharge ถูกทำเครื่องหมายว่าหมดอายุ ลูกค้าไม่สามารถชำระเงินได้อีกต่อไป
การเปลี่ยนแปลงฟิลด์หลักหลังหมดอายุ:
status- เปลี่ยนจาก pending เป็น expiredexpired- เปลี่ยนจาก false เป็น trueexpired_at- ตั้งค่าเป็น timestamp ปัจจุบัน
400
คำขอไม่ถูกต้องการตรวจสอบคำขอล้มเหลว
สาเหตุทั่วไป:
- รูปแบบ charge ID ไม่ถูกต้อง
- Charge ไม่มีสิทธิ์ทำให้หมดอายุ
401
ไม่ได้รับอนุญาตการยืนยันตัวตนล้มเหลว API key ไม่ถูกต้องหรือขาดหายไป
สาเหตุทั่วไป:
- ขาด Authorization header
- Secret key ไม่ถูกต้อง
- ใช้ public key แทน secret key
404
ไม่พบCharge ID ไม่มีอยู่
สาเหตุทั่วไป:
- Charge ID ไม่ถูกต้อง
- Charge จากบัญชีอื่น
- ใช้ test key สำหรับ live charge (หรือในทางกลับกัน)
422
ไม่สามารถประมวลผลได้ไม่สามารถทำให้ charge หมดอายุได้
สาเหตุทั่วไป:
- Charge ไม่ได้อยู่ในสถานะ pending (สำเร็จ ล้มเหลว หรือหมดอายุแล้ว)
- Charge ได้รับการอนุมัติแล้ว
- วิธีการชำระเงินไม่รองรับการทำให้หมดอายุด้วยตนเอง
- Charge สร้างด้วยบัตรแทน source ที่รองรับ
5xx
ข้อผิดพลาดเซิร์ฟเวอร์เกิดข้อผิดพลาดฝั่งเซิร์ฟเวอร์ เกิดขึ้นไม่บ่อยแต่ควรจัดการอย่างเหมาะสม
วิธีจัดการ:
- ลองส่งคำขอใหม่ด้วย exponential backoff
- ตรวจสอบ status.omise.co สำหรับเหตุการณ์บริการ
- ดู การจัดการข้อผิดพลาด สำหรับคำแนะนำโดยละเอียด
ตัวอย่างโค้ด
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/charges/chrg_test_5xuy4w91xqz7d1w9u0t/expire \
-X POST \
-u skey_test_5xuy4w91xqz7d1w9u0t:
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
charge = Omise::Charge.expire('chrg_test_5xuy4w91xqz7d1w9u0t')
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
charge = omise.Charge.expire('chrg_test_5xuy4w91xqz7d1w9u0t')
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const charge = await omise.charges.expire('chrg_test_5xuy4w91xqz7d1w9u0t');
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$charge = OmiseCharge::retrieve('chrg_test_5xuy4w91xqz7d1w9u0t');
$charge->expire();
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
Charge charge = client.charges().expire("chrg_test_5xuy4w91xqz7d1w9u0t")
.send();
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var charge = await client.Charges.Expire("chrg_test_5xuy4w91xqz7d1w9u0t");
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
charge, _ := client.ExpireCharge("chrg_test_5xuy4w91xqz7d1w9u0t", nil)
รหัสข้อผิดพลาดและผลลัพธ์
รหัสข้อผิดพลาดทั่วไป
| รหัส | คำอธิบาย | การแก้ไข |
|---|---|---|
not_found | Charge ID ไม่มีอยู่ | ตรวจสอบว่า charge ID ถูกต้อง |
not_pending | Charge ไม่ได้อยู่ในสถานะ pending | สามารถทำให้หมดอายุได้เฉพาะ charges ที่ pending |
already_expired | Charge หมดอายุแล้ว | ไม่ต้องดำเนินการใดๆ |
not_expirable | วิธีการชำระเงินไม่รองรับ | ตรวจสอบ sources ที่รองรับ |
already_authorized | Charge ได้รับการอนุมัติแล้ว | ไม่สามารถทำให้ charges ที่อนุมัติแล้วหมดอายุ |
วิธีการชำระเงินที่รองรับ
| วิธีการชำระเงิน | รองรับ | หมายเหตุ |
|---|---|---|
| Alipay CN | ใช่ | สามารถทำให้ charges ที่ pending หมดอายุได้ |
| Alipay HK | ใช่ | สามารถทำให้ charges ที่ pending หมดอายุได้ |
| DANA | ใช่ | สามารถทำให้ charges ที่ pending หมดอายุได้ |
| GCash | ใช่ | สามารถทำให้ charges ที่ pending หมดอายุได้ |
| KakaoPay | ใช่ | สามารถทำให้ charges ที่ pending หมดอายุได้ |
| PayPay | ใช่ | สามารถทำให้ charges ที่ pending หมดอายุได้ |
| Touch 'n Go | ใช่ | สามารถทำให้ charges ที่ pending หมดอายุได้ |
| บัตรเครดิต | ไม่ | บัตรมี flow ที่แตกต่าง |
| PromptPay | ไม่ | PromptPay หมดอายุโดยอัตโนมัติ |
ข้อมูลยืนยันตัวตน API
ลองใช้งาน
จำเป็น - 1 ฟิลด์
IP ของคุณ:
...กำลังโหลด...