플러터 프로젝트 tosspayments_sdk_flutter 사용 중 궁금한 점 질문 드립니다.
현재 pub.dev에서 tosspayments_sdk_flutter 패키지를 사용중이고 카드결제 진행 시 transaction success! 와 함께 결제가 잘 진행되는데요. 저희가 백엔드쪽에서 successUrl, failUrl 정보를 함께 넘겨받아 toss 결제를 진행하는데 해당 라이브러리에는 class Constants {
static const success = 'tosspayments://payment/success';
static const fail = 'tosspayments://payment/fail';
}
위와같이 const 값으로 url이 설정되어 있는 것 같습니다. 결제 완료시 redirect url을 특정 url로 바꾸고자 한다면 어떤식으로 진행하면 좋을지 의견 부탁드립니다.
10 Replies
redirect시 왜 특정url로 바꾸시려는거죠?
sdk는 성공 후 결제창이 닫히면서 callback으로 인증정보(paymetKey등)을 전달드립니다.
이후 해당 정보로 진행해주시면 되요~!
저희 백엔드 개발팀에서, 설정한 url로 리다이렉트되면 그 결제 정보를 가지고 db에 해당 정보를 저장하는 방식으로 구현하였습니다. 그래서 자체 api인 checkout api를 통해 결제정보와 redirect url을 우선 전달받아 그 정보를 바탕으로 tosspayments 를 사용하는 방법으로 개발하였고, redirect 여부에 따라 서버에 데이터 저장 -> FE에서 db에서 데이터를 조회하는 방법으로 구현하였기에 질문드립니다.
결제하기 버튼 있는 페이지가 웹서버에 올라가있고 모두 웹뷰로 구성되어있나요?
flutter app component로 앱을 구현 중이신지, 아니면 웹서버 위에 웹뷰를띄워사용 중이신지 궁금합니다.
flutter component를 사용하여 구현중입니다.
redirect 여부에 따라 서버에 데이터 저장 -> FE에서 db에서 데이터를 조회하는 방법으로 구현하였기에 질문드립니다.
여기서 말하는 FE는 flutter 인가요 ?네 그렇습니다
정확한 flow는 모르지만 아래 2가지로 해결해주셔야할 것 같네요
- success callback에서 백엔드가 생성한 redirectUrl을 직접 호출
- lib를 수정해서 사용
우선 flutter sdk는 웹뷰를 띄워서 결제창을 띄워주고, 닫아주는 역할을 합니다.
이에 특정 succcess/failUrl로 이동 후,, 해당 url scheme을 인식해서 웹뷰를 닫아주고 있습니다.
네 이실장님 답변 감사드립니다. 백엔드측과 논의를 통해 어떤 방법으로 구현하는쪽이 좋을지 고민해 보도록 하겠습니다. 다시한번 친절한 답변 감사드립니다 🙂
네 만약 로직을 바꾸시기 어려울 경우 직접 구현하실 수도 있습니다.
현재 fluttersdk에서 제공하는 결제창 방식의 경우 그렇게 어렵지 않아서요
혹시 mid는 어떻게되시나요?
네 정 안되면 직접 구현하는 방법으로 진행하려고 합니다!