알리페이 해외결제 검증 중 NOT_FOUND_PAYMENT_SESSION 오류 문의
안녕하세요. 토스페이먼츠 위젯을 이용하여 서비스를 운영하고 있습니다.
현재 해외결제 시 페이팔은 정상적으로 결제 검증이 이루어지지만, 알리페이로 결제했을 때 아래와 같은 응답이 반환되고 있습니다:
json
{
"code": "NOT_FOUND_PAYMENT_SESSION",
"message": "결제 시간이 만료되어 결제 진행 데이터가 존재하지 않습니다."
}
문제 상황:
paymentKey를 검증 요청에 사용한 후, 이후 동일한 paymentKey로 요청하면 404가 반환된다는 내용을 확인했습니다. 이에 따라 paymentKey를 처음 요청 시 사용하지 않고 썬더클라이언트로 검증 요청을 시도했으나 동일한 오류가 발생했습니다.
PENDING 상태가 반환되면 재요청으로 처리할 수 있지만, 404 응답이 즉시 반환되어 결제 상태 확인 자체가 어렵습니다.
404 응답이 반환된 이후에도 시간 간격을 두고 총 5회 재요청(2초 간격)을 시도했으나 여전히 NOT_FOUND_PAYMENT_SESSION 오류가 발생했습니다.
요청 데이터 샘플:
요청 URL: https://api.tosspayments.com/v1/payments/{paymentKey}
HTTP 헤더:
Authorization: Basic {Base64EncodedSecretKey}
Content-Type: application/json
요청 바디:
json
{
"orderId": "MC44NDczODE2NDA2NTQ1",
"amount": 0.08
}
문의 내용:
위와 같은 문제 상황에서 404가 반환되는 이유가 무엇인지 확인 부탁드립니다.
알리페이 결제 시 NOT_FOUND_PAYMENT_SESSION 오류를 방지하려면 어떤 설정이나 절차를 추가로 확인해야 할까요?
26 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
paymentKey를 검증 요청에 사용한다는게 무슨 말씀이신가요?
paymentKey를 검증 요청을 어떤식으로 하는지 설명 부탁드립니다.
https://api.tosspayments.com/v1/payments/confirm
이 URL 을 통해 넘어온 response 와 결제 진행시 넘긴 금액을 비교하고 정상적으로 결제 됐는지 확인하기 위해 결제검증을 요청하고 있습니다.
그런데 다른 결제 수단은 정삭적으로 200 OK 를 넘겨 받는데 알리페이만 404를 반환하고 있네요 ㅠㅠ
네 결제검증을 어떻게 요청하시는데요?
아 https://api.tosspayments.com/v1/payments/confirm 이걸 호출해서 받은값과 저장하셨던 값을 비교하신다는 거죠?
알리페이는 https://api.tosspayments.com/v1/payments/confirm 이걸 안쓰는 방식입니다.
죄송합니다. confirm 제거입니다
클라이언트에서 서버 api 로 요청을 하고 서버에서
https://api.tosspayments.com/v1/payments/tdail20241217211853Vicy0
이렇게 요청을 보내고 있습니다
tdail20241217211853Vicy0 이게 알리페이로 결제하신 payment key 이신거죠?
네네 테스트 결제시 사용된 paymentKey 입니다
토스페이먼츠 사이트에서 직접 curl 요청을 했을때는 정상적으로 response를 반환받는걸로 보이는데
저희 서버에서 요청을 했을 시에 다른 결제 수단과 마찬가지로 같은 결제 검증 로직을 수행하는데 알리페이만 결과가 저렇네요...
알리페이는 pendingUrl로 넘기는데 이 부분은 다른 결제 검증 로직을 수행해야하는 부분인가요?
조회 request header ㅇ 값이 이상하게 들어온것 같은데요.
request header 값이 어떻게 넘어갔을까요?
아 잠시만요.
넵!
혹시 조회요청을 POST 하셨나요?
네네 GET 요청으로 문서상에는 되어있긴한데 다른 결제 수단은 POST 요청으로 잘 넘어오길래 POST 로 요청했고
그게 문제인가 싶어서 POST 를 GET으로 변경했는데도 같은 결과가 있었습니다!
https://api.tosspayments.com/v1/payments/%7BpaymentKey%7D 이거를 post 로 보내시는것 같은데요.
GET 과 post 는 용도가 다릅니다.
get 으로 지금 한번 보내보실수 있을까요? GET 으로 들어온 로그는 없어서요.
네넵 잠시만요!
요청했습니다!
paymentKey는 tdail20241218100525UDZc0
입니다
tdail20241217211853Vicy0
이 거래건 로그를 봤는데
17일 21시 19분 즈음에 "조회" 만 있었고 (GET)
승인 요청은 18일 오전 9시 25분에 있었습니다. (POST)
17일 저녁에 승인이 없어서 만료된 것이 맞는것 같고
tdail20241218100525UDZc0
이건 한번 볼게요
넵
10시 5분에 post 로 보내신거죠?
아뇨 GET 요청했습니다
POST로 넘어갔을까요..?
저희 로그에는 post 입니다.
10시 5분 56초구요.
GET 은 7분 에 있는것 같네요
아 7분에 Get 요청이 있네요.
근데 이때는 tsdaily51c6 이 키로 요청하셨어요.
post 요청은 위젯키로 요청하셨구요.
GET 으로 하시고 키 확인부탁드립니다.
post 요청이 서버에서 넘어간거 같네요...
get 요청은 토스페이먼츠 사이트에서 요청한 로그인거 같아요!
일단 다시 체크해보겠습니다!
감사합니다 🙂
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.