孟加拉支付沙箱环境测试指南

孟加拉支付沙箱环境测试指南

1. 概述

本指南为开发者和测试人员提供在孟加拉国支付系统沙箱环境中进行集成和测试的详细说明。沙箱环境模拟了真实支付系统的行为,但不涉及实际资金流动。

2. 获取访问权限

2.1 注册流程

2.2 API密钥获取

通过审核后,您将获得:

  • Sandbox API密钥
  • Merchant ID/Test Account
  • API文档访问权限

3. Sandbox端点URLs

Type of service Sandbox URL
OAuth认证 https://api-sandbox.nbp.gov.bd/oauth/token
QR支付 https://api-sandbox.nbp.gov.bd/qr/v1/payments
P2P transfers https://api-sandbox.nbp.gov.bd/payment/v1/transfers
Bill支付 https://api-sandbox.nbp.gov.bd/billpay/v1/payments

4. Test Credentials (仅供测试使用)

Merchant账户:

Merchant ID: TESTMERCH001 
API Key: sb_test_1234567890abcdefghijklmnopqrstuvwxyz

Customer账户:

Mobile Wallet: +88017XXXXXXXX (使用任何以+88017开头的号码)
PIN:1234 (所有test账户通用)

5 .常见交易场景示例代码(Python)

import requests

# OAuth认证获取token
auth_url = "https://api-sandbox.nbp.gov.bd/oauth/token"
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": "Basic [base64 encoded client_id:client_secret]"
}
data = {
"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]",
"amount":100,
# ...其他必填字段参考API文档...
}

qr_headers={
'Authorization': f'Bearer {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 key/OAuth token是否有效且未过期
-403 Forbidden→确认您的商户账号有执行该操作的权限

日志记录建议:

curl-v-X POST\ https:/...\
-H"Authorization:Bearer $TOKEN"\
-d@request_body.json>response.log

7 .限制与配额

SandBox环境下有以下限制:
•单笔交易金额不超过10万塔卡(BDT)
•每日累计交易额不超过50万塔卡
•每分钟最多30次API调用

8 .支持渠道

遇到问题时可通过以下方式寻求帮助:
•Email:[email protected]
•Slack:NBP开发者社区
•电话:+880XXXXXXX(周一至周五9AM—5PM GMT+6 )

孟加拉支付沙箱环境测试指南(续)

9. 测试用例设计建议

9.1 核心支付场景

  • 成功支付流程:小额(10 BDT)、标准金额(500 BDT)、边界值(99,999 BDT)
  • 失败场景::
    • PIN错误连续输入(测试3次锁定机制)
    • 余额不足交易
    • QR码过期交易(默认15分钟有效期)

9.2 API验证矩阵

API方法 HTTP status code JSON响应字段
POST /payments 201 Created transactionId, status: "PENDING"
GET /transactions/{id} 200 OK settlementAmount, feeDetails
DELETE /payments/{id} (退款) 202 Accepted reversalReference

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 .安全合规要求

必须实现的防护措施:

  1. 传输加密:所有请求强制使用TLS1.2+

    # Nginx示例配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
  2. 敏感数据脱敏::

    # Python日志过滤示例 
    import logging

    class SensitiveDataFilter(logging.Filter):
    def filter(self, record):
    if 'pin' in record.getMessage().lower():
    return False
    return True

3.认证增强建议

POST /auth/token HTTP/1.
HOST : api-sandbox.nbp.gov.bd
Authorization : Basic base64(client_id:SHA256(client_secret+timestamp))
X-TIMESTAMP :20240605T143812Z

12 .性能基准参考

在AWS t3.xlarge实例上测得:
•平均响应时间 :120±25ms(P95)
•吞吐量 :220TPS(持续负载下 )
•冷启动延迟 :首次调用额外300—500ms

13 .生产切换检查清单

完成沙箱测试后,请确认:

✅ [ ] IP白名单已提交至NBP运维团队
✅ [ ] SSL证书由受信CA签发且未过期
✅ [ ] Error Code处理覆盖率达到100%
✅ [ ] Mock数据与真实账户完成切换


如需获取完整版《孟加拉国电子支付系统集成规范》PDF,请发送正式申请邮件至[email protected] ,邮件标题格式:"[API DOC REQUEST] {公司名称}"