토스페이먼츠 결제 취소 웹훅 관련 문의드립니다.
안녕하세요, 결제 취소 Webhook 관련 문의드립니다.
먼저 테스트 환경은 다음과 같습니다.
1. 테스트 Webhook
2. 라이브 Webhook
저희가 사용하고 있는 토스페이먼츠 Webhook Event 는 다음과 같습니다.
-
토스페이먼츠 공식 문서에 따르면,
https://docs.tosspayments.com/reference#payment-%EA%B0%9D%EC%B2%B4
문제는 저희 측에서 "토스페이먼츠 - 상점 - 결제 내역 - 결제취소" 를 진행하였을 때 전송된 Webhook 을 처리하는 과정에서 다음과 같은 에러가 발생합니다.
즉, 결제취소 시
테스트 환경에서의 Webhook 테스트 시에는
라이브 환경에서의 Webhook 테스트 시에는
정리하자면,
Webhook 의
또한 동일한 조건에서, 테스트 Webhook 환경과 라이브 Webhook 환경의 결과가 다릅니다.
version field 의 index 가 우선이므로 에러는 해당 필드에서 발생하였지만 다음 field 에서의 동일한 문제가 발생할 가능성이 있습니다.
라이브 Webhook 환경에서, 공식문서에 기반한 응답값 체크확인 부탁드립니다.
먼저 테스트 환경은 다음과 같습니다.
1. 테스트 Webhook
2. 라이브 Webhook
저희가 사용하고 있는 토스페이먼츠 Webhook Event 는 다음과 같습니다.
-
PAYMENT_STATUS_CHANGED토스페이먼츠 공식 문서에 따르면,
PAYMENT_STATUS_CHANGED Event 의 응답 객체는 아래와 같습니다.https://docs.tosspayments.com/reference#payment-%EA%B0%9D%EC%B2%B4
문제는 저희 측에서 "토스페이먼츠 - 상점 - 결제 내역 - 결제취소" 를 진행하였을 때 전송된 Webhook 을 처리하는 과정에서 다음과 같은 에러가 발생합니다.
즉, 결제취소 시
PAYMENT_STATUS_CHANGED Event 를 통해 받은 토스페이먼츠 Json 에 version field 정보가 없어 Deserialize 에러가 발생하는데, 공식 문서에는 version field 가 Notnull 로 명시 되어있습니다.테스트 환경에서의 Webhook 테스트 시에는
version field 가 담겨 정상적으로 응답하지만,라이브 환경에서의 Webhook 테스트 시에는
version field 가 담겨오지 않아 Decode 에러가 발생합니다.정리하자면,
Webhook 의
PAYMENT_STATUS_CHANGED Event 를 통한 응답객체의 데이터 중 version field 가 문서에는 Notnull 이지만 Null로 들어와 Decode 에러가 발생합니다.또한 동일한 조건에서, 테스트 Webhook 환경과 라이브 Webhook 환경의 결과가 다릅니다.
version field 의 index 가 우선이므로 에러는 해당 필드에서 발생하였지만 다음 field 에서의 동일한 문제가 발생할 가능성이 있습니다.
라이브 Webhook 환경에서, 공식문서에 기반한 응답값 체크확인 부탁드립니다.

