Multi-Currency
หัวข้อทั้งหมดในหน้านี้
ร้านค้าสามารถรับชำระเงินจากผู้ซื้อผ่านบัตรเครดิตและบัตรเดบิตเป็นสกุลเงินต่างประเทศได้ โดยการเปิดใช้บริการ สกุลเงินต่างประเทศ กับ Opn Payments ผู้ถือบัตรสามารถเลือกชำระค่าสินค้าหรือบริการจากทางร้านค้าในสกุลเงินที่ต้องการ โดยระบบของ Opn Payments จะทำการแปลงสกุลเงินต่างประเทศให้เป็นสกุลเงินท้องถิ่นของร้านค้าโดยอัตโนมัติ
คู่มือการใช้งานนี้จะอธิบายวิธีการรับชำระเงินในสกุลเงินต่างประเทศ
การเปิดรับชำระเงิน
- ประเทศที่รองรับ: ประเทศไทย, สิงคโปร์, ประเทศญี่ปุ่น
- API เวอร์ชันล่าสุดที่รองรับ:
2014-07-27
ร้านค้าที่ต้องการเปิดใช้ระบบ Multi-Currency กรุณาส่งอีเมลมาที่ support@opn.ooo ทางทีมงานโอมิเซะจะส่งข้อกำหนดและเงื่อนไขการใช้บริการให้ร้านค้าได้พิจารณาและลงลายมือชื่อก่อนเปิดใช้งานจริง
หมายเหตุ:
- การรับชำระเงินในสกุลเงินต่างประเทศสามารถรับผ่านบัตรเครดิตและบัตรเดบิตเท่านั้น ช่องทางการรับชำระเงินอื่นๆ ไม่รองรับบริการนี้
- ในประเทศไทย ฟีเจอร์นี้สามารถใช้ได้กับบัตร Visa และ Mastercard เท่านั้น
- ในบางกรณีธนาคารผู้ออกบัตรอาจคิดค่าธรรมเนียมการการชำระเงินเป็นสกุลต่างประเทศกับผู้ถือบัตรเพิ่มเติม แม้ผู้ถือบัตรจะเลือกชำระเป็นสกุลเงินท้องถิ่นของตนเองก็ตาม
สกุลเงินต่างประเทศที่รองรับ
สกุลเงินต่างประเทศที่รองรับจะมีความแตกต่างกัน ขึ้นอยู่กับประเทศที่ร้านค้าลงทะเบียนใช้งาน Opn Payments
รหัสสกุลเงิน | สกุลเงิน | ไทย | สิงคโปร์ | ญี่ปุ่น* |
---|---|---|---|---|
AUD | ดอลลาร์ออสเตรเลีย | ✓ | ✓ | |
CAD | ดอลลาร์แคนาดา | ✓ | ||
CHF | สวิสฟรังก์ | ✓ | ✓ | |
CNY | หยวนจีน | ✓ | ✓ | |
DKK | โครนเดนมาร์ก | ✓ | ||
EUR | ยูโร | ✓ | ✓ | |
GBP | ปอนด์สเตอร์ลิง | ✓ | ✓ | |
HKD | ดอลลาร์ฮ่องกง | ✓ | ✓ | |
JPY | เยน | ✓ | ✓ | ✓† |
MYR | ริงกิตมาเลเซีย | ✓ | ||
SGD | ดอลลาร์สิงคโปร์ | ✓ | ✓† | |
THB | บาท | ✓† | ✓ | |
USD | ดอลลาร์สหรัฐ | ✓ | ✓ |
* บริการนี้ยังไม่รองรับร้านค้าที่ลงทะเบียนใช้งาน Opn Paymentsในประเทศญี่ปุ่น
† สกุลเงินท้องถิ่นของร้านค้า
การใช้งาน
ตัวอย่างนี้แสดงวิธีการสร้างรายการรับชำระเงินจำนวน 1,000 ดอลลาร์สหรัฐ จากร้านค้าที่ลงทะเบียนใช้งานในประเทศไทย
การสร้างรายการรับชำระเงินในสกุลเงินต่างประเทศ มีวิธีการคล้ายกันกับการสร้างรายการรับชำระเงินปกติ
- สร้าง token ใหม่
- สร้างรายการรับชำระเงินใหม่ โดยระบุ
currency
เป็นสกุลเงินอื่นๆ ที่ไม่ใช่สกุลเงินท้องถิ่นของร้านค้า
การสร้าง token
สามารถอ่านวิธีการสร้าง token ใหม่ ได้จากคู่มือ Omise.js ในการทดสอบระบบ สามารถทดสอบตามตัวอย่างที่แสดงในคู่มือการใช้งานนี้ สำหรับแบบฟอร์มชำระเงิน สามารถคัดลอกโค้ดตัวอย่างนี้แล้ววางลงในหน้าชำระเงิน
<form id="checkout-form" method="POST" action="/checkout">
<script type="text/javascript" src="https://cdn.omise.co/omise.js"
data-key="OMISE_PUBLIC_KEY"
data-amount="100000"
data-currency="USD">
</script>
</form>
การสร้างรายการรับชำระเงินสกุลต่างประเทศ
นำ token ที่ได้จากขั้นตอนแรก มาสร้างรายการรับชำระเงินใหม่ โดยส่งคำสั่งผ่าน charge API ตรวจสอบข้อมูลด้านล่างนี้ ใน charge object ที่ได้รับตอบกลับ:
currency
: สกุลเงินที่ระบุในขั้นตอนการสร้างรายการรับชำระเงิน (USD
)funding_currency
: สกุลเงินท้องถิ่นของร้านค้า (THB
)funding_amount
: ยอดรับชำระเงินเมื่อทำการแปลงจากสกุลเงินต่างประเทศเป็นสกุลเงินท้องถิ่นของร้านค้า
นอกจาก amount
และ refunded_amount
แล้ว ยอดทั้งหมดจะแสดงเป็นสกุลเงินท้องถิ่นของร้านค้า
curl https://api.omise.co/charges \
-X POST \
-u $OMISE_SECRET_KEY: \
-d "amount=100000" \
-d "currency=USD" \
-d "card=$TOKEN_ID"
{
"object": "charge",
"id": "chrg_test_5y32p7iqvboe1t9x17y",
"location": "/charges/chrg_test_5y32p7iqvboe1t9x17y",
"amount": 100000,
"net": 3308639,
"fee": 125673,
"fee_vat": 8797,
"interest": 0,
"interest_vat": 0,
"funding_amount": 3443109,
"refunded_amount": 0,
"transaction_fees": {
"fee_flat": "0.0",
"fee_rate": "3.65",
"vat_rate": "7.0"
},
"platform_fee": {
"fixed": null,
"amount": null,
"percentage": null
},
"currency": "USD",
"funding_currency": "THB",
"ip": null,
"refunds": {
"object": "list",
"data": [],
"limit": 20,
"offset": 0,
"total": 0,
"location": "/charges/chrg_test_5y32p7iqvboe1t9x17y/refunds",
"order": "chronological",
"from": "1970-01-01T00:00:00Z",
"to": "2023-12-13T12:44:05Z"
},
"link": null,
"description": null,
"metadata": {},
"card": {
"object": "card",
"id": "card_test_5y32p7cui8hp5licv1o",
"livemode": false,
"location": null,
"deleted": false,
"street1": null,
"street2": null,
"city": "Bangkok",
"state": null,
"phone_number": null,
"postal_code": "10320",
"country": "us",
"financing": "credit",
"bank": "JPMORGAN CHASE BANK N.A.",
"brand": "Visa",
"fingerprint": "oWOKTxZALCVYePaebQLM0gaZIrPlXZ7JRtR0i0CDQyY=",
"first_digits": null,
"last_digits": "4242",
"name": "Somchai Prasert",
"expiration_month": 9,
"expiration_year": 2024,
"security_code_check": true,
"tokenization_method": null,
"created_at": "2023-12-13T12:44:04Z"
},
"source": null,
"schedule": null,
"customer": null,
"dispute": null,
"transaction": "trxn_test_5y32p7miy8okd6dred1",
"failure_code": null,
"failure_message": null,
"status": "successful",
"authorize_uri": null,
"return_uri": null,
"created_at": "2023-12-13T12:44:05Z",
"paid_at": "2023-12-13T12:44:05Z",
"expires_at": "2023-12-20T12:44:05Z",
"expired_at": null,
"reversed_at": null,
"zero_interest_installments": false,
"branch": null,
"terminal": null,
"device": null,
"authorized": true,
"capturable": false,
"capture": true,
"disputable": true,
"livemode": false,
"refundable": true,
"partially_refundable": true,
"reversed": false,
"reversible": false,
"voided": false,
"paid": true,
"expired": false
}
อัตราแลกเปลี่ยน
เมื่อได้รับชำระเงินในสกุลเงินต่างประเทศ ระบบจะทำการแปลงยอดเงินนั้น ๆ เป็นสกุลเงินท้องถิ่นของร้านค้าโดยอัตโนมัติก่อนจะทำการสรุปยอดเข้าบัญชี อัตราแลกเปลี่ยนที่ใช้เป็นอัตราแลกเปลี่ยนซึ่งมีการอัปเดตแบบเรียลไทม์ ซึ่งจะสูงกว่าราคากลางของตลาด (mid-market rate) ประมาณ 2-4% สามารถเรียกดูอัตราแลกเปลี่ยนที่ใช้ได้ผ่าน Forex API
ยอดขั้นต่ำและสูงสุดของรายการรับชำระเงิน กำหนดจากสกุลเงินท้องถิ่นของร้านค้า เนื่องจากอัตราแลกเปลี่ยนมีความผันผวนยอดเงินตำ่สุดและสูงสุดที่สามารถรับชำระได้อาจมีความแตกต่างกันในแต่ละช่วงเวลา
curl https://api.omise.co/forex/usd \
-u $OMISE_SECRET_KEY:
{
"object": "forex",
"rate": 34.431094,
"location": "/forex/usd",
"livemode": false,
"base": "USD",
"quote": "THB"
}
การคืนเงิน
ร้านค้าสามารถทำการคืนเงินแบบเต็มจำนวนหรือคืนเงินเพียงบางส่วนของยอดชำระทั้งหมด โดยสามารถเลือกดำเนินการผ่าน Refund API หรือผ่านแดชบอร์ด ระบบจะทำการคืนเงินแก่ผู้ถือบัตรในสกุลเงินเดียวกันกับที่มีการรับชำระเงิน
ยอดขั้นต่ำและสูงสุดของรายการรับชำระเงิน กำหนดจากสกุลเงินท้องถิ่นของร้านค้า เนื่องจากอัตราแลกเปลี่ยนมีความผันผวนยอดเงินตำ่สุดและสูงสุดที่สามารถรับชำระได้อาจมีความแตกต่างกันในแต่ละช่วงเวลา
curl https://api.omise.co/charges/$CHARGE_ID/refunds \
-X POST \
-u $OMISE_SECRET_KEY: \
-d "amount=100000"
{
"object": "refund",
"id": "rfnd_test_5y32p7xe4cv201tydb4",
"location": "/charges/chrg_test_5y32p70djubxnb6drhb/refunds/rfnd_test_5y32p7xe4cv201tydb4",
"livemode": false,
"voided": true,
"currency": "USD",
"amount": 100000,
"metadata": {},
"charge": "chrg_test_5y32p70djubxnb6drhb",
"terminal": null,
"transaction": "trxn_test_5y32p7xndd3d75buyye",
"status": "closed",
"funding_amount": 3443109,
"funding_currency": "THB",
"created_at": "2023-12-13T12:44:07Z"
}
แดชบอร์ด
ตัวอย่างรายการที่แสดงบนแดชบอร์ด:
ข้อขัดข้อง
หากร้านค้าไม่ได้ทำการเปิดใช้งานสกุลเงินต่างประเทศไว้ และได้ทำการสร้างรายการในสกุลเงินต่างประเทศ รายการจะไม่สำเร็จ โดยจะแสดงรหัสข้อขัดข้องเป็น failed_multi_currency
กรุณาติดต่อ support@opn.ooo หากพบข้อขัดข้องนี้
บัญชีร้านค้าที่ไม่ได้ตั้งค่าเพื่อรับสกุลเงินต่างประเทศจะไม่สามารถรับชำระรายการที่จ่ายด้วยสกุลเงินต่างประเทศได้ โดยจะขึ้นว่า invalid_charge