피드로 돌아가기
Afriex Webhook Integration Guide: Signature Verification, Event Handling, and Production Best Practices
Dev.toDev.to
Backend

RSA-SHA256 검증과 Raw Body 처리를 통한 결제 웹훅 무결성 확보

Afriex Webhook Integration Guide: Signature Verification, Event Handling, and Production Best Practices

Victory Lucky2026년 5월 25일13intermediate

Context

결제 시스템의 비동기 상태 업데이트 과정에서 발생하는 데이터 불일치 및 중복 처리 문제 분석. 단순 API 응답만으로는 Transaction의 최종 상태를 확정할 수 없는 구조적 한계 존재.

Technical Solution

  • RSA-SHA256 기반의 x-webhook-signature 검증을 통한 요청 위조 방지 및 데이터 무결성 보장
  • JSON 파싱 전 Raw Body 바이트 기반의 검증을 수행하여 공백 및 직렬화 차이로 인한 서명 불일치 해결
  • 방화벽 IP Allowlist(Production: 34.197.33.100) 설정을 통한 네트워크 계층의 1차 보안 필터링 적용
  • 5초 이내 2xx 응답 후 비동기 처리를 수행하는 구조로 설계하여 핸들러 타임아웃 및 요청 누락 방지
  • Idempotency 설계를 통해 동일 이벤트의 중복 수신 시에도 시스템 상태의 일관성 유지
  • 11가지 세분화된 Transaction Status를 명시적으로 처리하여 예외 상황에 대응하는 상태 머신 구축

1. 웹훅 검증 시 반드시 JSON 파싱 전 단계의 Raw Body를 사용하고 있는가

2. 인프라 계층에서 송신측 공식 IP에 대한 Allowlist가 설정되었는가

3. 핸들러 응답 시간을 5초 이내로 유지하며 비동기 처리 큐를 활용하는가

4. 동일 이벤트 중복 수신에 대응하는 Idempotency 로직이 구현되었는가

5. 비정상 상태(IN_REVIEW, UNKNOWN 등)에 대한 폴백 및 처리 전략이 수립되었는가

원문 읽기