DuitNow Online Banking/Wallets (OBW)
รับชำระเงินจากลูกค้าชาวมาเลเซียผ่านระบบ Online Banking หรือกระเป๋าเงินดิจิทัลด้วย DuitNow OBW
ภาพรวม
DuitNow OBW (Online Banking/Wallets) ช่วยให้ร้านค้าสามารถรับชำระเงินผ่านระบบ Online Banking และกระเป๋าเงินดิจิทัลของลูกค้า ใช้รูปแบบ redirect ที่ลูกค้าจะยืนยันตัวตนและอนุมัติการชำระเงินบนแพลตฟอร์มที่ปลอดภัยของธนาคาร
คุณสมบัติหลัก:
- รองรับ ธนาคาร 18+ แห่ง - ธนาคารหลักทั้งหมดในมาเลเซีย
- การยืนยันตัวตนที่ปลอดภัย - ลูกค้าอนุมัติบนแพลตฟอร์มของธนาคาร
- รูปแบบ redirect - การติดตั้งแบบ redirect ที่ง่าย
- ยืนยันแบบเรียลไทม์ - ตรวจสอบการชำระเงินทันที
- ระยะเวลาคืนเงิน 180 วัน - รองรับการคืนเงินทั้งแบบเต็มจำนวนและบางส่วน
ติดต่อ support@omise.co เพื่อเปิดใช้งาน DuitNow OBW สำหรับบัญชีร้านค้าของคุณ
ภูมิภาคที่รองรับ
| ภูมิภาค | สกุลเงิน | จ ำนวนขั้นต่ำ | จำนวนสูงสุด | เวอร์ชัน API |
|---|---|---|---|---|
| มาเลเซีย | MYR | RM1.00 | RM20,000.00 | 2017-11-02 |
ธนาคารที่รองรับ
| รหัสธนาคาร | ชื่อธนาคาร |
|---|---|
affin | Affin Bank |
alliance | Alliance Bank |
agro | AGRONet |
ambank | AmBank |
islam | Bank Islam |
muamalat | Bank Muamalat |
rakyat | Bank Rakyat |
bsn | BSN |
cimb | CIMB Clicks |
hongleong | Hong Leong Bank |
hsbc | HSBC |
kfh | KFH |
maybank2u | Maybank2U |
ocbc | OCBC |
publicbank | Public Bank |
rhb | RHB Bank |
sc | Standard Chartered |
uob | UOB |
วิธีการทำงาน
ขั้นตอนการชำระเงิน:
- ลูกค้าเลือก DuitNow OBW และเลือกธนาคาร
- ร้านค้าสร้าง source พร้อมรหัสธนาคาร
- ลูกค้าถูก redirect ไปยัง Online Banking ของธนาคาร
- ลูกค้าเข้าสู่ระบบและยืนยันการชำระเงินด้วย OTP
- ลูกค้ากลับมาที่เว็บไซต์ร้านค้า
- Webhook ยืนยันสถานะการชำระเงิน
ระยะเวลาดำเนินการโดยทั่วไป: 1-3 นาที
การติดตั้ง
ขั้นตอนที่ 1: สร้าง Source
- cURL
- Node.js
- PHP
- Omise.js
curl https://api.omise.co/sources \
-u $OMISE_PUBLIC_KEY: \
-d "amount=150000" \
-d "currency=MYR" \
-d "type=duitnow_obw" \
-d "bank=maybank2u"
const omise = require('omise')({
secretKey: 'skey_test_YOUR_SECRET_KEY'
});
const source = await omise.sources.create({
type: 'duitnow_obw',
amount: 150000, // MYR 1,500.00
currency: 'MYR',
bank: 'maybank2u' // ธนาคารที่ลูกค้าเลือก
});
<?php
$source = OmiseSource::create([
'type' => 'duitnow_obw',
'amount' => 150000,
'currency' => 'MYR',
'bank' => 'maybank2u'
]);
?>
Omise.setPublicKey(omise_public_key);
Omise.createSource('duitnow_obw', {
amount: 150000,
currency: 'MYR',
bank: 'maybank2u'
}, function(statusCode, response) {
console.log(response);
});
ขั้นตอนที่ 2: สร้าง Charge
curl https://api.omise.co/charges \
-u $OMISE_SECRET_KEY: \
-d "amount=150000" \
-d "currency=MYR" \
-d "return_uri=https://example.com/payment/complete" \
-d "source=src_test_xxx"
คำขอแบบรวม
สร้าง source และ charge ในคำขอเดียว:
curl https://api.omise.co/charges \
-u $OMISE_SECRET_KEY: \
-d "amount=150000" \
-d "currency=MYR" \
-d "return_uri=https://example.com/payment/complete" \
-d "source[type]=duitnow_obw" \
-d "source[bank]=maybank2u"
ขั้นตอนที่ 3: Redirect ลูกค้า
// Redirect ไปยังระบบ Online Banking ของธนาคาร
window.location.href = charge.authorize_uri;
ขั้นตอนที่ 4: จัดการ Webhook
app.post('/webhooks/omise', (req, res) => {
const event = req.body;
if (event.key === 'charge.complete') {
const charge = event.data;
if (charge.status === 'successful') {
fulfillOrder(charge.metadata.order_id);
} else if (charge.status === 'failed') {
notifyCustomer(charge.metadata.order_id, charge.failure_message);
}
}
res.status(200).send('OK');
});
UI สำหรับเลือกธนาคาร
แสดง dropdown ให้ลูกค้าเลือกธนาคาร:
<div class="bank-selection">
<label for="bank">เลือกธนาคารของคุณ:</label>
<select id="bank" name="bank" required>
<option value="">-- เลือกธนาคาร --</option>
<option value="maybank2u">Maybank2U</option>
<option value="cimb">CIMB Clicks</option>
<option value="publicbank">Public Bank</option>
<option value="rhb">RHB Bank</option>
<option value="hongleong">Hong Leong Bank</option>
<option value="ambank">AmBank</option>
<option value="affin">Affin Bank</option>
<option value="alliance">Alliance Bank</option>
<option value="islam">Bank Islam</option>
<option value="muamalat">Bank Muamalat</option>
<option value="rakyat">Bank Rakyat</option>
<option value="bsn">BSN</option>
<option value="hsbc">HSBC</option>
<option value="ocbc">OCBC</option>
<option value="sc">Standard Chartered</option>
<option value="uob">UOB</option>
</select>
</div>
สถานะของ Charge
| สถานะ | คำอธิบาย |
|---|---|
pending | รอลูกค้าอนุมัติที่ธนาคาร |
successful | การชำระเงินสำเร็จ |
failed | การชำระเงินถูกปฏิเสธหรือเกิดข้อผิดพลาดในการประมวลผล |
expired | ลูกค้าไม่ดำเนินการภายใน 7 วัน |
รหัสความล้มเหลว
| รหัส | คำอธิบาย |
|---|---|
payment_expired | หมดเวลาอนุมัติ |
payment_rejected | ธนาคารปฏิเสธรายการ |
failed_processing | ข้อผิดพลาดในการประมวล ผลทั่วไป |
invalid_account | ไม่มีบัญชีที่ถูกต้องสำหรับชำระเงิน |
insufficient_fund | ยอดเงินหรือวงเงินไม่เพียงพอ |
การคืนเงิน
DuitNow OBW รองรับการคืนเงินทั้งแบบเต็มจำนวนและบางส่วนภายใน 180 วัน นับจากวันที่ทำรายการ:
// คืนเงินทั้งหมดหรือบางส่วน
const refund = await omise.charges.refund('chrg_test_xxx', {
amount: 50000 // คืนเงินบางส่วน MYR 500.00
});
แนวทางปฏิบัติที่ดี
- แสดงโลโก้ธนาคาร - แสดงโลโก้ธนาคารที่จดจำได้ง่ายสำหรับการเลือก
- แสดงสถาน ะกำลังประมวลผล - แสดงสถานะโหลดระหว่าง redirect
- จัดการ timeout - ลูกค้ามีเวลา 7 วันในการดำเนินการชำระเงิน
- ให้ความสำคัญกับ webhook - ใช้ webhook เป็นหลักสำหรับการดำเนินการคำสั่งซื้อ
- ปรับให้เหมาะกับมือถือ - ระบบ Online Banking ของธนาคารทำงานได้บนอุปกรณ์มือถือ
คำถามที่พบบ่อย
DuitNow OBW คืออะไร?
DuitNow OBW (Online Banking/Wallets) เป็นช่องทางการชำระเงินที่ให้ลูกค้าชาวมาเลเซียชำระเงินโดยตรงผ่านระบบ Online Banking ของธนาคาร ลูกค้าเลือกธนาคาร ถูก redirect ไปเข้าสู่ระบบ และอนุมัติการชำระเงินด้วยการยืนยัน OTP
DuitNow OBW กับ DuitNow QR ต่างกันอย่างไร?
DuitNow OBW: ลูกค้าถูก redirect ไปยังระบบ Online Banking ของธนาคารเพื่ออนุมัติการชำระเงิน เหมาะสำหรับการชำระเงินบนเดสก์ท็อปและเว็บ
DuitNow QR: ลูกค้าสแกน QR code ด้วยแอปธนาคารหรือกระเป๋าเงินดิจิทัล เหมาะสำหรับการชำระเงินในร้านและประสบการณ์บนมือถือ
ทั้งสองเป็นส่วนหนึ่งของโครงสร้างพื้นฐานการชำระเงิน DuitNow ของมาเลเซีย
รองรับธนาคารใดบ้าง?
DuitNow OBW รองรับธนาคารมาเลเซีย 18+ แห่ง รวมถึง Maybank, CIMB, Public Bank, RHB, Hong Leong, AmBank, Affin, Alliance, Bank Islam, Bank Muamalat, Bank Rakyat, BSN, HSBC, OCBC, Standard Chartered และ UOB
ลูกค้ามีเวลาเท่าไรในการชำระเงิน?
ลูกค้ามีเวลาสูงสุด 7 วันในการชำระเงินหลังจากสร้าง charge อย่างไรก็ตาม session timeout ของแต่ละธนาคารอาจสั้นกว่านั้น หากไม่ชำระเงินภายในเวลาที่กำหนด สถานะ charge จะเปลี่ยนเป็น expired
สามารถคืนเงินการชำระผ่าน DuitNow OBW ได้หรือไม่?
ได้ รองรับการคืนเงินทั้งแบบเต็มจำนวนและบางส่วนภายใน 180 วันนับจากวันที่ทำรายการ
DuitNow OBW ดีกว่า FPX หรือไม่?
DuitNow OBW และ FPX ทั้งคู่รองรับการชำระเงินผ่าน Online Banking ในมาเลเซีย DuitNow OBW เป็นมาตรฐานใหม่ภายใต้โครงสร้างพื้นฐาน DuitNow ของ PayNet ทั้งสองทำงานคล้ายกัน - เลือกตามการติดตั้งที่มีอยู่หรือความพร้อมใช้งานของ PayNet/FPX สำหรับบัญชีร้านค้าของคุณ
แหล่งข้อมูลที่เกี่ยวข้อง
- DuitNow QR - การชำระเงินผ่าน QR
- FPX - การโอนเงินผ่านธนาคารทางเลือก
- ภาพรวมการโอนเงินผ่านธนาคาร - ช่องทางโอนเงินผ่านธนาคารทั้งหมด
- Webhooks - การจัดการ webhook