DuitNow Online Banking/Wallets (OBW)
DuitNow OBWを使用して、マレーシアの顧客からオンラインバンキングポータルまたはデジタルウォレット経由で支払いを受け付けます。
概要
DuitNow OBW(Online Banking/Wallets)は、加盟店が顧客の銀行オンラインバンキングポータルやデジタルウォレットを通じて支払いを受け付けることができます。顧客が銀行のセキュアなプラットフォームで認証し、支払いを承認するリダイレクトベースのフローを使用します。
主な特徴:
- ✅ 18以上の銀行をサポート - マレーシアのすべての主要銀 行
- ✅ 安全な銀行認証 - 顧客は銀行のプラットフォームで承認
- ✅ リダイレクトフロー - シンプルなリダイレクト統合
- ✅ リアルタイム確認 - 即時の支払い確認
- ✅ 180日間の返金期間 - 全額および部分返金をサポート
有効化が必要です
DuitNow OBWを加盟店アカウントで有効にするには、support@omise.coまでお問い合わせください。
対応地域
| 地域 | 通貨 | 最小金額 | 最大金額 | 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を選択し、銀行を選ぶ
- 加盟店が銀行コード付きソースを作成
- 顧客が銀行のオンラインバンキングにリダイレクト
- 顧客がログインしてOTPで支払いを確認
- 顧客が加盟店サイトに戻る
- Webhookで支払いステータスを確認
一般的な完了時間: 1〜3分
実装
ステップ1: ソースの作成
- 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: 課金の作成
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"
統合リクエスト
ソースと課金を1つのリクエストで作成:
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: 顧客をリダイレクト
// 銀行のオンラインバンキングポータルにリダイレクト
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
顧客向けの銀行選択ドロップダウンを表示:
<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>