next js, typescript 서비스 연동 중입니다.
결제 위젯은 잘 뜨고 결제창은 잘 넘어가는데 계속 실패가 뜨네요.
결제 실패 창이 뜨면 url에 '인증되지%20않은%20시크릿%20키%20혹은%20클라이언트%20키%20입니다.'
이렇게 뜹니다.
GitHub sample이 page라우터 기준이라 app라우터를 쓰는 현재 버전에선 조금 헷갈리네요.
파일구조는 (payments)내부에 payments, success, fail 이렇게 이루어져 있고 .env에 client key, secret key 기입되어 있는 상태입니다.
payments가 checkout에 해당하는 페이지이고 clientKey가 정의되어 있습니다. 그리고 success에는 secretKey가 정의되어 있고요.
15 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
키값을 제대로 사용하셨는지 확인이 필요합니다. 주문번호 알려주시겠어요?
tMt42SMd_E1OL7khJFgeS 입니다
successUrl에서 header에 secretKey가 제대로 전달되는지 확인 부탁드려요. secretKey가 잘려서 전달되는 것으로 확인됩니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
지난번에 추가해서 질문드려도 괜찮을까요? 그 문제는 base64에 인코딩하지 않은 것이 원인이라 해결했는데 이제 성공페이지가 잠깐 노출되고 바로 실패 페이지로 리다이렉션 되는데 어디가 문제일까요?
결제내역을 보면 완료라고 떠있고 에러코드는 FAILED_INTERNAL_SYSTEM_PROCESSING입니다
영상으로 한번 제공해주시겠어요?
영상 찍기 전에 혹시나 해서 쿠키 삭제를 했는데, 지금은 그냥 바로 실패페이지로 넘어갑니다. 결제 내역은 완료로 잡히고요
결제 내역 확인은 토스페이먼츠 측 결제조회 등으로 확인 하셨을까요?
넵. 결제 조회로 확인했는데 완료라고 뜹니다. 셈플코드에 있는 getServerSideProps가 13버전에서는 작동하지 않는 것 같아 searchParams로 변경했는데 success 페이지의 코드가 잘못된 것 같은데 어떻게 바꿔야 할지 모르겠네요.
https://github.com/tosspayments/payment-widget-sample/tree/main/nextjs
이것 기준으로 연동 중 이신거지요?
GitHub
payment-widget-sample/nextjs at main · tosspayments/payment-widget-...
토스페이먼츠 결제위젯 샘플 앱입니다. . Contribute to tosspayments/payment-widget-sample development by creating an account on GitHub.
원글을 보니 Next.js 13/14의 App Router로 새로 짜셨다고 되어있네요.
이실장님 말씀 처럼, 영상하고
FAILED_INTERNAL_SYSTEM_PROCESSING 이 에러 응답받은 주문번호 공유 주시면 로그 확인 해보겠습니다.
@jin_rros
🫖 에러메세지를 찾아주세요 🧚
* code :
FAILED_INTERNAL_SYSTEM_PROCESSING
* message : [0033] 가상계좌 발급요청하신 은행코드[03]은 이용불가한 기관입니다.#
🧞 발생가능한 에러를 모두 알려드려요~
🔮 가상계좌
🔮 공통
🔮 공통
🔮 공통
🔮 신용카드
🔮 휴대폰
🔮 공통
🔮 휴대폰
🔮 공통
🔮 휴대폰
🔮 휴대폰
🔮 공통
🔮 공통
🔮 가상계좌
🔮 신용카드
🔮 공통
🔮 공통
🔮 가상계좌
🔮 공통
🔮 가상계좌
🔮 공통
🔮 가상계좌
🔮 가상계좌
🔮 공통
🔮 신용카드
🔮 공통
🔮 공통
🔮 신용카드
🔮 신용카드
🔮 공통
```- 예상문제 : 요청한 LGD_PAYKEY 가 존재하지 않습니다.
- 해결방안 : 승인요청하신 paymentkey 와 보내주신 key 가 일치하지 않거나 잘못된 paymentkey를 이용해서 결제를 요청하셨습니 ......(생략)예상문제는 상점관리자에서 주문번호 별로도 확인가능해요!
설명 주신 내용을 보니,
success 에서 결제 승인 성공 후 처리 할때에
뭔가 중복으로 다시 수행 되는 듯한 느낌 이기는 한데,
success 부분을 새롭게 구성하여 작업하셨다고 하니,
어떻게 작업하셨는지 저희가 알 수 없어서 자세하게 설명 드리기에 제한이 있네요
getServerSideProps 대체해서 구현한 부분에서
쿼리파람 처리 및 API 호출 부분을 어떻게 구현 하셨는지,
승인 API 호출 이후 성공페이지 렌더링 쪽 구현한 부분에서 특정 API 의 중복 호출등 이슈가 있는 지점은 없는지, 또는 failurl 쪽 렌더하는 부분으로 구현이 되어 있지 않은지 등등 부분을 보셔야 정확하게 이슈 확인할 수 있을것 같습니다.