인증 방식 가이드
인증은 가맹점의 신원을 확인하고 안전하게 요청을 처리하기 위한 과정이에요.
다날 결제 API에서는 인증 방식으로 Basic Auth 를 사용해요.
Secret Key 기반의 Basic Auth 인증은 단순하지만 민감한 정보 전송을 포함해요.
Basic Auth란?
다날이 사용하는Basic Auth는 가장 널리 사용되는 HTTP 인증 방식이에요.
ID와 비밀번호를 결합한 값을 Base64로 인코딩하여 Authorization 헤더에 포함시켜요.
Base64는 쉽게 디코딩할 수 있기 때문에 반드시 HTTPS 환경에서만 사용해요.
인증 절차
다날의 Basic 인증 방식은 3단계로 이루어져요.
1. Secret Key 준비
다날 결제 API 사용을 위해 Secret Key를 준비해주세요.
Secrety Key는 서버 간 통신에만 사용되며, 절대 브라우저나 외부에 노출되지 않도록 주의해주세요.
유출이 되었다면 즉시 폐기하고 재발급 요청해주세요.
Secret Key가 없으신가요?
시크릿 키는 계약이 완전히 완료된 후에 발급받을 수 있어요.
아직 테스트 단계라면 다날 영업 또는 계약 담당자에게 문의해주세요.
2. Authorization 헤더 생성
STEP 01
Secret Key와 콜론(:)을 연결Secret Key 뒤에 콜론(:)을 연결해 문자열을 만들어요.
test_secret_key:
STEP 02
연결한 값을 Base64로 인코딩연결된 문자열을 Base64 방식으로 인코딩해요.
Base64("test_secret_key:") → dGVzdF9jbGllbnRfa2V5Og==
STEP 03
Basic 접두어(Prefix) 추가인코딩된 문자열 앞에 Basic 접두어을 붙여 최종 인증 문자열을 만들어요.
Basic dGVzdF9jbGllbnRfa2V5Og==
STEP 04
HTTP Authrization 헤더 설정이 문자열을 HTTP 요청의 Authorization 헤더에 포함시켜주세요.
Authorization: Basic dGVzdF9jbGllbnRfa2V5Og==
3. 요청
이제 결제 승인을 요청할 수 있어요.
헤더에 Authorization 값을 포함시키고, POST 방식으로 데이터를 전송해요.
# Linux & MacOS \
curl -X POST https://one-api.danalpay.com/payments/confirm \
-H "Authorization: Basic dGVzdF9jbGllbnRfa2V5Og==" \
-H "Content-Type: application/json" \
-d '{
"method": "CARD",
"transactionId": "1234567890",
"merchantId": "M0001",
"amount": "1000"
}'
# Windows ^
curl -X POST https://one-api.danalpay.com/payments/confirm ^
-H "Authorization: Basic dGVzdF9jbGllbnRfa2V5Og==" ^
-H "Content-Type: application/json" ^
-d "{
\"method\": \"CARD\",
\"transactionId\": \"1234567890\",
\"merchantId\": \"M0001\",
\"amount\": \"1000\"
}"
주의사항
- Basic 인증은 Base64 디코딩만으로 Credential이 쉽게 노출될 수 있습니다.
- 서버간(Backend-to-Backend) 통신에서만 사용하며, 반드시 HTTPS(SSL/TLS) 환경에서 전송하세요.