บัตรเครดิต

คำอธิบายเกี่ยวกับการรับชำระผ่านบัตรเครดิตอยู่ในคู่มือนี้ทั้งหมดแล้ว

ตัวอย่างด้านล่างนี้จะเกิดขึ้นหลังจากที่ร้านค้าได้รับข้อมูลบัตรและข้อมูลนั้นได้ถูกแปลงเป็น Token เรียบร้อยแล้ว อย่าลืมว่า Token มีอายุการใช้งานเพียงครั้งเดียวเท่านั้น จึงควรเลือกให้ดีว่าจะใช้เพื่อรับชำระเงินทันทีเลยหรือจะเลือกจัดเก็บไว้ในรูปของ Customer เพื่อให้นำมาใช้งานซ้ำๆ ในครั้งต่อไปได้อีก

ข้อดีของการจัดเก็บ Token ของบัตรไว้ในรูปแบบของ Customer คือผู้ถือบัตรไม่จำเป็นต้องกรอกข้อมูลลงไปซ้ำๆ ทุกครั้งในกระบวนการเช็คเอาท์ นี่จึงเป็นการอำนวยความสะดวกที่ร้านค้าสามารถมอบให้ลูกค้าเก่าได้เป็นอย่างดี

การ charge บัตร

นี่เป็นวิธีการรับชำระที่ง่ายที่สุด คือเมื่อร้านค้าได้รับ Token แล้วก็ให้ส่งไปยัง charges API พร้อมทั้งระบุจำนวนที่ต้องการเรียกเก็บ ภายในไม่กี่วินาทีบัตรใบนั้นก็จะถูก charge และตามที่ได้ชี้แจงไป Token มีอายุการใช้งานเพียงครั้งเดียว เมื่อบัตรถูก charge เรียบร้อยแล้วตัว Token ก็จะถูกยกเลิกไป ไม่สามารถนำไปใช้รับชำระหรือจัดเก็บในรูปแบบ Customer ได้อีก

ตัวอย่างของการใช้กับ Omise Ruby Library:

charge = Omise::Charge.create({
  amount: 100025,
  currency: "thb",
  description: "Order-345678",
  return_uri: "http://localhost/orders/345678/complete",
  card: params[:omise_token]
})

สำหรับร้านค้าที่เปิดใช้งาน 3D Secure return_uri จะเป็นลิงก์ที่ redirect ผู้ถือบัตรกลับมายังร้านค้าอีกครั้งเมื่อยืนยันรหัส OTP เรียบร้อยแล้ว

การ charge Customer

การสร้าง Customer จะทำให้สามารถรับชำระจากบัตรใบเดิมได้ซ้ำๆ โดยที่ผู้ถือบัตรไม่ต้องให้ข้อมูลอีก และด้วย Customer API ของ Omise ร้านค้าสามารถสร้าง flow เช็คเอาท์ที่ข้ามขั้นตอนการกรอกรายละเอียดบัตรไปได้เลย ฟีเจอร์นี้ช่วยลดอัตราการทิ้งตะกร้าสินค้าได้มากทีเดียว!

การ charge Customer มี 2 วิธี

1.Charge บัตรใบหลัก

เมื่อทำการ charge บัตรใบหลักร้านค้าเพียงแต่กรอก customer ID เท่านั้น (ในกรณีที่ Customer แต่ละบัญชีมีบัตรเพียงใบเดียว)

ตัวอย่างของการใช้กับ Omise Ruby Library:

charge = Omise::Charge.create({
  amount: 100025,
  currency: "thb",
  description: "Order-345678",
  return_uri: "http://localhost/orders/345678/complete",
  customer: user.omise_customer_id
})

2.เลือก charge บัตรใบที่ต้องการ

ในกรณีที่ Customer แต่ละบัญชีมีบัตรถูกเชื่อมไว้มากกว่า 1 ใบ ร้านค้าจะต้องกรอก customer ID และ card ID ของบัตรใบที่ต้องการใช้ลงไป

หมายเหตุ: การ charge Customer จะแตกต่างจากการ charge บัตรโดยใช้ Token คือเมื่อทำการ charge จะต้องกรอก card ID ลงไปแทนการกรอก token ID สามารถเข้าไปอ่านเพิ่มเติมเกี่ยวกับ รายการบัตรทั้งหมดของ Customer หรืออ่าน เกี่ยวกับ pagination เพื่อเรียกดูรายการบัตรทั้งหมดที่ถูกเชื่อมไว้กับบัญชี Customer

ตัวอย่างของการใช้กับ Omise Ruby Library:

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 ไว้)

สถานะ รายละเอียด
สำเร็จ ผู้ถือบัตรได้ทำการชำระเงินแล้ว (authorized = true and paid = true)
รอดำเนินการ 1 ผู้ถือบัตรยังไม่ได้กรอกรหัส OTP (authorized = false)
รอดำเนินการ 2 รายการอนุมัติวงเงินสำเร็จ อยู่ระหว่างรอตัดวงเงิน (authorized = true และ capture = false)
ยกเลิกการกันวงเงิน รายการอนุมัติวงเงินสำเร็จ และได้มีการยกเลิกการกันวงเงินในภายหลัง
หมดอายุ รายการรอตัดวงเงิน และได้หมดอายุลงเนื่องจากไม่มีการดำเนินการในระยะเวลาที่กำหนด
ไม่สำเร็จ รายการชำระเงินไม่สำเร็จ สามารถเรียกดูสาเหตุได้จาก failure_code และ failure_message ในข้อมูลรายการ

สถานะรายการ (ร้านค้าไม่ได้มีการเปิด 3-D Secure ไว้)

สถานะ รายละเอียด
สำเร็จ ผู้ถือบัตรได้ทำการชำระเงินแล้ว (authorized = true and paid = true)
รอดำเนินการ มีการอนุมัติวงเงินไว้แล้ว รายการรอตัดวงเงิน (authorized = true และ capture = false)
ยกเลิกการกันวงเงิน รายการอนุมัติวงเงินสำเร็จ และได้มีการยกเลิกการกันวงเงินในภายหลัง