Руководство по тестированию среды платежной песочницы Бангладеш

Руководство по тестированию среды платежной песочницы Бангладеш

1. Обзор

В этом руководстве разработчики и тестировщики найдут подробные инструкции по интеграции и тестированию в среде "песочницы" Бангладешской платежной системы. Среда "песочницы" имитирует поведение реальной платежной системы, но не предполагает реальных денежных потоков.

2. Получение доступа

2.1 Процесс регистрации

2.2 Приобретение ключей API

Пройдя проверку, вы получите:

  • Ключ API песочницы
  • Идентификатор торговца/тестовый счет
  • Доступ к документации 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

Счет клиента.

Мобильный кошелек: +88017XXXXXXXXXX (используйте любой номер, начинающийся с +88017)
PIN:1234 (общий для всех тестовых аккаунтов)

5 . Примеры кода для распространенных торговых сценариев (Python)

запросы на импорт

Аутентификация # OAuth для получения токена
auth_url = "https://api-sandbox.nbp.gov.bd/oauth/token"
заголовки = {
"Content-Type": "application/x-www-form-urlencoded",
"Авторизация": "Basic [base64 encoded 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'Bearer {access_token}',
'Content-Type':'application/json'
}

qr_response=requests.post(
'https://api-sandbox.nbp.gov.bd/qr/v1/payments',
json=qr_payload.
заголовки=qr_headers
)

print(qr_response.json())

6 . Советы по обработке ошибок и отладке

Общие коды состояния HTTP.
-400 Bad Request → Проверьте правильность формата запроса.
-401 Unauthorized → Убедитесь, что ваш ключ API/OAuth-токен действителен и не просрочен.
-403 Запрещено→Подтвердите, что ваш торговый счет имеет разрешение на выполнение этой операции.

Рекомендации по ведению журнала.

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

7 . Ограничения и квоты

Среда SandBox имеет следующие ограничения:
-Сумма одной операции не превышает 100 000 така (BDT)
-Суммарные ежедневные операции, не превышающие 500 000 така в день
-До 30 вызовов API в минуту

8 . Каналы поддержки

Ниже перечислены способы получить помощь, если у вас возникли проблемы:
-Электронная почта.[email protected]
-Черный.Сообщество разработчиков 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 Создано transactionId, статус: "PENDING"
GET /transactions/{id} 200 OK settlementAmount, feeDetails
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: аналоговая задержка сети (по умолчанию 150 мс)
  • FAILURE_RATE: процент автоматических неудачных запросов (для стресс-тестирования)

11 . Требования к соответствию требованиям безопасности

Защитные меры, которые должны быть реализованы:

  1. зашифрованная передача: Обязательное использование TLS 1.2+ для всех запросов

    Пример конфигурации # Nginx
    ssl_protocols TLSv1.2 TLSv1.3.
    ssl_ciphers HIGH:!aNULL:!MD5;
  2. Десенсибилизация чувствительных данных::

    Пример фильтрации журналов # на языке Python 
    импорт протоколирования

    класс SensitiveDataFilter(logging.Filter).
    def filter(self, record).
    если 'pin' в record.getMessage().lower():
    вернуть False
    вернуть True

3.Рекомендации по улучшению аккредитации

POST /auth/token HTTP/1.
HOST : api-sandbox.nbp.gov.bd
Авторизация : Basic base64(client_id:SHA256(client_secret+timestamp))
x-timestamp :20240605t143812z

12 . Эталонный показатель производительности

Измерено на экземпляре AWS t3.xlarge.
-Среднее время отклика: 120±25 мс (P95)
-Пропускная способность: 220TPS (при длительной нагрузке)
-Задержка при холодном старте: 300-500 мс дополнительно для первого вызова

13 . Контрольный список по переключению производства

После завершения теста в "песочнице", пожалуйста, подтвердите:

✅ [ ] Белые списки IP-адресов были переданы команде NBP Ops
✅ [ ] Сертификат SSL выпущен доверенным центром сертификации и срок его действия не истек
✅ [ ] Охват обработки кодов ошибок до 100%
✅ [ ] Переключение на макетные данные и реальные счета завершено


Чтобы получить полную версию "Спецификации для интеграции электронных платежных систем в Бангладеш" в формате PDF, отправьте официальный запрос по электронной почте на адрес[email protected] , формат темы письма: "[API DOC REQUEST] {название компании}".