バングラデシュ決済サンドボックス環境テストガイドライン
バングラデシュ決済サンドボックス環境テストガイドライン
1.概要
本ガイドは、バングラデシュ決済システムのサンドボックス環境における統合とテストに関す る詳細な手順を開発者とテスターに提供するものである。サンドボックス環境は、実際の決済システムの動作をシミュレートしますが、実際のお金の流れには関与しません。
2.アクセス権の獲得
2.1 登録プロセス
- ステップ1アクセスバングラデシュ中央銀行(NBP)開発者ポータル
- ステップ2デベロッパー登録フォームに必要事項を記入し、必要書類(会社登記証明書、納税者番号など)を提出します。
- ステップ3: 審査待ち (通常3-5営業日かかります)
2.2 APIキーの取得
審査に合格すると、次のような特典がある:
- サンドボックスAPIキー
- マーチャントID/テストアカウント
- APIドキュメントへのアクセス
3.サンドボックスのエンドポイントURL
サービスの種類 | サンドボックスのURL |
---|---|
OAuth認証 | https://api-sandbox.nbp.gov.bd/oauth/token |
QR決済 | https://api-sandbox.nbp.gov.bd/qr/v1/payments |
P2P送金 | https://api-sandbox.nbp.gov.bd/payment/v1/transfers |
請求書支払い | https://api-sandbox.nbp.gov.bd/billpay/v1/payments |
4.テスト資格証明書(テスト目的のみ)
マーチャントアカウント
マーチャントID: TESTMERCH001
APIキー: sb_test_1234567890abcdefghijklmnopqrstuvwxyz
顧客アカウント
おサイフケータイ:+88017XXXXXXXX(+88017で始まる番号をご使用ください。)
PIN:1234(全テストアカウント共通)
5 .一般的な取引シナリオのサンプルコード(Python)
輸入リクエスト
# OAuth認証によるトークン取得
auth_url = "https://api-sandbox.nbp.gov.bd/oauth/token"
ヘッダー = {
「Content-Type": "application/x-www-form-urlencoded"、
"認証": "基本 [base64エンコードされたclient_id:client_secret]"
}
データ = {
"grant_type": "client_credentials"
}
response = requests.post(auth_url, headers=headers, data=data)
access_token = response.json()["access_token"]。
# QR決済リクエスト例
qr_payload = {
"merchantId": "[YOUR_MERCHANT_ID]"、
「金額」:100、
# ...その他の必須項目については、APIドキュメントを参照してください。
}
qr_headers={
'Authorization': f'ベアラ {access_token}'、
'Content-Type':'application/json'
}
qr_response=requests.post()。
https://api-sandbox.nbp.gov.bd/qr/v1/payments』、
json=qr_payload.
headers=qr_headers
)
print(qr_response.json())
6 .エラー処理とデバッグのヒント
一般的なHTTPステータスコード。
-400 Bad Request → リクエストのフォーマットが正しいかチェックする。
-401 Unauthorized →APIキー/OAuthトークンが有効か、期限切れでないか確認する。
-403 Forbidden→お客様のマーチャントアカウントにこの操作を実行する権限があるか確認してください。
ログの推奨
curl-v-X POST https:/...\
-認証:ベアラ $TOKEN」。
-d@request_body.json>response.log
7 .制限と割当
サンドボックス環境には以下の制限がある:
-1回の取引額が100,000タカ(BDT)を超えないこと。
-1日の累積取引額が50万Tk/日を超えないこと。
-1分間に最大30回のAPIコール
8 .サポートチャンネル
以下は、問題を抱えたときに助けを求める方法である:
-Eメール[email protected]
-スラックNBP開発者コミュニティ
-電話:+880XXXXXX(月~金 午前9時~午後5時 GMT+6)
バングラデシュにおける決済サンドボックス環境のテストに関するガイドライン(続き)
9.テストケースの設計に関する推奨事項
9.1 中核的支払いシナリオ
- 支払いプロセス少額(10BDT)、標準額(500BDT)、境界額(99,999BDT)
- 失敗シナリオ::
- PINエラー連続入力(ロック機構を3回テスト)
- 残高不足取引
- QRコードの有効期限が切れた取引(デフォルトは15分有効)
9.2 API 検証マトリックス
APIメソッド | HTTPステータスコード | JSONレスポンス・フィールド |
---|---|---|
POST /payments | 201 作成 |
トランザクションID , ステータス: "PENDING" |
GET /transactions/{id} | 200 OK |
決済金額 , 料金詳細 |
DELETE /payments/{id} (払い戻し) | 202 受け入れ |
反転参照 |
10 .ローカルシミュレーションツール
Dockerイメージの迅速なデプロイ:
docker run -p8080:8080 nbp/sandbox-simulator:v2.4 ¦ ¦ ¦ ¦ ドッカーラン
-e MOCK_RESPONSE_DELAY=200ms \
-e FAILURE_RATE=5%
設定パラメータの説明:
- DELAY_MS:アナログネットワークディレイ(デフォルト150ms)
- FAILURE_RATE: 自動的に失敗したリクエストの割合(ストレステスト用)
11 .セキュリティ・コンプライアンス要件
実現しなければならない保護措置
-
暗号化伝送すべてのリクエストにTLS 1.2+の使用を義務付ける。
# Nginxサンプル設定
ssl_protocols TLSv1.2 TLSv1.3。
ssl_ciphers HIGH:!aNULL:!MD5;
-
機密データの減感作::
# Pythonログフィルタリングの例
インポートログ
class SensitiveDataFilter(logging.Filter).
def filter(self, record).
record.getMessage().lower()に'pin'がある場合:
偽を返す
真を返す
3.認定強化勧告
POST /auth/token HTTP/1.
ホスト : api-sandbox.nbp.gov.bd
認証 : 基本base64(client_id:SHA256(client_secret+timestamp))
x-timestamp :20240605t143812z
12 .パフォーマンス・ベンチマーク・リファレンス
AWS t3.xlargeインスタンスで測定。
-平均応答時間:120±25ms(P95)
-スループット:220TPS(持続負荷時)
-コールドスタートの待ち時間:最初の通話に300~500ミリ秒追加
13 .生産切り替えチェックリスト
サンドボックステストが完了したら、確認してください:
IP ホワイトリストが NBP Ops チームに提出されました。
SSL 証明書は信頼できる CA によって発行され、有効期限が切れていない。
✅ [ ] エラーコード処理範囲 100% まで
模擬データと実アカウントの切り替え完了
バングラデシュにおける電子決済システム統合のための仕様書」の完全版をPDFで入手するには、正式なリクエスト・メールを下記までお送りください。[email protected] メールの件名形式:"[API DOC REQUEST] {会社名}"