การชำระเงินด้วยบัตรเครดิตและบัตรเดบิต
รับชำระเงินด้วย 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 |
| มาเลเซีย | MYR | RM1.00 | RM100,000.00 |
| สิงคโปร์ | SGD | S$1.00 | S$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
- PHP
- Node.js
- Python
- Ruby
- Go
curl https://api.omise.co/charges \
-u skey_test_YOUR_SECRET_KEY: \
-d "amount=10025" \
-d "currency=thb" \
-d "card=tokn_test_5rt6s9vah5lkvi1rh9c"
<?php
require_once 'vendor/autoload.php';
define('OMISE_PUBLIC_KEY', 'pkey_test_YOUR_KEY');
define('OMISE_SECRET_KEY', 'skey_test_YOUR_KEY');
$charge = OmiseCharge::create(array(
'amount' => 10025,
'currency' => 'thb',
'card' => $_POST['omiseToken']
));
if ($charge['status'] == 'successful') {
echo 'ชำระเงินสำเร็จ!';
} else {
echo 'การชำระเงินล้มเหลว: ' . $charge['failure_message'];
}
?>
const omise = require('omise')({
secretKey: 'skey_test_YOUR_SECRET_KEY'
});
const charge = await omise.charges.create({
amount: 10025,
currency: 'thb',
card: tokenId
});
if (charge.status === 'successful') {
console.log('ชำระเงินสำเร็จ!');
} else {
console.log('การชำระเงินล้มเหลว:', charge.failure_message);
}
import omise
omise.api_secret = 'skey_test_YOUR_SECRET_KEY'
charge = omise.Charge.create(
amount=10025,
currency='thb',
card='tokn_test_5rt6s9vah5lkvi1rh9c'
)
if charge.status == 'successful':
print('ชำระเงินสำเร็จ!')
else:
print(f'การชำระเงินล้มเหลว: {charge.failure_message}')
require 'omise'
Omise.api_key = 'skey_test_YOUR_SECRET_KEY'
charge = Omise::Charge.create({
amount: 10025,
currency: 'thb',
card: 'tokn_test_5rt6s9vah5lkvi1rh9c'
})
if charge.status == 'successful'
puts 'ชำระเงินสำเร็จ!'
else
puts "การชำระเงินล้มเหลว: #{charge.failure_message}"
end
package main
import (
"github.com/omise/omise-go"
"github.com/omise/omise-go/operations"
)
func main() {
client, _ := omise.NewClient("pkey_test_YOUR_KEY", "skey_test_YOUR_KEY")
charge, createCharge := &omise.Charge{}, &operations.CreateCharge{
Amount: 10025,
Currency: "thb",
Card: "tokn_test_5rt6s9vah5lkvi1rh9c",
}
if e := client.Do(charge, createCharge); e != nil {
panic(e)
}
}
ค่าสถานะการเรียกเก็บเงิน
| สถานะ | คำอธิบาย |
|---|---|
pending | รอการอนุมัติการชำระเงิน |
successful | การชำระเงินได้รับการอนุมัติและจับได้แล้ว |
failed | การชำระเงินถูกปฏิเสธหรือล้มเหลว |
expired | หน้าต่างการอนุมัติหมดอายุ |
reversed | การอนุมัติถูกกลับรายการ |
คุณสมบัติด้านความปลอดภัย
1. การปฏิบัติตาม PCI DSS
- Omise ได้รับการรับรอง PCI DSS Level 1
- ข้อมูลบัตรไม่สัมผัสเซิร์ฟเวอร์ของคุณ
- Tokenization ช่วยลดขอบเขตการปฏิบัติตาม
2. การยืนยันตัวตน 3D Secure
- เพิ่มชั้นความปลอดภัยเพิ่มเติม
- ลดการฉ้อโกงและการเรียกคืนเงิน
- เปลี่ยนความรับผิดไปที่ผู้ออกบัตร
เรียนรู้เพิ่มเติมเกี่ยวกับ 3D Secure →
3. การตรวจสอบที่อยู่ (AVS)
- ตรวจสอบที่อยู่สำหรับเรียกเก็บเงิน
- ปรับปรุงอัตราการอนุมัติ
- แนะนำสำหรับบัตรต่างประเทศ