บัตรเครดิต

หัวข้อทั้งหมดในหน้านี้

การเรียกเก็บเงินจากบัตรเครดิต

บทความนี้อธิบายวิธีการเรียกเก็บเงินจากบัตรเครดิตโดยใช้ 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: มีวงเงินขั้นต่ำและสูงสุดสำหรับการเรียกเก็บเงินหรือไม่?
มี วงเงินจะแตกต่างกันตามประเทศและสกุลเงิน ดูค่าตามภูมิภาคได้ที่ส่วนวงเงินการเรียกเก็บเงินด้านบน

เว็ปไซต์นี้มีการใช้คุกกี้เพื่อวิเคราะห์การใช้และปรับการใช้งานให้เหมาะกับท่าน เมื่อกดยอมรับหรือยังคงเข้าชมเว็บไซต์ต่อ เราถือว่าท่านยินยอมในการใช้งานคุกกี้ของเว็บไซต์ อ่านนโยบายความเป็นส่วนตัว