피드로 돌아가기
CF7 Webhook Getting a 400 Bad Request? The Problem Is Probably Not JSON Encoding
Dev.toDev.to
Backend

디버그 로그 오인으로 인한 JSON 인코딩 이슈 오진 및 필드 매핑 오류 해결

CF7 Webhook Getting a 400 Bad Request? The Problem Is Probably Not JSON Encoding

Rahul Sharma2026년 6월 18일6beginner

Context

CF7 Webhook을 통한 외부 REST API 연동 중 400 Bad Request 발생. PHP 디버그 로그의 문자열 표현 방식(String Representation)을 실제 네트워크 전송 바이트로 오인하여 JSON Double-encoding 문제로 잘못 진단한 상황.

Technical Solution

  • PHP var_dump 및 로그 출력 시 발생하는 Escape character를 실제 Payload 구조와 분리하여 분석
  • API Response의 Validation Error 메시지를 기반으로 Request Body의 스키마 불일치 지점 식별
  • _notify_leadtype_id와 같은 내부 필드명 대신 API 명세서의 leadtype_id로 필드 매핑 수정
  • 정적 값(Static Value)과 동적 폼 데이터(Dynamic Field)를 혼합 전송하는 Payload 구성 로직 검증
  • cURL을 이용한 직접 호출 테스트로 Plugin 레이어와 API 엔드포인트 간의 책임 분리 및 검증

1. API 400 에러 발생 시 Response Body의 Validation 메시지를 최우선으로 확인하여 누락된 필드 식별

2. 공식 API Reference의 필드명과 Case-sensitive 여부를 대조하여 정확한 Key 값 매핑

3. 언어별 로그 출력 방식에 따른 Escape character와 실제 전송되는 Binary 데이터의 차이 인지

4. 통합 테스트 전 cURL 또는 Postman을 통해 최소 단위의 Payload 전송 성공 여부 우선 검증

5. Static Value와 Dynamic Value의 혼합 전송 지원 여부를 Plugin/Library 수준에서 확인

원문 읽기