สร้าง Charge
สร้าง charge ใหม่เพื่อประมวลผลการชำระเงิน สามารถสร้าง charges ได้โดยใช้ token (สำหรับบัตรเครดิต) source (สำหรับวิธีการชำระเงินทางเลือก) หรือ customer ID (สำหรับบัตรที่บันทึกไว้)
พารามิเตอร์คำขอ
จำเป็น - 2 ฟิลด์พารามิเตอร์ที่จำเป็น
`amount`INTEGER(required)
จำนวนเงินในหน่วยสกุลเงินที่เล็กที่สุด (สตางค์สำหรับ THB, เซนต์สำหรับ USD, เยนสำหรับ JPY) ตัวอย่าง: 100000 สตางค์ = 1,000 THB
`currency`STRING(required)
รหัสสกุลเงินสามตัวอักษร ISO 4217 ตัวพิมพ์เล็ก
จำเป็น - 1 จาก 3 ฟิลด์วิธีการชำระเงิน (ต้องระบุ 1 อย ่าง)
`card`STRING(optional)
Token ID จาก Omise.js (เช่น tokn_test_...) หรือ card ID จากลูกค้า (เช่น card_test_...) จำเป็นถ้าไม่ได้ระบุ customer และ source
`source`STRING(optional)
Source ID สำหรับวิธีการชำระเงินทางเลือกเช่น PromptPay, mobile banking หรือ QR codes จำเป็นถ้าไม่ได้ระบุ card และ customer
`customer`STRING(optional)
Customer ID จะเรียกเก็บเงินจากบัตรเริ่มต้นของลูกค้า สามารถใช้ร่วมกับ card เพื่อระบุบัตรเฉพาะ จำเป็นถ้าไม่ได้ระบุ card และ source
แนะนำ - 5 ฟิลด์พารามิเตอร์ที่แนะนำ
เพิ่มเติม - 7 ฟิลด์พารามิเตอร์เพิ่มเติม
การชำระเงินแบบประจำ - 3 ฟิลด์พารามิเตอร์การชำระเงินแบบประจำ
การตอบกลับ
200
ธุรกรรมสำเร็จสร้าง charge สำเร็จ ตรวจสอบฟิลด์ status เพื่อกำหนดขั้นตอนถัดไป
สถานะ charge ที่เป็น ไปได้:
successful- การชำระเงินเสร็จสมบูรณ์ คุณได้รับเงินแล้วpending- Charge ยังไม่ได้รับการอนุมัติหรือจับยอด รอการดำเนินการของลูกค้าfailed- การชำระเงินล้มเหลว ตรวจสอบ failure_code และ failure_message สำหรับรายละเอียดreversed- Charge ถูกย้อนกลับ (charges ที่ยังไม่ได้จับยอดสามารถย้อนกลับได้)expired- Charge ที่รอดำเนินการหมดอายุก่อนการอนุมัติ
400
คำขอไม่ถูกต้องการตรวจสอบคำขอล้มเหลว ตรวจสอบข้อความข้อผิดพลาดสำหรับรายละเอียด
สาเหตุทั่วไป:
- ขาดฟิลด์ที่จำเป็น (
amount,currency) - รหัสสกุลเงินไม่ถูกต้อง
- ไม่ได้ระบุวิธีการชำระเงิน (
card,sourceหรือcustomer) - จำนวนเงินไม่ถูกต้อง (ต่ำกว่าขั้นต่ำ)
401
ไม่ได้รับอนุญาตการยืนยันตัวตนล้มเหลว API key ไม่ถูกต้องหรือขาดหายไป
สาเหตุทั่วไป:
- ขาด Authorization header
- Secret key ไม่ถูกต้อง
- ใช้ public key แทน secret key
- รูปแบบ HTTP Basic Auth ไม่ถูกต้อง
402
ต้องการการชำระเงินการประมวลผลการชำระเงินล้มเหลว
สาเหตุทั่วไป:
- ยอดเงินไม่เพียงพอ
- บัตรถูกปฏิเสธโดยผู้ออกบัตร
- บัตรหมดอายุ
- การยืนยัน 3D Secure ล้มเหลว
- หมายเลขบัตรหรือ CVV ไม่ถูกต้อง
5xx
ข้อผิดพลาดเซิร์ฟเวอร์เกิดข้อผิดพลาดฝั่งเซิร์ฟเวอร์ เกิดขึ้นไม่บ่อยแต่ควรจัดการอย่างเหมาะสม
วิธีจัดการ:
- ลองส่งคำขอใหม่ด้วย exponential backoff
- ตรวจสอบ 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 key ไม่ถูกต้อง | ตรวจสอบว่า secret key ถูกต้อง |
invalid_card | การตรวจสอบบัตรล้มเหลว | ตรวจสอบหมายเลขบัตร วันหมดอายุ CVV |
insufficient_funds | บัตรมียอดเงินไม่เพียงพอ | ขอวิธีการชำระเงินอื่น |
stolen_or_lost_card | บัตรถูกรายงานว่าถูกขโมย/สูญหาย | การชำระเงินถูกบล็อกเพื่อความปลอดภัย |
failed_fraud_check | ล้มเหลวในการตรวจจับการฉ้อโกง | ติดต่อฝ่ายสนับสนุน Omise |
รหัสสถานะ Charge
| สถานะ | คำอธิบาย |
|---|---|
successful | การชำระเงินเสร็จสมบูรณ์ |
pending | รอการดำเนินการของลูกค ้า (เช่น สแกน QR code) |
failed | การชำระเงินล้มเหลว (ดู failure_code) |
reversed | Charge ถูกยกเลิก/ย้อนกลับ |
expired | Charge หมดอายุก่อนการชำระเงิน |
ข้อมูลยืนยันตัวตน API
ลองใช้งาน
จำเป็น - 2 ฟิลด์
จำเป็น - 1 จาก 3วิธีการชำระเงิน (ต้องเลือ ก 1 วิธี)
แนะนำ - 5 ฟิลด์
เพิ่มเติม - 7 ฟิลด์
IP ของคุณ:
...กำลังโหลด...