프로덕션 환경 결제위젯
안녕하세요!
현재 토스페이먼츠 테스트를 위한 결제위젯을 설정 후 개발환경에서 잘 작동하는 걸 확인 했는데,
실 환경 (프로덕션) 으로 배포 후 다시 테스트해보니 승인요청 중 화면에서 결제 승인하기 버튼을 눌러도 아무런 동작을 안 합니다! (첨부 이미지 화면에서 멈춰있는 상태)
연동하기 안내에 작성되어 있는 테스트용 Authorization 코드를 이용하여 post요청(https://api.tosspayments.com/v1/payments/confirm) 을 보냈는데 혹시 프로덕션 환경에서는 작동을 안 하는 것인지 궁금하여 문의드립니다!
37 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
안녕하세요, 안되는 상태의 결제시 사용하신 주문번호를 알려주세요
가맹점의 테스트, 라이브 환경에 무관하게 당사의 테스트키는 자유롭게 사용 가능합니다.
물론 대고객 라이브결제시에는 테스트키를 사용하시면 안됩니다.
rovCJbQJ3wnnoED 주문번호 입니다! 어제 테스트했다가 결제승인에서 넘어가지 못하여 결제상태 만료로 처리되어있습니다!
토스페이먼츠 개발자센터
토스페이먼츠 결제 연동 문서, API, 키, 테스트 내역, 웹훅 등록 등 개발에 필요한 정보와 기능을 확인해 보세요. 결제 연동에 필요한 모든 개발자 도구를 제공해 드립니다.
앗 아닙니다!
넵! 확인하고 안내드릴게요
감사합니다!!
토스페이 간편결제이신가요?
네 맞습니다!
{"code":"EXPIRED_PAYMENT","message":"결제가 만료되었습니다. 다시 시도해주세요."}
이렇게 받으셨을텐데요
결제창 생성 html 도 공유 가능하실까요?넵 잠시만요!
요게 코드는 다 같은데 개발환경에선 결제승인까지 잘 동작하다가 프로덕션환경에서 진행하니 저 결제승인에서 버튼을 눌러도 아예 동작을 하지 않아서 api 전송할때의 문제인가 했습니다 ㅠㅠ 바로 공유 드리겠습니다!
음 넵, 잠시만요
연동하기 안내에 작성되어 있는 테스트용 Authorization 코드를 이용하여 post요청(https://api.tosspayments.com/v1/payments/confirm) 을 보냈는데
이것의 응답을 못받으신거같아요
저희쪽에 승인요청이 들어오지 않았고 그래서 인증 후 승인시간이 만료되었어요엇 코드가 길어서 전송을 못 하는데 캡쳐해서 보내드려도 괜찮을까요?
아아
{"code":"EXPIRED_PAYMENT","message":"결제가 만료되었습니다. 다시 시도해주세요."}
이건 웹훅을 수신하셔야 확인가능한 메시지입니다
코드는 techsupport@tosspayments.com 으로 보내주세요
confirm 을 보내는 서버에서 api.tosspayments.com 443 으로 접속이 가능하신지 확인해보셔야 해요코드는 방금 메일로 보냈습니다!
넵 서버에서
telnet api.tosspayments.com 443
이렇게도 바로 확인되십니다그럼 웹훅 저 부분을 찾아서 설정하면 되는걸까요..?
웹훅은 선택사항이라 받으셔도 되고 안받으셔도 됩니다.
지금 문제의 해결은
실 환경 (프로덕션) 에서 저희 서버로 통신이 되는지를 확인 하시면돼요
메일은 잘 받았어요, 특이사항이 있는지만 점검해볼게요
동일 서버에서 키만 변경하신건가요?
Authorization에서 사용하고 있는 부분 말씀하시는 걸까요?!
네
똑같이 사용하고 있습니다!
아 실 환경으로 배포했다고 하시는것 보니까 서버가 변경되신것 같네요.
네 맞습니다!
그러면 실 서버의 outbound 방화벽을 확인해주셔야 할것 같습니다.
방화벽에 차단되어 저희쪽으로 요청이 아예 안온것 같아요.
앗 넵 감사합니다! 확인 후 다시 말씀 드리겠습니다!!
혹시 요 두개를 추가하면 될까요?!

네 맞습니다
추가 후 telnet 으로 접속테스트를 해보시면 더 확실합니다
넵 감사합니다!!
음.. 근데 현재 프론트에서 서버를 안 거치고 바로 토스측으로 post 요청을 보내고 있는데 혹시 이 상황에서도 위의 서버 아웃바운드 부분 설정이 필요한걸까요?! 현재 서비스에선 아예 서버쪽을 거치지 않는 상태라 급 궁금하여 질문 드립니다 🥲
frontend 에서 바로 요청을 하셔도 되어야 하는게 맞습니다.
apiKey 가 노출되시면 안될텐데요, 이부분은 따로 해결을 하신걸까요?
apiKey는 aws 환경변수로 설정해두었습니다!
테스트서버도 동일하게 구성하셨었을까요?
넵 같은 키로 설정하였습니다!
처음 문의주셨던 [결제 승인하기] 버튼이 나오는 시나리오가
인증결과를 successUrl 로 전달하는 과정이 오래걸리거나 안될때 보여지게 되어있어요
그러면 승인요청(confirm) 이전에 successUrl 로 받으시는 amount, orderId, paymentKey 가 잘 수신되는지를 보셔야해요
1. successUrl 은 잘 접속되는 상태인지
2. 된다면 뒤에 get 방식으로 parameter 를 붙였을때도 잘 접속되는지
3. get 으로 받은 parameter 가 잘 수신되었는지
4. 수신된 정보를 기반으로 api.tosspayments.com 으로 승인요청(confirm)이 잘 되었는지
순서대로 확인해보시면 될거같습니다.
친절한 설명 감사합니다! 해당 순으로 테스트해보고 결과 말씀드리겠습니다 🥹
안녕하세요! 해결되어 다시 댓글 남깁니다!
실 기기에서 paymentKey를 수신 받을 방법이 떠오르지 않아
테스트 기기로 진행하여 받은 결과를 바탕으로 실 프로덕션 웹으로 접속해봤는데
Authorization 부분을 확인해보니 프로덕션에선 언디파인드가 들어가있어서 401 에러가 발생하더라고요 하핫..
aws에서 Basic [키값] 이 통째로 설정해둔게 문제였었네요 Basic 문자열을 프론트 코드로 빼야했는데.. 아무튼 많은 도움 주셔서 정말 감사드립니다!!! 짱!
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.