บัตรเครดิต
หัวข้อทั้งหมดในหน้านี้
-
การเรียกเก็บเงินจากบัตรเครดิต
- การเรียกเก็บเงินจากบัตรโดยตรง
- การเรียกเก็บเงินจากลูกค้า
- สถานะการเรียกเก็บเงิน
- วงเงินการเรียกเก็บเงิน
- คำถามที่พบบ่อย
การเรียกเก็บเงินจากบัตรเครดิต
บทความนี้อธิบายวิธีการเรียกเก็บเงินจากบัตรเครดิตโดยใช้ Omise API
ตัวอย่างการเรียกเก็บเงินโดยตรงจำเป็นต้องมีการเก็บข้อมูลบัตรของลูกค้าในรูปแบบโทเค็นก่อน โทเค็นทุกรายการใช้ได้เพียงครั้งเดียวเท่านั้น ดังนั้นจึงควรพิจารณาให้ดีว่าจะเรียกเก็บเงินจากบัตรโดยตรง หรือจะผูกบัตรนั้นไว้กับข้อมูลลูกค้าเพื่อใช้งานในอนาคต
ข้อดีหลักของการผูกบัตรกับลูกค้าคือช่วยให้สามารถเรียกเก็บเงินจากบัตรใบเดิมได้หลายครั้ง ลูกค้าประจำจะไม่ต้องกรอกข้อมูลบัตรซ้ำในทุกครั้งที่ทำการซื้อ
การเรียกเก็บเงินจากบัตรโดยตรง
นี่คือวิธีที่ง่ายที่สุดในการเรียกเก็บเงินจากบัตร เมื่อได้รับโทเค็นของบัตรแล้ว ให้ส่งไปยังCharges APIพร้อมระบุจำนวนเงินที่ต้องการเรียกเก็บ บัตรจะถูกเรียกเก็บเงินภายในไม่กี่วินาที
หมายเหตุ: โทเค็นจะถูกยกเลิกทันทีหลังใช้งาน คุณจะไม่สามารถเรียกเก็บเงินจากบัตรหรือสร้างลูกค้าด้วยโทเค็นเดิมได้อีก
ตัวอย่างการใช้งานไลบรารี Omise Ruby:
charge = Omise::Charge.create({
amount: 100025,
currency: "thb",
description: "Order-345678",
return_uri: "http://localhost/orders/345678/complete",
card: params[:omise_token]
})
return_uri — URL ที่ใช้เปลี่ยนเส้นทางลูกค้าเมื่อเปิดใช้งาน3-D Secure
การเรียกเก็บเงินจากลูกค้า
การสร้างลูกค้าด้วยโทเค็นช่วยให้สามารถเรียกเก็บเงินจากบัตรใบเดิมได้หลายครั้งตามต้องการ การใช้Customers APIช่วยให้คุณสร้างขั้นตอนการชำระเงินที่ลูกค้าไม่ต้องกรอกข้อมูลบัตรซ้ำทุกครั้ง ซึ่งช่วยลดอัตราการละทิ้งตะกร้าสินค้าได้อย่างมีนัยสำคัญ
มีสองวิธีในการเรียกเก็บเงินจากลูกค้า
การเรียกเก็บเงินจากบัตรเริ่มต้น
ส่งเพียง Customer ID เพื่อเรียกเก็บเงินจากบัตรเริ่มต้น วิธีนี้เหมาะสำหรับกรณีที่ต้องการจัดการบัตรเพียงหนึ่งใบต่อลูกค้าหนึ่งราย
charge = Omise::Charge.create({
amount: 100025,
currency: "thb",
description: "Order-345678",
return_uri: "http://localhost/orders/345678/complete",
customer: user.omise_customer_id
})
การเรียกเก็บเงินจากบัตรที่ระบุ
ส่งทั้ง Customer ID และ Card ID ที่ต้องการในกรณีที่ลูกค้ามีบัตรหลายใบผูกไว้กับบัญชี
หมายเหตุ: ต่างจากการเรียกเก็บเงินจากบัตรโดยตรงด้วยโทเค็น ตรงที่การสร้างรายการเรียกเก็บเงินนี้จำเป็นต้องส่ง Card ID จริง ไม่ใช่ Token ID ดูวิธีดึงข้อมูลรายการบัตรของลูกค้าได้ที่ดูบัตรทั้งหมดและเอกสาร Pagination
charge = Omise::Charge.create({
amount: 100025,
currency: "thb",
description: "Order-345678",
return_uri: "http://localhost/orders/345678/complete",
customer: customer.omise_id,
card: customer.cards.find_by(id: params[:id]).omise_id
})
สถานะการเรียกเก็บเงิน
เมื่อเปิดใช้งาน 3-D Secure
| สถานะ | คำอธิบาย |
|---|---|
successful |
เรียกเก็บเงินจากบัตรสำเร็จ (authorized = true และ paid = true) |
pending |
เจ้าของบัตรยังไม่ได้อนุมัติรายการ (authorized = false) หรือรายการได้รับการอนุมัติแล้วแต่รอการ Capture ด้วยตนเอง (authorized = true และ capture = false) |
reversed |
รายการที่ได้รับการอนุมัติถูกยกเลิก และยอดเงินที่ถูกระงับได้รับการปลดล็อกแล้ว |
expired |
รายการอยู่ในสถานะรอ Capture ด้วยตนเอง แต่ไม่มีการดำเนินการใดภายในระยะเวลาที่กำหนด |
failed |
การเรียกเก็บเงินล้มเหลว ตรวจสอบสาเหตุได้จาก failure_code และ failure_message ในผลลัพธ์ของรายการ |
เมื่อปิดใช้งาน 3-D Secure
| สถานะ | คำอธิบาย |
|---|---|
successful |
เรียกเก็บเงินจากบัตรสำเร็จ (authorized = true และ paid = true) |
pending |
รายการได้รับการอนุมัติแล้วแต่รอการ Capture ด้วยตนเอง (authorized = true และ capture = false) |
reversed |
รายการที่ได้รับการอนุมัติถูกยกเลิก และยอดเงินที่ถูกระงับได้รับการปลดล็อกแล้ว |
expired |
รายการอยู่ในสถานะรอการ Capture ด้วยตนเอง แต่ไม่มีการดำเนินการใดภายในระยะเวลาที่กำหนด |
failed |
การเรียกเก็บเงินล้มเหลว ตรวจสอบสาเหตุได้จาก failure_code และ failure_message ในผลลัพธ์ของรายการ |
วงเงินการเรียกเก็บเงิน
ไทย
| จำนวนเงิน | |
|---|---|
| ขั้นต่ำ | 2000 (THB 20.00) |
| สูงสุด | 15000000 (THB 150,000.00) |
สิงคโปร์
| จำนวนเงิน | |
|---|---|
| ขั้นต่ำ | 100 (SGD 1.00) |
| สูงสุด | 2000000 (SGD 20,000.00) |
มาเลเซีย
| จำนวนเงิน | |
|---|---|
| ขั้นต่ำ | 100 (MYR 1.00) |
| สูงสุด | 10000000 (MYR 100,000.00) |
ญี่ปุ่น
| จำนวนเงิน | |
|---|---|
| ขั้นต่ำ | 100 (JPY 100) |
| สูงสุด | 6000000 (JPY 6,000,000) |
คำถามที่พบบ่อย
Q: สามารถใช้โทเค็นบัตรซ้ำได้หรือไม่?
ไม่ได้ โทเค็นใช้ได้เพียงครั้งเดียว เมื่อใช้โทเค็นในการสร้างรายการเรียกเก็บเงินหรือสร้างลูกค้าแล้ว โทเค็นนั้นจะถูกยกเลิกทันทีและไม่สามารถนำมาใช้ซ้ำได้อีก
Q: การเรียกเก็บเงินจากบัตรโดยตรงกับการเรียกเก็บเงินจากลูกค้าต่างกันอย่างไร?
การเรียกเก็บเงินจากบัตรโดยตรงด้วยโทเค็นเป็นธุรกรรมครั้งเดียว ส่วนการเรียกเก็บเงินจากลูกค้าจะผูกบัตรไว้กับระเบียนลูกค้า ทำให้สามารถเรียกเก็บเงินจากบัตรใบเดิมได้หลายครั้งโดยลูกค้าไม่ต้องกรอกข้อมูลบัตรอีก
Q: ลูกค้าสามารถมีบัตรได้มากกว่าหนึ่งใบหรือไม่?
ได้ คุณสามารถผูกบัตรหลายใบกับลูกค้าหนึ่งรายได้ เมื่อสร้างรายการเรียกเก็บเงิน ให้ระบุ Card ID พร้อมกับ Customer ID เพื่อเรียกเก็บเงินจากบัตรที่ต้องการ หากไม่ระบุ Card ID ระบบจะเรียกเก็บเงินจากบัตรเริ่มต้น
Q: ควรทำอย่างไรหากการเรียกเก็บเงินล้มเหลว?
ตรวจสอบฟิลด์ failure_code และ failure_message ที่ส่งกลับมาในออบเจกต์ของรายการ ซึ่งจะระบุสาเหตุของความล้มเหลว เช่น ยอดเงินไม่เพียงพอหรือบัตรถูกปฏิเสธ
Q: 3-D Secure คืออะไร และเมื่อใดจะถูกเปิดใช้งาน?
3-D Secure (3DS) คือขั้นตอนการยืนยันตัวตนเพิ่มเติมที่ผู้ออกบัตรบางรายกำหนดก่อนอนุมัติรายการ เมื่อถูกเปิดใช้งาน ลูกค้าจะถูกเปลี่ยนเส้นทางไปยังหน้าการยืนยันตัวตนของธนาคาร จากนั้นจึงถูกนำกลับมายัง return_uri ที่คุณกำหนดไว้ ดูรายละเอียดเพิ่มเติมได้ที่เอกสาร 3-D Secure
Q: จะเกิดอะไรขึ้นหากรายการอยู่ในสถานะ pending ค้างไว้?
รายการที่รอการ Capture ด้วยตนเองจะหมดอายุหากไม่มีการดำเนินการ Capture ภายในระยะเวลาที่กำหนด รายการจะเปลี่ยนเป็นสถานะ expired และยอดเงินที่ถูกระงับจะได้รับการปลดล็อก
Q: จะดึงข้อมูลรายการบัตรของลูกค้าได้อย่างไร?
ใช้ endpoint ดูบัตรทั้งหมด สำหรับวิธีจัดการผลลัพธ์แบบ Pagination ให้ดูที่เอกสาร Pagination
Q: มีวงเงินขั้นต่ำและสูงสุดสำหรับการเรียกเก็บเงินหรือไม่?
มี วงเงินจะแตกต่างกันตามประเทศและสกุลเงิน ดูค่าตามภูมิภาคได้ที่ส่วนวงเงินการเรียกเก็บเงินด้านบน