Sources API
ภาพรวม
Sources API ช่วยให้คุณสามารถรับวิธีการชำระเงินทางเลือกนอกเหนือจากบัตรเครดิต Sources แทนช่องทางการชำระเงิน เช่น PromptPay QR codes, mobile banking, internet banking, แผนผ่อนชำระ และอื่น ๆ
Sources คืออะไร?
Sources คือ payment method objects ที่แทน:
- PromptPay QR codes - การชำระเงินแบบ QR แบบเรียลไทม์
- Mobile banking - การ redirect การชำระเงินในแอป (SCB Easy, Krungthai Next ฯลฯ)
- Internet banking - การโอนเงินผ่านธนาคารออนไลน์
- Convenience stores - การชำระเงินด้วยเงินสดที่ 7-Eleven, FamilyMart ฯลฯ
- Installment plans - ตัวเลือกการผ่อนชำระ
- E-wallets - TrueMoney, Rabbit LINE Pay ฯลฯ
คุณสมบัติหลัก
รองรับวิธีการชำระเงินหลากหลาย
- การชำระเงินผ่าน QR - PromptPay, Alipay, WeChat Pay
- การโอนเงินผ่านธนาคาร - Mobile และ internet banking
- ผ่อนชำระ - แผนผ่อนชำระดอกเบี้ย 0%
- การชำระเงินด้วยเงินสด - การชำระเงินที่ร้านสะดวกซื้อ
- E-wallets - การเชื่อมต่อกระเป๋าเงินดิจิทัล
ขั้นตอนการทำงานที่ยืดหยุ่น
- แบบ Redirect - ลูกค้า redirect เพื่อทำการชำระเงินให้เสร็จสมบูรณ์
- แสดง QR code - แสดง QR code ให้ลูกค้าสแกน
- การแจ้งเตือนผ่าน Webhook - การอัปเดตสถานะการชำระเงินแบบเรียลไทม์
- การประมวลผลแบบ Asynchronous - การชำระเงินเสร็จสมบูรณ์นอกเว็บไซต์ของคุณ
การรองรับภูมิภาค
- ประเทศไทย - PromptPay, SCB, Krungthai, BAY, BBL ฯลฯ
- มา เลเซีย - FPX, Boost, GrabPay, Touch 'n Go
- สิงคโปร์ - PayNow, GrabPay
- ระหว่างประเทศ - Alipay, WeChat Pay
Sources ทำงานอย่างไร
ขั้นตอนมาตรฐาน
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ เซิร์ฟเวอร์ │ │ Omise │ │ ผู้ให้บริการ │ │ ลูกค้า │
│ ของคุณ │ │ API │ │ การชำระเงิน │ │ │
└────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘
│ │ │ │
│ 1. สร้าง source │ │ │
├──────────────────>│ │ │
│ │ │ │
│ 2. ส่งกลับ source │ │ │
│ (พร้อม QR/URL) │ │ │
│<──────────────────┤ │ │
│ │ │ │
│ 3. สร้าง charge │ │ │
├──────────────────>│ │ │
│ │ │ │
│ 4. ส่งกลับ charge │ │ │
│ (status:pending) │ │
│<──────────────────┤ │ │
│ │ │ │
│ 5. แสดง QR │ │ │
│ หรือ redirect │ │ │
├──────────────────────────────────────────────────────────>│
│ │ │ │
│ │ │ 6. ลูกค้าชำระเงิน │
│ │ │<────── ────────────┤
│ │ │ │
│ │ 7. แจ้งเตือน Webhook │ │
│<──────────────────┤ │ │
│ │ │ │
│ 8. แสดงผลสำเร็จ │ │ │
├──────────────────────────────────────────────────────────>│
│ │ │ │
ขั้นตอนการดำเนินการ
- สร้าง source - ระบุประเภทวิธีการชำระเงินและจำนวนเงิน
- สร้าง charge - ใช้ source ID เพื่อสร้าง charge (status: pending)
- แสดง UI การชำระเงิน - แสดง QR code หรือ redirect ลูกค้า
- รอ webhook - ลูกค้าทำการชำระเงินเสร็จสมบูรณ์แบบ asynchronous
- ตรวจสอบสถานะ - ตรวจสอบสถานะ charge ผ่าน webhook หรือ API
- ดำเนินการคำสั่งซื้อ - ประมวลผลคำสั่งซื้อหลังจากการชำระเงินสำเร็จ
ประเภท Source
การชำระเงินแบบ QR
| ประเภท | คำอธิบาย | ภูมิภาค |
|---|---|---|
| promptpay | การชำระเงินผ่าน QR แห่งชาติของไทย | ไทย |
| alipay | E-wallet ชั้นนำของจีน | ระหว่างประเทศ |
| wechat_pay | WeChat Pay QR | ระ หว่างประเทศ |
| paynow | การชำระเงินผ่าน QR ของสิงคโปร์ | สิงคโปร์ |
Mobile Banking
| ประเภท | คำอธิบาย | ภูมิภาค |
|---|---|---|
| mobile_banking_scb | แอป SCB Easy | ไทย |
| mobile_banking_kbank | แอป K PLUS | ไทย |
| mobile_banking_bbl | Bangkok Bank Mobile | ไทย |
| mobile_banking_bay | Krungsri Mobile | ไทย |
| mobile_banking_ktb | แอป Krungthai NEXT | ไทย |
Internet Banking
| ประเภท | คำอธิบาย | ภูมิภาค |
|---|---|---|
| internet_banking_scb | SCB online banking | ไทย |
| internet_banking_bbl | Bangkok Bank online | ไทย |
| internet_banking_bay | Krungsri online | ไทย |
| fpx | Online banking ของมาเลเซีย | มาเลเซีย |
วิธีการชำระเงินอื่น ๆ
| ประเภท | คำอธิบาย | ภูมิภาค |
|---|---|---|
| truemoney | TrueMoney Wallet | ไทย |
| rabbit_linepay | Rabbit LINE Pay | ไทย |
| installment_bay | ผ่อนชำระกรุงศรี | ไทย |
| installment_kbank | ผ่อนชำระกสิกรไทย | ไทย |
| econtext | การชำระเงินที่ร้านสะดวกซื้อ | ญี่ปุ่น |
วงจรชีวิตของ Source
สถานะ
| สถานะ | คำอธิบาย | สถานะ Charge |
|---|---|---|
| pending | สร้าง source แล้ว รอการชำร ะเงิน | pending |
| successful | การชำระเงินเสร็จสมบูรณ์ | successful |
| failed | การชำระเงินล้มเหลวหรือถูกปฏิเสธ | failed |
| expired | หมดเวลาการชำระเงิน | expired |
กฎการหมดอายุ
วิธีการชำระเงินที่แตกต่างกันมีเวลาหมดอายุเริ่มต้นที่แตกต่างกัน:
การตรวจสอบเวลาหมดอายุ
เวลาหมดอายุที่ระบุด้านล่างอ้างอิงจากเอกสารที่มีอยู่และอาจแตกต่างกัน สำหรับเวลาหมดอายุที่แม่นยำและเป็นปัจจุบันที่สุดสำหรับวิธีการชำระเงินเฉพาะของคุณ โปรดดูเอกสารวิธีการ ชำระเงินแต่ละรายการหรือติดต่อฝ่ายสนับสนุน Omise
| วิธีการชำระเงิน | การหมดอายุเริ่มต้น | การหมดอายุกำหนดเอง |
|---|---|---|
| PromptPay | 24 ชั่วโมง | กำหนดเองได้ผ่าน expires_in |
| Mobile Banking (SCB/KBANK/BBL/BAY/KTB) | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| Internet Banking (SCB/BBL/BAY) | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| FPX (มาเลเซีย) | 30 นาที* | กำหนดเองได้ผ่าน expires_in |
| PayNow (สิงคโปร์) | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| Alipay | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| WeChat Pay | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| TrueMoney Wallet | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| Rabbit LINE Pay | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| GrabPay | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| Boost | 15-30 นาที* | กำห นดเองได้ผ่าน expires_in |
| Touch 'n Go | 15-30 นาที* | กำหนดเองได้ผ่าน expires_in |
| แผนผ่อนชำระ (BAY/KBANK) | 24-48 ชั่วโมง* | กำหนดเองได้ผ่าน expires_in |
| ร้านสะดวกซื้อ (ญี่ปุ่น) | 7 วัน* | กำหนดเองได้ผ่าน expires_in |
*ตรวจสอบกับเอกสารวิธีการชำระเงินเฉพาะหรือฝ่ายสนับสนุน Omise สำหรับค่าที่แน่นอน
การตั้งค่าการหมดอายุกำหนดเอง:
const source = await omise.sources.create({
type: 'promptpay',
amount: 100000,
currency: 'thb',
expires_in: 1800 // 30 นาที (เป็นวินาที)
});
แนวทางปฏิบัติที่ดีที่สุด:
- ตรวจสอบเอกสารวิธีการชำระเงินแต่ละรายการสำหรับเวลาหมดอายุที่แนะนำ
- การหมดอายุที่สั้นกว่า (5-15 นาที) สำหรับการชำระเงินผ่าน QR เพื่อป้องกัน QR codes ที่หมดอายุ
- การหมดอายุที่ยาวกว่า (24-48 ชั่วโมง) สำหรับการโอนเงินผ่านธนาคารเพื่อให้มีเวลาประมวลผล
- จัดการ webhook events
source.expiredเสมอเพื่ออัปเดตสถานะคำสั่งซื้อ
API Endpoints
| เมธอด | Endpoint | คำอธิบาย |
|---|---|---|
| POST | /sources | สร้าง source ใหม่ |
| GET | /sources/:id | ดึงข้อมูล source |