สร้าง Source
สร้าง payment source สำหรับวิธีการชำระเงินทางเลือก Sources ช่วยให้ลูกค้าสามารถชำระเงินผ่าน PromptPay QR codes, mobile banking, internet banking, ผ่อนชำระ และอื่น ๆ
พารามิเตอร์ของคำขอ
จำเป็น - 3 ฟิลด์พารามิเตอร์ที่จำเป็น
`amount`INTEGER(required)
จำนวนเงินในหน่วยสกุลเงินที่เล็กที่สุด (สตางค์สำหรับ THB, cents สำหรับ USD, yen สำหรับ JPY) ตัวอย่างเช่น 100000 สตางค์ = 1,000 บาท
`currency`STRING(required)
รหัสสกุลเงินสามตัวอักษรตามมาตรฐาน ISO 4217 เป็นตัวพิมพ์เล็ก ต้องตรงกับประเภทวิธีการชำระเงิน
`type`STRING(required)
ประเภทวิธีการชำระเงิน ประเภทที่แตกต่างกันรองรับสกุลเงินที่แตกต่างกัน
แนะนำ - 2 ฟิลด์พารามิเตอร์ที่แนะนำ
เพิ่มเติม - 15 ฟิลด์พารามิเตอร์เพิ่มเติม
การตอบกลับ
200
ธุรกรรมสำเร็จสร้าง source สำเร็จ การตอบกลับประกอบด้วยข้อมูลเฉพาะการชำระเงิน เช่น QR codes หรือ redirect URLs
ฟิลด์การตอบกลับทั่วไป:
id- Source ID (src_*) ที่ใช้เมื่อสร้าง chargetype- ประเภทวิธีการชำระเงินflow- ขั้นตอนการชำระเงิน: offline (QR code), redirect (เว็บ) หรือ app_redirect (แอปมือถือ)amount- จำนวนเงินของ source ในหน่วยสกุลเงินที่เล็กที่สุดcurrency- รหัสสกุลเงินscannable_code- ข้อมูล QR code สำหรับการชำระเงินแบบ QRcharge_status- สถานะของ charge ที่สร้างด้วย source นี้created_at- Timestamp การสร้าง source (ISO 8601)
400
คำขอไม่ถูกต้องการตรวจสอบคำขอล้มเหลว ตรวจสอบข้อความแสดงข้อผิดพลาดสำหรับรายละเอียด
สาเหตุที่พบบ่อย:
- ฟิลด์ที่จำเป็นขาดหายไป (
amount,currency,type) - สกุลเงินไม่ถูกต้องสำหรับประเภทการชำระเงิน (เช่น SGD สำหรับ PromptPay)
- ฟิลด์ที่จำเป็นเฉพาะประเภทขาดหายไป (เช่น installment_term สำหร ับการผ่อนชำระ)
- ประเภทการชำระเงินไม่ถูกต้อง
401
ไม่ได้รับอนุญาตการยืนยันตัวตนล้มเหลว API key ไม่ถูกต้องหรือขาดหายไป
สาเหตุที่พบบ่อย:
- ไม่มี Authorization header
- Public key ไม่ถูกต้อง
- ใช้ secret key แทน public key
- รูปแบบ HTTP Basic Auth ไม่ถูกต้อง
422
ไม่สามารถประมวลผลได้การตรวจสอบคำขอล้มเหลวเนื่องจากข้อจำกัดทางธุรกิจ
สาเหตุที่พบบ่อย:
- จำนวนเงินต่ำกว่าขั้นต่ำสำหรับประเภทการชำระเงิน
- จำนวนเงินเกินสูงสุดสำหรับประเภทการชำระเงิน
- ประเภทการชำระเงินไม่ได้เปิดใช้งานสำหรับบัญชีของคุณ
- จำนวนงวดผ่อนชำระไม่ถูกต้องสำหรับธนาคารที่เลือก
5xx
ข้อผิดพลาดเซิร์ฟเวอร์เกิดข้อผิดพลาดฝั่งเซิร์ฟเวอร์ กรณีเหล่านี้เกิดขึ้นไม่บ่อยแต่ควรจัดการอย่างเหมาะสม
วิธีจัดการ:
- ลองส่งคำขออีกครั้งด้วย exponential backoff
- ตรวจสอบ status.omise.co สำหรับเหตุการณ์บริการ
- ดู การจัดการข้อผิดพลาด สำหรับคำแนะนำโดยละเอียด
ตัวอย่างโค้ด
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/sources \
-u pkey_test_5xuy4w91xqz7d1w9u0t: \
-d "amount=100000" \
-d "currency=thb" \
-d "type=promptpay"
require 'omise'
Omise.api_key = 'pkey_test_5xuy4w91xqz7d1w9u0t'
source = Omise::Source.create({
amount: 100000,
currency: 'thb',
type: 'promptpay'
})
import omise
omise.api_public = 'pkey_test_5xuy4w91xqz7d1w9u0t'
source = omise.Source.create(
amount=100000,
currency='thb',
type='promptpay'
)
const omise = require('omise')({
publicKey: 'pkey_test_5xuy4w91xqz7d1w9u0t'
});
const source = await omise.sources.create({
amount: 100000,
currency: 'thb',
type: 'promptpay'
});
<?php
define('OMISE_PUBLIC_KEY', 'pkey_test_5xuy4w91xqz7d1w9u0t');
$source = OmiseSource::create([
'amount' => 100000,
'currency' => 'thb',
'type' => 'promptpay'
]);
Client client = new Client.Builder()
.publicKey("pkey_test_5xuy4w91xqz7d1w9u0t")
.build();
Source source = client.sources().create()
.amount(100000L)
.currency("thb")
.type("promptpay")
.send();
var client = new Client("pkey_test_5xuy4w91xqz7d1w9u0t");
var source = await client.Sources.Create(new CreateSourceRequest
{
Amount = 100000,
Currency = "thb",
Type = "promptpay"
});
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"",
)
source, _ := client.Sources().Create(&operations.CreateSource{
Amount: 100000,
Currency: "thb",
Type: "promptpay",
})
รหัสข้อผิดพลาดและผลลัพธ์
รหัสข้อผิดพลาดทั่วไป
| รหัส | คำอธิบาย | วิธีแก้ไข |
|---|---|---|
bad_request | พารามิเตอร์ขาดหายไปหรือไม่ถูกต้อง | ตรวจสอบว่าฟิลด์ที่จำเป็นทั้งหมดถูกระบุ |
authentication_failure | API key ไม่ถูกต้อง | ตรวจสอบว่า public key ของคุณถูกต้อง |
currency_not_supported | สกุลเงินไม่รองรับสำหรับประเภทการชำระเงิน | ตรวจสอบว่าประเภทการชำระเงินรองรับสกุลเงินของคุณ |
amount_too_low | จำนวนเงินต่ำกว่าขั้นต่ำ | ตรวจสอบจำนวนเงินขั้นต่ำสำหรับประเภทการชำระเงิน |
amount_too_high | จำนวนเงินเกินสูงสุด | ตรวจสอบจำนวนเงินสูงสุดสำหรับประเภทการชำระเงิน |
payment_method_not_allowed | ประเภทการชำระเงินไม ่ได้เปิดใช้งาน | ติดต่อ Omise เพื่อเปิดใช้งานวิธีการชำระเงิน |
ประเภทขั้นตอนของ Source
| ขั้นตอน | คำอธิบาย |
|---|---|
offline | ลูกค้าสแกน QR code (PromptPay, Alipay) |
redirect | ลูกค้าถูก redirect ไปยังหน้าเว็บ (Internet Banking) |
app_redirect | ลูกค้าถูก redirect ไปยังแอปมือถือ (Mobile Banking) |
ข้อมูลยืนยันตัวตน API
ทดลองใช้
จำเป็น - 3 ฟิลด์
แนะนำ - 2 ฟิลด์
เพิ่มเติม - 15 ฟิลด์
IP ของคุณ:
...กำลังโหลด...