バングラデシュ決済APIへのアクセス方法?初心者のための開発者向けチュートリアル

バングラデシュ決済APIへのアクセス方法?初心者のための開発者向けチュートリアル

I. バングラデシュ決済市場の概要

バングラデシュは南アジアで最も急速に経済成長を遂げている国のひとつであり、電子決済市場は近年急成長を遂げている。スマートフォンの普及が進み、インターネットインフラが整備されたことで、ますます多くの企業や開発者が、ローカライズされた決済ソリューションにアクセスしようとしています。この記事では、バングラデシュで主流の決済APIにアクセスする方法を技術的なレベルから詳しく紹介する。

II.予備準備作業

1.適切な決済サービスプロバイダーの選択

バングラデシュで運営されている主な決済ゲートウェイには以下のものがある:

  • bKash(最大シェア)
  • ナガド(政府が支援するデジタルウォレット)
  • ロケット(オランダ・バングラ銀行傘下)
  • ウペイ
  • シュアキャッシュ

2.マーチャントアカウントの登録

選択したプロバイダーの公式ウェブサイトにアクセスし、以下のステップを完了する:

  1. 事業登録書類の提出
  2. 申込書に記入する
  3. 審査待ち(通常3~7営業日)
  4. マーチャントIDとAPIキーを取得する

3.APIドキュメントへのアクセス

登録が完了したら、マーチャントバックオフィスにログインし、最新バージョンのAPIドキュメントをダウンロードしてください。ほとんどのプロバイダーはRESTful APIインターフェースをサポートしています。

III.開発環境の構成

1.基本要件

- HTTPSプロトコル(SSL証明書が必要) 
- IPホワイトリスト設定(プラットフォームによっては必須)
-サーバーのタイムゾーンはUTC+6(ダッカ時間)に設定されています。

2.SDKのインストール(例としてPHP)

// 公式SDKをComposer経由でインストールする。 
composer require bkash/api-client

// または手動で導入
require_once 'path/to/bKashApi.php';

Python/Java/Node.jsなど他の言語にも対応するSDKが用意されている。

第四に、コアAPIのドッキングプロセス

以下は典型的な統合ステップである:

1. 認証

//例: アクセストークンの取得 
const authResponse = await fetch('https://api.bkash.com/token', {)
メソッド: 'POST'、
ヘッダー: {
Content-Type': 'application/json'、
'username': '[YOUR_MERCHANT_USERNAME]'、
'パスワード': '[YOUR_API_PASSWORD]'
},
body: JSON.stringify({ grant_type: 'client_credentials' })
});

2. トランザクション・リクエストの作成

# Pythonの例 - 支払リクエストを開始する  
輸入リクエスト

ペイロード = {
「mode":"0011"、#テストモードコード
「payerReference": "INV12345".
"callbackURL": "https://yourdomain.com/callback"、
「金額」:「500」、
「通貨": "BDT
"意図": "販売"
}
ヘッダー = {
「Authorization": "Bearer [ACCESS_TOKEN]"、
"X-App-Key":"[APP_KEY]"
}
response=requests.post("https://api.bkash.com/create",json=payload,headers=headers)

3. コールバック通知の処理

すべてのトランザクションステータスの変更は、Webhookを介して通知されます:

// Java Spring Bootの受信コールバックの例  
ポストマッピング("/payment/callback")
public ResponseEntity handleCallback(@RequestBody CallbackData data) {.
if(data.getStatus().equals("完了")){。
// 注文ステータスを支払済みに更新する
} else {
//不合格理由の文書化
}
return new ResponseEntity("OK", HttpStatus.OK);
}

4. 取引結果を問い合わせる

コールバックを受けたとしても、積極的に確認の問い合わせをすべきである:

$transactionId="TRX789012".  
$queryUrl="https://api.nagad.com/query/".$transactionId;
$ch=curl_init($queryUrl);
curl_setopt($ch,CURLOPT_HTTPHEADER,[.
'Authorization:Bearer'.$accessToken、
'X-Merchant-ID:'.$merchantId
]);
$result=curl_exec($ch);
/* JSON フォーマットを返す。
{
"statusCode":"0000"、
「金額」:「1000」、
"trxTimestamp": "2023-05

V. サンドボックス環境のテストと使用

1.受験票の入手

主要な決済プラットフォームはすべて、サンドボックス環境を提供している:

申し込みに必要:

- テスト用携帯電話番号(認証コードを受信するため)
- バーチャル・マーチャントID
- APIキーをシミュレートする

2.共通テストシナリオ

ユースケース 検査金額(BDT) 期待される結果
マイクロファイナンス 10-100 早期解決
大口取引 5000+ OTP認証が必要な場合があります。
オーダーIDの重複 いくらでも はエラーを返すはずです。
期限切れセッション タイムアウトペイメントID|取引期限アラート|取引期限アラート
# cURLテスト例(ナガド)
curl -X POST
https://sandbox.mynagad.com/api/checkout
-H 'Content-Type: application/json' \
-d '{
「merchantId": "TEST001".
"invoiceNumber":"DEMO123"。
"金額": "50.00"
}'

VI.本番環境オンライン・チェックリスト

公式環境に切り替える前に、以下のステップを完了してください:

  1. SSL証明書がPCI DSS準拠テストに合格
  2. 決済プラットフォームのバックエンドでIPホワイトリストが設定されている。
  3. Webhookエンドポイントのストレステスト(200TPS以上のサポートを推奨)
  4. 照合モジュール統合完了
  5. バングラ語のエラーメッセージをローカライズ

VII.特別な配慮

1.バングラデシュのコンプライアンス要件

-取引記録は少なくとも5年間保存しなければならない。  
-5,000BDTを超える取引には追加認証の提出が必要です。
-ギャンブルやアダルトコンテンツなど、リスクの高い産業へのアクセスを禁止する。

2.通貨と手数料

主な支払い方法の料金比較

支払い手数料の比較
(注:写真は実際のデータチャートに置き換える必要がある)

bKash → 1.85% + VAT    
ナガド → 固定 15BDT/ペン
ロケット → 法人口座は1%まで応相談
クレジットカードアクセス → 3%-4%(非推奨)

トラブルシューティングガイド

APIがエラーを返したときの参照:

HTTPステータスコード解析

表:一般的なエラーコードの比較

| コーディング | 隠された意味 | 処方 |
|----|---------|-----------|
401 認証失敗⇒タイムスタンプがUTC+6タイムゾーンにあるかチェック
403 IPが承認されていない⇒カスタマーサービスに連絡してサーバーIPを追加する
429 フロー制限を要請⇒コール頻度を減らすか、クォータ増加を要請
503サービスメンテナンス⇒公式ステータスページ(status.nagad.com)を見る

// 典型的なエラー処理ロジックの例 (bKash)
を試す。
const payment = await bkash.createPayment(params);
} catch (error) { //catch a business-specific exception

if(error.code === 'INSUFFICIENT_BALANCE'){.
alert("ユーザーの財布の残高が不足しています");;
} else if(error.code === 'TX_TIMEOUT'){.
console.log("This order has expired, please re-initiate it");
}
}

IX. ベストプラクティスの提言

50社以上の地元企業とのマッチングの経験に基づいています:

✔️ ハイブリッド統合戦略
収益に影響する単一障害点を回避するため、少なくとも2つの決済チャネル(bKash+Nagadなど)に同時にアクセスできる。

✔️ インテリジェントなルート最適化
リアルタイムの成功率に基づく自動チャンネル切り替え:

if(bkashの失敗回数>3){。  
fallbackTo(nagadAPI)。
}

✔️ ローカリゼーション体験の向上

  • ラマダン期間中の営業時間表示の調整
  • 右から左に読む習慣に合わせたUI(ベンガル語のインターフェース)

より詳細なコード例やプラットフォーム別のドッキングマニュアルについては、開発者コミュニティ [リンク] で最新のリソースをご覧ください。この記事は、2024年のバングラデシュ中央銀行の新しい規制変更を反映するために更新され続けます。