가상계좌 입금완료 시 웹훅 이 실행된건지 확인해보고 싶습니다.
https://도메인/payment/webhook 으로 웹훅도메인 세팅했고
// 웹훅 (가상계좌 상태 변경 시)
@PostMapping("/payment/webhook")
public ResponseEntity<HttpStatus> webhook(){
log.info("webhook > 11]");
return ResponseEntity.ok(HttpStatus.BAD_GATEWAY);
}
이렇게 했을때 log 가 아예 찍히지 않아서 웹훅이 정상적으로 호출된게 맞는지 확인부탁드려요
일부러 200코드 안보내고 오류코드를 반환했는데도 웹훅쪽에는 정상으로 뜨구요
45 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
문의주신 내용은 직접 스프일부트 올리신 상태에서 직접 post 통신을 curl 이나 포스트맨으로 해보셔도 자체 확인 가능하십니다.
웹훅 테스트는 한번에 잘 안받아지시면
https://webhook.site/ 이런 사이트를 이용해서 어떤구조로 어떻게 들어오는지 를 확인하신 후 코드에 적용하시면 잘 되실거에요
안보내졌다고 생각되시는 거래의 키값 전달주시면 로그 확인해볼게요
Webhook.site - Test, transform and automate Web requests and emails
Instantly generate a free, unique URL and email address to test, inspect, and automate (with a visual workflow editor and scripts) incoming HTTP requests and emails
{
"createdAt": "2024-12-20T10:59:19.000000",
"secret": "ps_PBal2vxj81PLgjpMkzx2r5RQgOAN",
"orderId": "202412201058267cc3b3",
"status": "DONE",
"transactionKey": "txrd_a01jfgwmtz0zxh1xdh5pnqk1ta3"
}
이값이 전송완료라고 뜨는데 못받은거 같아서요
test 쪽입니다
네 확인해볼게요
포스트맨으로 했을때는 정상적으로 호출됩니다
입력하신 URL 이 외부 망에서 접속가능한 URL 인가요?
네네
URL 이 잘못 붙여 진것 같은데 설정하신 URL 좀 알려주세요
https://dev.unistudy.co.kr/payment/webhook
조금전에 소스 배포때문에 서버 재가동있어서 접속 안되셨을수 있어요 지금 재가동완료되어 사이트 접속됩니다
전건 잘 받으시는걸로 보입니다
이렇게 포스트 맨으로 했을때는 잘되는데
호출해주신걸로 했을땐 로그도 안찍혀서 호출이 안된거 아닐까 합니다
저희쪽에서는 응답도 200으로 받은것으로 확인됩니다.
아까 제가 응답을 bad_request 로 변경했었는데도 정상으로 뜨길래 이상해서요
저희쪽 로그로는 10시 59분에 202412201058267cc3b3 관련해서 정상 호출되었다고 남아 있습니다.
bad_request 변경후에 보내신 주문 번호를 알려주세ㅐ요.
지금 신규로 만들어서 드릴게요 잠시만요
{
"createdAt": "2024-12-20T11:53:19.000000",
"secret": "ps_KNbdOvk5rkyG96pjBwZw3n07xlzm",
"orderId": "20241220105844451d7c",
"status": "DONE",
"transactionKey": "txrd_a01jfgzqq90t557b93twszx2rw7"
}
return ResponseEntity.ok(HttpStatus.BAD_REQUEST);
위와 같이 리턴하였는데도 성공으로 뜹니다
포스트맨으로 호출시 bad request 뜨구요
HTTP Status Code 가 200 으로 보입니다.
보내주신 이미지에 보시면 있습니다
저희는 http status code 를 기준으로 성공 / 실패 여부를 확인 합니다.
200 이면 성공으로 인지합니다.
아 저 값이 아니라 그냥 200만 뜨면 성공이라는거군요
네 맞습니다
ResponseEntity.ok
이렇게 사용하시면 http 상태코드 200만 보내져요
넵 다시 소스 살펴보겠습니다 감사합니다
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
400 bad request 떴는데도 상점쪽에서는 성공으로 뜹니다 ㅠ 확인좀 부탁드립니다
이건 직접 보내신 거고 저희쪽에서 보낸건 아니라서요.
다시 가상계좌 발급받으시고 입금처리해서 시도해 보세요.
직접보낸건 참고로 보내드린 이미지이고
{
"createdAt": "2024-12-20T13:13:33.000000",
"secret": "ps_jExPeJWYVQlKPv55yxDg349R5gvN",
"orderId": "20241220131243be6faf",
"status": "DONE",
"transactionKey": "txrd_a01jfh4akv9vh507mze6syvh3r3"
}
그럼 400으로 응답해주신 주문번호 알려주세요.
이거 입니다
성공떠서 제가 포스트 맨으로 다시 호출해본겁니다
13시 13분 36초에 전송했는데 200 받았습니다.
저희 로그상으로요.
제가 지금 다시 해볼게요 400으로 return 해놓은 상태거든요
네 하고 알려주세요.
{
"createdAt": "2024-12-20T13:22:15.000000",
"secret": "ps_4yKeq5bgrp529Bz5RMEJ8GX0lzW6",
"orderId": "202412201313096cf689",
"status": "DONE",
"transactionKey": "txrd_a01jfh4tj59z3303m4dj5ktaza8"
}
이거요
동일하게 200을 받았어요.
소스 변경없이 포스트맨으로 동일한값 던지면 400 으로 뜨는걸 확인했는데
헤더가 이렇게 확인되는데요
connection: keep-alive
content-length: 946
content-type: text/html; charset=utf-8
date: Fri, 20 Dec 2024 04:22:16 GMT
server: awselb/2.0
토스쪽에서는 계속 200으로 받았다고 하셔서 ㅠㅠ
내부랑 외부랑 처리하는 서버가 다르신가 보네요.
제가 postman 으로 쏘면 이렇게 응답옵니다.
외부망에서 호출해 보세요.
아!? 헐 ㅠㅠ 감사합니다 서버쪽 개발자분께 확인해볼게요
이렇게 응답을 주고 계신것 같네요
넵 확인했어요 ㅠㅠ