토스페이 앱에서 결제 후 웹뷰로 다시 이동할 수 있는지 문의
안녕하세요.
저는 토스PG 가 연동된 ASP 서비스를 관리하고 있습니다.
이번에 ASP 서비스를 네이티브 앱과 연동하였는데, 연동 후 다른 결제 수단에서는 문제가 없었지만, 토스페이를 통해 결제를 시도하는 경우 아래와 같은 문제가 발생합니다.
1. 웹뷰에서 PG 화면 진입
2. 토스페이 선택 후 결제 진행
3. 토스페이 앱 실행 후 결제 완료
4. 토스페이 앱 종료 후 지정된 앱스킴으로 이동
5. 결제 완료 후 실행되어야할 후처리 로직(ASP의 웹 페이지에서 트리거 됨)이 실행되지 않음
다른 결제 수단(예를 들어, 네이버페이)로 결제를 진행하는 경우 결제의 모든 과정이 웹뷰 안에서 일어나기 때문에 후처리 로직을 트리거하는 페이지로 정상적으로 돌아옵니다.
하지만 토스페이를 통해 결제하면 토스페이 네티이브앱이 실행되고 결제가 완료되면, 후처리 로직을 실행시킬 웹페이지로 돌아갈 방법이 없는 것처럼 보입니다.
이런 경우 어떻게 해결할 수 있을까요? 제가 생각했던 방법들은 아래와 같습니다.
1안. 웹훅을 연결하여 웹서버에서 후처리 진행
2안. 후처리 페이지를 띄워줄 앱스킴을 생성하여 해당 앱스킴을 PG에 전달
더 일반적인 방법이 있는지, 그리고 위 두가지 방법 중 동작하는 방법이 있는지 힌트를 주시면 감사하겠습니다.
9 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
지금 앱스킴을 어떻게 보내고 계신가요?
일반적으로는 저희 결제창 띄우실때 successURL 을 보내고 앱스킴은 그냥 앱으로 포커스가 가도록 구성하신후에
외부 앱에서 결제가 되면 자동으로 가맹점앱으로 포커스가 이동하면서 해당 웹뷰가 successURL 로 이동하는 구조로 되어 있습니다.
여기서 후처리를 하시면 됩니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
오호.. 지금은 myapp:// 으로 앱스킴이 되어있습니다. 그런데 결제가 완료된 후 myapp으로 돌아가면 원래 보고 있던 웹뷰가 나오는 것이 아니라 앱의 메인 화면으로 이동합니다. (myapp:// 앱스킴이 앱의 메인화면으로 이동하는 스킴으로 설정되어있다고 들었습니다.)
그런데 웹뷰가 successURL로 이동한다는 것은, 앱 스킴을 호출할 때 successURL을 파라미터로 넘긴다는 의미일까요? 네이티브 앱에대한 이해가 부족해서 어떻게 웹뷰에 이동해야할 URL이 전달되는 것인지 상상이 되지 않습니다.
혹시 가맹점앱(myapp)으로 포커스가 이동했을때 앱에서 별도의 처리를 해줘야 하는 걸까요?
@Kimoon Lee
myapp:// 앱스킴이 앱의 메인화면으로 이동하는 스킴으로 설정
* 이 부분이 문제 입니다. 앱의 메인화면으로 이동되지 않도록 설정이 필요 합니다.
* 앱 스킴을 통해 해당 앱으로 복귀하여, 띄워져 있는 웹뷰상 SDK 에서의 풀링 및 리다이렉션이 수행 되어야 하기 때문 입니다.
이 부분 작업이 어려우시면,
고객이 직접 앱으로 복귀하는 방법만 남겨둬야 할것 같습니다.
유부장님 안녕하세요?
말씀하신 내용은 이해가 됩니다만, 제가 몇 가지 테스트를 더 수행해본 결과 신한카드 앱과 토스페이 앱은 동일한 문제를 일으키는 반면, 현대카드 앱은 정상적으로 웹뷰 화면으로 돌아옵니다.혹시 이 둘 간의 차이점이 무엇인지 유추해 볼 수 있으신지요?
원천사마다 스킴 처리 또는 이전앱으로 돌아가는 방식이, OS 마다 달라서 결과가 다른 가능성이 높습니다.
1. 어떤 OS 를 통해 진행 하셨나요? (AOS? iOS?)
2. 각각 케이스의 주문번호가 어떻게 되시나요?
저는 안드로이드에서 테스트 했습니다만, 아이폰도 동일한 문제가 있었습니다.
말씀하신 주문 번호가 저희 시스템의 주문번호라면,
성공한 케이스의 주문번호는 222557(결제 아이디 ondar20250203175107CahJ9), 222556(결제 아이디 ondar20250203174849NkaW8)
실패한 케이스의 주문번호는 222555, 222553, 222552, 222551 입니다.
실패한 케이스는 결제 아이디(트랜잭션 아이디?)가 디비에 남지 않아서 현재는 알 수 없는 상태입니다.
또한, 각 케이스별로 어떤 카드를 사용했는지 (또는 토스페이를 사용했는지)는 알 수 없는 상태입니다.
appScheme=tmap:// 이렇게 모두 보내주신것 같고 실패하신 4가지는 토스페이, 신한카드로 확인되네요.
유부장님이 말씀주신대로 원천사 앱별로 스킴 이동하는 방식이 다르긴 한데 기본적으로 appScheme=tmap:// 이걸 호출했을때 해당 앱내에서 이동이 없이 저희 결제창이 웹뷰 상에 떠있는 상태가 유지 되어야 저희페이지가 이벤트를 받아 처리할수 있습니다.
myapp:// 앱스킴이 앱의 메인화면으로 이동하는 스킴으로 설정 되어있다고 하셨는데 이부분을 없애주신후에 토스페이로 다시 테스트 해보시기 바랍니다.