บัตรเครดิต
หัวข้อทั้งหมดในหน้านี้
คำอธิบายเกี่ยวกับการรับชำระผ่านบัตรเครดิตอยู่ในคู่มือนี้ทั้งหมดแล้ว
ตัวอย่างด้านล่างนี้จะเกิดขึ้นหลังจากที่ร้านค้าได้รับข้อมูลบัตรและข้อมูลนั้นได้ถูกแปลงเป็น 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 ไว้)
สถานะ (status) | รายละเอียด |
---|---|
สำเร็จ (successful) | ผู้ถือบัตรได้ทำการชำระเงินแล้ว (authorized = true and paid = true ) |
รอดำเนินการ 1 (pending) | ผู้ถือบัตรยังไม่ได้กรอกรหัส OTP (authorized = false ) |
รอดำเนินการ 2 (pending) | รายการอนุมัติวงเงินสำเร็จ อยู่ระหว่างรอตัดวงเงิน (authorized = true และ capture = false) |
ยกเลิกการกันวงเงิน (reversed) | รายการอนุมัติวงเงินสำเร็จ และได้มีการยกเลิกการกันวงเงินในภายหลัง |
หมดอายุ (expired) | รายการรอตัดวงเงิน และได้หมดอายุลงเนื่องจากไม่มีการดำเนินการในระยะเวลาที่กำหนด |
ไม่สำเร็จ (failed) | รายการชำระเงินไม่สำเร็จ สามารถเรียกดูสาเหตุได้จาก failure_code และ failure_message ในข้อมูลรายการ |
สถานะรายการ (ร้านค้าไม่ได้มีการเปิด 3-D Secure ไว้)
สถานะ (status) | รายละเอียด |
---|---|
สำเร็จ (successful) | ผู้ถือบัตรได้ทำการชำระเงินแล้ว (authorized = true and paid = true ) |
รอดำเนินการ (pending) | มีการอนุมัติวงเงินไว้แล้ว รายการรอตัดวงเงิน (authorized = true และ capture = false ) |
ยกเลิกการกันวงเงิน (reversed) | รายการอนุมัติวงเงินสำเร็จ และได้มีการยกเลิกการกันวงเงินในภายหลัง |
ข้อจำกัด
ประเทศไทย
- จำนวนรับชำระขั้นต่ำ:
2000
(THB 20.00) - จำนวนรับชำระสูงสุด:
15000000
(THB 150,000.00)
ประเทศสิงคโปร์
- จำนวนรับชำระขั้นต่ำ:
100
(SGD 1.00) - จำนวนรับชำระสูงสุด:
2000000
(SGD 20,000.00)
ประเทศมาเลเซีย
- จำนวนรับชำระขั้นต่ำ:
100
(MYR 1.00) - จำนวนรับชำระสูงสุด:
3000000
(MYR 30,000.00)
ประเทศญี่ปุ่น
- จำนวนรับชำระขั้นต่ำ:
100
(JPY 100) - จำนวนรับชำระสูงสุด:
6000000
(JPY 6,000,000)