방글라데시 결제 샌드박스 환경 테스트 가이드라인

방글라데시 결제 샌드박스 환경 테스트 가이드라인

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"
헤더 = {
"콘텐츠 유형": "application/x-www-form-urlencoded",
"권한 부여": "기본 [base64 인코딩된 client_id:client_secret]"
}
data = {
"grant_type": "client_credentials"
}
응답 = requests.post(auth_url, headers=headers, data=데이터)
access_token = response.json()["access_token"]

# QR 결제 요청 예시
qr_payload = {
"merchantId": "[YOUR_MERCHANT_ID]",
"amount":100,
# ... 기타 필수 필드는 API 설명서를 참조하세요...
}

QR_헤더={
'권한': f'무기명 {access_token}',
'Content-Type':'application/json'
}

qr_response=requests.post(
'https://api-sandbox.nbp.gov.bd/qr/v1/payments',
json=qr_payload.
헤더=QR_헤더
)

print(qr_response.json())

6 . 오류 처리 및 디버깅 팁

일반적인 HTTP 상태 코드.
-400 잘못된 요청 → 요청 형식이 올바른지 확인합니다.
-401 권한 없음 →API 키/OAuth 토큰이 유효하고 만료되지 않았는지 확인합니다.
-403 금지됨→판매자 계정에 이 작업을 수행할 수 있는 권한이 있는지 확인합니다.

권장 사항 로깅.

curl-v-X POST\ https:/... \
-"권한 부여: 무기명 $TOKEN"\
-d@request_body.json>response.log

7 . 제한 및 할당량

샌드박스 환경에는 다음과 같은 제한 사항이 있습니다:
-단일 거래 금액이 Tk. 100,000 (BDT)를 초과하지 않습니다.
-일일 누적 거래액이 Tk. 500,000을 초과하지 않아야 합니다.
-분당 최대 30건의 API 호출

8 . 지원 채널

다음은 문제가 발생했을 때 도움을 받을 수 있는 방법입니다:
-이메일.[email protected]
-슬랙.NBP 개발자 커뮤니티
-전화: +880XXXXXXX(월~금 오전 9시~오후 5시 GMT+6)

방글라데시에서 결제 샌드박스 환경을 테스트하기 위한 가이드라인(계속)

9. 테스트 케이스 설계 권장 사항

9.1 핵심 결제 시나리오

  • 성공적인 결제 프로세스:: 소량(10 BDT), 표준 금액(500 BDT), 경계값(99,999 BDT)
  • 실패 장면::
    • PIN 오류 연속 입력(잠금 메커니즘에 대해 3번 테스트)
    • 잔액 부족 거래
    • QR코드 만료된 거래(기본 15분 만료)

9.2 API 유효성 검사 매트릭스

API 메서드 HTTP 상태 코드 JSON 응답 필드
POST /결제 201 생성됨 트랜잭션Id, 상태: "보류 중"
GET /거래/{id} 200 OK 결제금액, 수수료 세부 정보
결제 /결제/{ID} 삭제(환불) 202 수락됨 반전참조

10 . 로컬 시뮬레이션 도구

Docker 이미지 빠른 배포:

도커 실행 -p8080:8080 nbp/샌드박스-시뮬레이터:v2.4 \
-e 모의_응답_지연=200ms \
-e FAILURE_RATE=5%

구성 매개변수 설명:

  • DELAY_MS: 아날로그 네트워크 지연(기본값 150ms)
  • 실패율: 자동화된 실패 요청의 비율(스트레스 테스트용)

11 . 보안 규정 준수 요구 사항

반드시 실현해야 하는 보호 조치:

  1. 암호화된 전송모든 요청에 TLS 1.2+ 사용 의무화

    # Nginx 샘플 구성
    ssl_프로토콜 TLSv1.2 TLSv1.3.
    ssl_ciphers HIGH:!aNULL:!MD5;
  2. 민감한 데이터 무감각화::

    # Python 로그 필터링 예제 
    로깅 가져오기

    클래스 SensitiveDataFilter(logging.Filter).
    def filter(self, record).
    record.getMessage().lower()에 'pin'이 있으면:
    반환 거짓
    True를 반환합니다.

3.인증 개선 권장 사항

POST /auth/token HTTP/1.
호스트 : api-sandbox.nbp.gov.bd
인증 : 기본 base64(client_id:SHA256(client_secret+타임스탬프))
X-타임스탬프 :20240605T143812Z

12 . 성능 벤치마크 참조

AWS t3.xlarge 인스턴스에서 측정되었습니다.
-평균 응답 시간: 120±25ms(P95)
-처리량: 220TPS(지속적 부하 시)
-콜드 스타트 지연 시간: 첫 번째 통화 시 300-500밀리초 추가

13 . 프로덕션 전환 체크리스트

샌드박스 테스트를 완료한 후 확인하시기 바랍니다:

✅ [ ] IP 화이트리스트가 NBP 운영팀에 제출되었습니다.
✅ [ ] 신뢰할 수 있는 CA에서 발급한 SSL 인증서이며 만료되지 않았습니다.
✅ [ ] 오류 코드 처리 범위 최대 100%
✅ [ ] 모의 데이터 및 실제 계정 전환 완료


"방글라데시 전자 결제 시스템 통합을 위한 사양"의 전체 버전을 PDF로 받으려면 다음 주소로 공식 요청 이메일을 보내주세요.[email protected] 이메일 제목 형식: "[API 문서 요청] {회사 이름}"