ข้ามไปยังเนื้อหาหลัก

การชำระเงินด้วยบัตรเครดิตและบัตรเดบิต

รับชำระเงินด้วย Visa, Mastercard, JCB, American Express และแบรนด์บัตรหลักอื่นๆ ด้วยการอนุมัติทันทีและการประมวลผลที่ปลอดภัย

ภาพรวม

Omise ช่วยให้ผู้ค้าสามารถรับการชำระเงินด้วยบัตรเครดิตและบัตรเดบิตทั่วโลกผ่านเกตเวย์การชำระเงินที่ได้รับการรับรอง PCI โดยใช้ REST API การชำระเงินด้วยบัตรให้การอนุมัติทันทีพร้อมการชำระบัญชีโดยทั่วไปภายใน 7 วัน (ไทย) หรือ 21 วัน (ญี่ปุ่น)

แบรนด์บัตรที่รองรับ

แบรนด์ประเภทภูมิภาค
Visaเครดิตและเดบิตไทย, สิงคโปร์, มาเลเซีย, ญี่ปุ่น
Mastercardเครดิตและเดบิตไทย, สิงคโปร์, มาเลเซีย, ญี่ปุ่น
JCBเครดิตและเดบิตทุกภูมิภาค (ได้รับความนิยมในญี่ปุ่น)
American Expressเครดิตทุกภูมิภาค
Diners Clubเครดิตระหว่างประเทศ
Discoverเครดิตระหว่างประเทศ
UnionPayเครดิตและเดบิตจีนและระหว่างประเทศ

ขอบเขตธุรกรรมตามประเทศ

ประเทศสกุลเงินขั้นต่ำสูงสุด
ไทยTHB฿20.00฿150,000.00
ญี่ปุ่นJPY¥100¥6,000,000
มาเลเซียMYRRM1.00RM100,000.00
สิงคโปร์SGDS$1.00S$20,000.00

ขั้นตอนการชำระเงิน

1. Tokenization ฝั่งไคลเอนต์

ใช้ Omise.js เพื่อเก็บรวบรวมรายละเอียดบัตรอย่างปลอดภัยและสร้าง token:

<!DOCTYPE html>
<html>
<head>
<title>เช็คเอาต์</title>
<script src="https://cdn.omise.co/omise.js"></script>
</head>
<body>
<form id="checkout-form">
<input type="text" id="card-name" placeholder="ชื่อผู้ถือบัตร" />
<input type="text" id="card-number" placeholder="หมายเลขบัตร" />
<input type="text" id="card-expiry-month" placeholder="MM" />
<input type="text" id="card-expiry-year" placeholder="YYYY" />
<input type="text" id="card-cvv" placeholder="CVV" />
<button type="submit">ชำระเงินตอนนี้</button>
</form>

<script>
Omise.setPublicKey("pkey_test_YOUR_PUBLIC_KEY");

document.getElementById('checkout-form').addEventListener('submit', function(e) {
e.preventDefault();

Omise.createToken("card", {
name: document.getElementById('card-name').value,
number: document.getElementById('card-number').value,
expiration_month: document.getElementById('card-expiry-month').value,
expiration_year: document.getElementById('card-expiry-year').value,
security_code: document.getElementById('card-cvv').value
}, function(statusCode, response) {
if (statusCode === 200) {
// สร้าง Token สำเร็จ
// ส่ง token ไปยังเซิร์ฟเวอร์ของคุณ
fetch('/checkout', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token: response.id })
});
} else {
// จัดการข้อผิดพลาด
alert(response.message);
}
});
});
</script>
</body>
</html>

2. การสร้างการเรียกเก็บเงินฝั่งเซิร์ฟเวอร์

สร้างการเรียกเก็บเงินโดยใช้ token บนเซิร์ฟเวอร์ของคุณ:

curl https://api.omise.co/charges \
-u skey_test_YOUR_SECRET_KEY: \
-d "amount=10025" \
-d "currency=thb" \
-d "card=tokn_test_5rt6s9vah5lkvi1rh9c"

ค่าสถานะการเรียกเก็บเงิน

สถานะคำอธิบาย
pendingรอการอนุมัติการชำระเงิน
successfulการชำระเงินได้รับการอนุมัติและจับได้แล้ว
failedการชำระเงินถูกปฏิเสธหรือล้มเหลว
expiredหน้าต่างการอนุมัติหมดอายุ
reversedการอนุมัติถูกกลับรายการ

คุณสมบัติด้านความปลอดภัย

1. การปฏิบัติตาม PCI DSS

  • Omise ได้รับการรับรอง PCI DSS Level 1
  • ข้อมูลบัตรไม่สัมผัสเซิร์ฟเวอร์ของคุณ
  • Tokenization ช่วยลดขอบเขตการปฏิบัติตาม

2. การยืนยันตัวตน 3D Secure

  • เพิ่มชั้นความปลอดภัยเพิ่มเติม
  • ลดการฉ้อโกงและการเรียกคืนเงิน
  • เปลี่ยนความรับผิดไปที่ผู้ออกบัตร

เรียนรู้เพิ่มเติมเกี่ยวกับ 3D Secure →

3. การตรวจสอบที่อยู่ (AVS)

  • ตรวจสอบที่อยู่สำหรับเรียกเก็บเงิน
  • ปรับปรุงอัตราการอนุมัติ
  • แนะนำสำหรับบัตรต่างประเทศ

4. การตรวจสอบ CVV

  • ตรวจสอบรหัสความปลอดภัยของบัตร
  • ยืนยันการครอบครองบัตร
  • ลดความเสี่ยงจากการฉ้อโกง

การปรับปรุงอัตราการอนุมัติ

ให้ข้อมูลการเรียกเก็บเงินที่สมบูรณ์

Omise.createToken("card", {
name: "สมชาย ใจดี",
number: "4242424242424242",
expiration_month: 12,
expiration_year: 2027,
security_code: "123",
// ที่อยู่สำหรับเรียกเก็บเงินช่วยปรับปรุงการอนุมัติ
city: "กรุงเทพฯ",
postal_code: "10110",
country: "TH"
}, callback);

รวมบริบทลูกค้า

curl https://api.omise.co/charges \
-u skey_test_YOUR_SECRET_KEY: \
-d "amount=10025" \
-d "currency=thb" \
-d "card=tokn_test_..." \
-d "description=คำสั่งซื้อ #12345" \
-d "metadata[customer_email]=john@example.com" \
-d "metadata[customer_ip]=103.246.xxx.xxx"

ปัญหาทั่วไปและการแก้ไขปัญหา

ปัญหา: การชำระเงินถูกปฏิเสธ

สาเหตุที่เป็นไปได้:

  • เงินไม่เพียงพอ
  • บัตรหมดอายุหรือไม่ถูกต้อง
  • เกินวงเงินบัตร
  • การตรวจสอบการฉ้อโกงถูกกระตุ้น

วิธีแก้:

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

ปัญหา: Token ถูกใช้ไปแล้ว

สาเหตุ: Tokens ใช้ได้เพียงครั้งเดียวเท่านั้น

วิธีแก้:

  • สร้าง token ใหม่สำหรับการเรียกเก็บเงินแต่ละครั้ง
  • อย่านำ tokens จากธุรกรรมก่อนหน้ากลับมาใช้ใหม่

ปัญหา: จำนวนเงินต่ำเกินไป/สูงเกินไป

สาเหตุ: ธุรกรรมอยู่นอกขอบเขตที่อนุญาต

วิธีแก้:

  • ตรวจสอบจำนวนเงินขั้นต่ำ/สูงสุดสำหรับภูมิภาคของคุณ
  • แบ่งธุรกรรมขนาดใหญ่หากจำเป็น

แนวทางปฏิบัติที่ดีที่สุด

  1. ใช้ HTTPS เสมอ - จำเป็นสำหรับการปฏิบัติตาม PCI
  2. ใช้การจัดการข้อผิดพลาดที่เหมาะสม - แสดงข้อความแสดงข้อผิดพลาดที่เป็นมิตรกับผู้ใช้
  3. ให้บริบทคำสั่งซื้อ - รวมคำอธิบายและ metadata
  4. เก็บรวบรวมที่อยู่สำหรับเรียกเก็บเงิน - ปรับปรุงอัตราการอนุมัติ
  5. ใช้ 3D Secure สำหรับความเสี่ยงสูง - ลดการฉ้อโกงบนสินค้าราคาแพง
  6. ตรวจสอบการชำระเงินที่ล้มเหลว - ระบุรูปแบบและปัญหา
  7. ทดสอบอย่างละเอียด - ใช้บัตรทดสอบก่อนเข้าสู่การผลิต

คำถามที่พบบ่อย

คุณรองรับแบรนด์บัตรใดบ้าง?

เรารองรับ Visa, Mastercard, JCB, American Express, Diners Club, Discover และ UnionPay ในทุกภูมิภาค ความพร้อมใช้งานอาจแตกต่างกันไปตามสถานที่ตั้งบัญชีผู้ค้าของคุณ

ใช้เวลานานเท่าไหร่ในการชำระบัญชี?

ระยะเวลาการชำระบัญชีแตกต่างกันไปตามประเทศ:

  • ไทย: ระยะเวลาพัก 7 วัน
  • ญี่ปุ่น: ระยะเวลาพัก 21 วัน
  • สิงคโปร์/มาเลเซีย: ตรวจสอบกับฝ่ายสนับสนุน

หลังจากระยะเวลาพัก เงินจะสามารถโอนไปยังบัญชีธนาคารของคุณได้

ฉันสามารถรับบัตรต่างประเทศได้หรือไม่?

ได้ Omise รองรับการรับบัตรต่างประเทศ เราแนะนำ:

  • เปิดใช้งาน Address Verification Service (AVS)
  • เก็บรวบรวมข้อมูลการเรียกเก็บเงินที่สมบูรณ์
  • ใช้การเรียกเก็บเงินหลายสกุลเมื่อพร้อมใช้งาน
เกิดอะไรขึ้นหากการชำระเงินล้มเหลว?

การชำระเงินที่ล้มเหลวจะคืนสถานะ failed พร้อม failure_code และ failure_message รหัสความล้มเหลวทั่วไปรวมถึง:

  • insufficient_fund - ยอดเงินไม่เพียงพอ
  • stolen_or_lost_card - บัตรถูกรายงานว่าถูกขโมย
  • failed_fraud_check - การตรวจจับการฉ้อโกงถูกกระตุ้น
  • invalid_security_code - CVV ผิด

จัดการสิ่งเหล่านี้อย่างเหมาะสมและให้ข้อความที่ชัดเจนแก่ลูกค้า

ฉันสามารถบันทึกบัตรสำหรับการชำระเงินในอนาคตได้หรือไม่?

ได้! ใช้ Customers API เพื่อบันทึกบัตรสำหรับการชำระเงินซ้ำๆ:

  1. สร้างลูกค้าด้วย card token
  2. จัดเก็บ customer ID ในฐานข้อมูลของคุณ
  3. เรียกเก็บเงิน customer ID สำหรับการชำระเงินในอนาคต

เรียนรู้เพิ่มเติมเกี่ยวกับการบันทึกบัตร →

แหล่งข้อมูลที่เกี่ยวข้อง

ขั้นตอนถัดไป

  1. ตั้งค่า Omise.js สำหรับ tokenization
  2. ใช้การเรียกเก็บเงินฝั่งเซิร์ฟเวอร์
  3. ทดสอบด้วยบัตรทดสอบ
  4. เปิดใช้งาน 3D Secure เพื่อความปลอดภัยที่เพิ่มขึ้น
  5. เข้าสู่การผลิต ด้วยการบูรณาการของคุณ