孟加拉支付沙箱环境测试指南
孟加拉支付沙箱环境测试指南
1. 概述
本指南为开发者和测试人员提供在孟加拉国支付系统沙箱环境中进行集成和测试的详细说明。沙箱环境模拟了真实支付系统的行为,但不涉及实际资金流动。
2. 获取访问权限
2.1 注册流程
- 步骤1:访问孟加拉国中央银行(NBP)开发者门户
- 步骤2:填写开发者注册表并提供必要文件(公司注册证明、税务ID等)
- 步骤3:等待审核(通常需要3-5个工作日)
2.2 API密钥获取
通过审核后,您将获得:
- Sandbox API密钥
- Merchant ID/Test Account
- API文档访问权限
3. Sandbox端点URLs
服务类型 | Sandbox 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 |
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状态码 | 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 .安全合规要求
必须实现的防护措施:
-
传输加密:所有请求强制使用TLS1.2+
# Nginx示例配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
-
敏感数据脱敏:
# 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] {公司名称}"