Omise ทำงานอย่างไร
การทำความเข้าใจแนวคิดหลักของ Omise จะช่วยให้คุณสร้างการผูกรวมการชำระเงินที่ปลอดภัยและมีประสิทธิภาพ เรียนรู้เกี่ยวกับ tokens, charges, sources และกระบวนการชำระเงิน
ภาพรวม
Omise เป็น payment gateway ที่ได้รับการรับรอง PCI ที่ช่วยให้ธุรกิจสามารถรับการชำระเงินอย่างปลอดภัยโดยไม่ต้องจัดการข้อมูลบัตรที่ละเอียดอ่อนโดยตรง โดยใช้สถาปัตยกรรมแบบ token-based Omise ช่วยให้ข้อมูลบัตรไม่อยู่ในเซิร์ฟเวอร์ของคุณ ลดภาระการปฏิบัติตาม PCI ของคุณพร้อมรักษาความปลอดภัย
แนวคิดหลัก
1. สถาปัตยกรรม Payment Gateway
Omise อยู่ระหว่างแอปพลิเคชันของคุณและ payment processors โดยจัดการ:
- Tokenization: แปลงข้อมูลที่ละเอียดอ่อนเป็น tokens ที่ปลอดภัย
- Authorization: ตรวจสอบและอนุมัติการชำระเงิน
- Settlement: ย้ายเงินจากลูกค้าไปยังบัญชีของคุณ
- Reconciliation: ติดตามและรายงานธุรกรรมทั้งหมด
2. โมเดลสองเซิร์ฟเวอร์
Omise ใช้ API endpoints สองตัวที่แยกกันเพื่อความปลอดภัย:
Vault Server (vault.omise.co)
- วัตถุประสงค์: จัดการข้อมูลผู้ถือบัตรที่ละเอียดอ่อน
- ใช้กับ: Public keys
- การดำเนินการ: สร้าง tokens และ sources
- ความปลอดภัย: แยกข้อมูลบัตรจาก main API
API Server (api.omise.co)
- วัตถุประสงค์: จัดการการดำเนินการอื่นๆ ทั้งหมด
- ใช้กับ: Secret keys
- การดำเนินการ: สร้าง charges, refunds, transfers ฯลฯ
- ความปลอดภัย: ไม่เคยรับข้อมูลบัตรดิบ
การแยกนี้ช่วยให้แน่ใจว่าข้อมูลบัตรที่ละเอียดอ่อนไม่เคยถูกสัมผัสเซิร์ฟเวอร์ของคุณหรือ main API ซึ่งช่วยลดความต้องการการปฏิบัติตาม PCI ของคุณอย่างมาก
3. API Keys
Omise ใช้ API keys สามแบบ:
| Key Type | รูปแบบ | กรณีการใช้งาน | ปลอดภัยสำหรับ Client? |
|---|---|---|---|
| Public Key | pkey_test_... | Tokenization | ✅ ใช่ |
| Secret Key | skey_test_... | การดำเนินการทั้งหมด | ❌ ไม่ (server เท่านั้น) |
| Chain Key | ck_test_... | Sub-merchants | ❌ ไม่ (server เท่านั้น) |
เรียนรู้เพิ่มเติมเกี่ยวกับ authentication →
4. Payment Objects
Tokens
Token แสดงถึงวิธีการชำระเงิน (มักเป็นบัตร) และสามารถใช้ครั้งเดียวเพื่อสร้าง charge
คุณสมบัติ:
- ใช้ได้ครั้งเดียวเท่านั้น
- ใช้ได้นาน 30 นาทีหลังจากสร้าง
- มีข้อมูลบัตรที่ tokenize แล้ว
- สร้างด้วย public key
ตัวอย่าง:
{
"object": "token",
"id": "tokn_test_5xp6ca4dtzx5cskm9mk",
"used": false,
"card": {
"brand": "Visa",
"last_digits": "4242",
"expiration_month": 12,
"expiration_year": 2027
}
}
Charges
Charge แสดงถึงคำขอชำระเงินไปยังวิธีการชำระเงินของลูกค้า
คุณสมบัติ:
- สร้างด้วย token, source หรือ customer card
- สามารถอนุมัติ (captured ภายหลัง) หรือ captured ทันที
- รองรับ metadata สำหรับการติดตามแบบกำหนดเอง
- สร้าง transaction เมื่อสำเร็จ
ตัวอย่าง:
{
"object": "charge",
"id": "chrg_test_5xp6ccfmecft4zxrb7p",
"amount": 100000,
"currency": "thb",
"status": "successful",
"paid": true,
"authorized": true,
"captured": true
}
สถานะ Charge:
pending- รอการชำระเงิน (สำหรับวิธีการ async)successful- การชำระเงินเสร็จสมบูรณ์failed- การชำระเงินถูกปฏิเสธหรือล้มเหลวexpired- หน้าต่างการชำระเงินหมดอายุ (วิธีการ async)
Sources
Source แสดงถึงวิธีการชำระเงินทางเลือกเช่น PromptPay, mobile banking หรือรหัส QR
คุณสมบัติ:
- สร้างสำหรับวิธีการชำระเงินเฉพาะ
- สามารถใช้ครั้งเดียวหรือใช้ซ้ำได้
- มักมีคำแนะนำการชำระเงิน (รหัส QR, รายละเอียดธนาคาร)
- ต้องการการดำเนินการของลูกค้าเพื่อให้เสร็จสมบูรณ์
ตัวอย่าง:
{
"object": "source",
"id": "src_test_5xp6ccfmecft4zxrb7p",
"type": "promptpay",
"flow": "redirect",
"amount": 100000,
"currency": "thb",
"scannable_code": {
"image": {
"download_uri": "https://...",
"type": "qr_code"
}
}
}