การชำระเงินแบบหลายสกุลเงิน
ยอมรับการชำระเงินจากลูกค้าทั่วโลกในสกุลเงินท้องถิ่นของพวกเขาขณะที่ได้รับการจ่ายในสกุลเงินที่ต้องการ
ภาพรวม
การสนับสนุนหลายสกุลเงินช่วยให้คุณสามารถคิดค่าธรรมเนียมลูกค้าในสกุลเงินท้องถิ่น (สกุลเงินแสดงผล) ขณะที่ได้รับเงินในสกุลเงินการจ่ายของคุณ ซึ่งช่วยปรับปรุงอัตราการแปลงค่าและให้ความโปร่งใสแก่ลูกค้าระหว่างประเทศ
ประโยชน์หลัก:
- 💰 อัตราการแปลงค่าที่ดีขึ้น - ลูกค้าเห็นราคาในสกุลเงินที่คุ้นเคย
- 🌍 การเข้าถึงแบบโลก - ยอมรับการชำระเงินจากทั่วโลก
- 💱 การแปลงอัตโนมัติ - ใช้อัตราแลกเปลี่ยนแบบเรียลไทม์
- 📊 ราคาที่โปร่งใส - ไม่มีอัตราแลกเปลี่ยนที่ ไม่คาดคิดสำหรับลูกค้า
- 🏦 การจ่ายครั้งเดียว - รับเงินทั้งหมดในสกุลเงินเดียว
สกุลเงินที่รองรับ
สกุลเงินแสดงผล(คิดค่าธรรมเนียมลูกค้า)
- THB - บาทไทย
- SGD - ดอลลาร์สิงคโปร์
- MYR - ริงกิตมาเลเซีย
- JPY - เยนญี่ปุ่น
- USD - ดอลลาร์สหรัฐ
- EUR - ยูโร
- GBP - ปอนด์สเตอร์ลิง
- AUD - ดอลลาร์ออสเตรเลีย
- HKD - ดอลลาร์ฮ่องกง
- KRW - วอนเกาหลี
- IDR - รูเปี ยห์อินโดนีเซีย
- PHP - เปโซฟิลิปปินส์
- CNY - หยวนจีน
และ 100+ สกุลเงินอื่นเพื่อการชำระเงินด้วยบัตร
สกุลเงินการจ่าย(รับเงิน)
สกุลเงินการจ่ายของคุณขึ้นอยู่กับข้อตกลงตัวแทนจำหน่าย:
- THB (ตัวแทนจำหน่ายไทย)
- SGD (ตัวแทนจำหน่ายสิงคโปร์)
- MYR (ตัวแทนจำหน่ายมาเลเซีย)
- JPY (ตัวแทนจำหน่ายญี่ปุ่น)
- USD (ตัวแทนจำหน่ายระหว่างประเทศ)
วิธีการทำงาน
ตัวอย่างการไหล:
- ตัวแทนจำหน่ายแสดงราคาเป็น USD ให้ก ับลูกค้าสหรัฐ
- ลูกค้าชำระเงิน $100 USD
- Omise แปลงค่าในอัตราแลกเปลี่ยนปัจจุบัน (เช่น 1 USD = 35 THB)
- ตัวแทนจำหน่ายได้รับ ฿3,500 THB ในการจ่าย
การดำเนินการ
การชาร์จหลายสกุลเงินพื้นฐาน
- Node.js
- PHP
- Python
const omise = require('omise')({
secretKey: 'skey_test_YOUR_SECRET_KEY'
});
// คิดค่าธรรมเนียมลูกค้าในสกุลเงินท้องถิ่น
const charge = await omise.charges.create({
amount: 10000, // $100.00 USD
currency: 'USD', // สกุลเงินแสดงผล
card: cardToken,
description: 'Order #12345'
});
// คุณจะได้รับการจ่ายในสกุลเงินของคุณ (เช่น THB)
console.log('ลูกค้าที่ถูกคิดค่าธรรมเนียม:', charge.amount, charge.currency);
// การจ่ายจะเป็น THB ตามอัตราแลกเปลี่ยน
<?php
$charge = OmiseCharge::create(array(
'amount' => 10000,
'currency' => 'USD',
'card' => $cardToken,
'description' => 'Order #12345'
));
// ลูกค้าถูกคิดค่าธรรมเนียมเป็น USD คุณได้รับ THB
?>
import omise
charge = omise.Charge.create(
amount=10000,
currency='USD',
card=card_token,
description='Order #12345'
)
# ลูกค้าถูกคิดค่าธรรมเนียมเป็น USD คุณได้รับ THB
การเลือกสกุลเงินแบบไดนามิก
// ตรวจจับตำแหน่งของลูกค้าและแสดงสกุลเงินที่เหมาะสม
const customerCurrency = detectCustomerCurrency(req.headers);
const prices = {
USD: { amount: 10000, symbol: '$', display: '$100.00' },
EUR: { amount: 9000, symbol: '€', display: '€90.00' },
GBP: { amount: 8000, symbol: '£', display: '£80.00' },
THB: { amount: 350000, symbol: '฿', display: '฿3,500' }
};
const price = prices[customerCurrency] || prices.USD;
// แสดงให้ลูกค้า
showPrice(price.display);
// คิดค่าธรรมเนียมในสกุลเงินของลูกค้า
const charge = await omise.charges.create({
amount: price.amount,
currency: customerCurrency,
card: cardToken
});
การตรวจจับสกุลเงิน
โดย IP Geolocation
const geoip = require('geoip-lite');
function detectCustomerCurrency(ipAddress) {
const geo = geoip.lookup(ipAddress);
if (!geo) return 'USD'; // ค่าเริ่มต้น
const currencyMap = {
'TH': 'THB',
'SG': 'SGD',
'MY': 'MYR',
'JP': 'JPY',
'US': 'USD',
'GB': 'GBP',
'AU': 'AUD'
// เพิ่มประเทศอื่น
};
return currencyMap[geo.country] || 'USD';
}
// การใช้
const currency = detectCustomerCurrency(req.ip);
ตามภาษาเบราว์เซอร์
function detectCurrencyByLanguage(acceptLanguage) {
const langCurrencyMap = {
'th': 'THB',
'en-SG': 'SGD',
'ms': 'MYR',
'ja': 'JPY',
'en-US': 'USD',
'en-GB': 'GBP'
};
// วิเคราะห์ส่วนหัว Accept-Language
const primaryLang = acceptLanguage.split(',')[0].split(';')[0];
return langCurrencyMap[primaryLang] || 'USD';
}