안녕하세요. 토스플레이스 개발자센터입니다.
탭 화면과 웹 워커 구성, 결제 후 화면 복귀 방법을 안내 드립니다.
1. 패키지와 앱 등록
현재 개발자센터에서는 실행 환경을 탭 화면 또는 웹 워커로 구분해 등록합니다. 탭 화면 앱과 웹 워커 앱을 각각 등록·배포하고, 같은 매장에 활성화하는 방식으로 구성해 주세요. ‘함께 사용하는 구조’는 두 역할을 연계한다는 의미이며, 파일을 한 ZIP에 넣는 것만으로 두 실행 환경이 함께 활성화되는 것은 아닙니다.
탭 화면 ZIP은 최상위에 iframe-manifest.json과 화면 파일을, 웹 워커 ZIP은 최상위에 main.js를 포함합니다. 각 탭 화면 가이드와 웹 워커 가이드의 샘플로 각각 빌드해 주세요.
2. 앱 간 데이터 전달
서로 다른 앱의 Storage는 공유되지 않습니다. 실행 중인 앱 간에는 Plugin Unicast API를 사용할 수 있으며, send(message, to)의 to에는 수신할 앱의 앱 ID(packageName)를 넣습니다.
탭이 닫힌 동안의 메시지를 나중에 자동으로 받는 구조로 의존하지 말고, 결제 결과는 서버에 저장해 탭을 다시 열 때 조회하도록 구성해 주세요.
3. 이동할 탭 지정
navigation.navigate('plugin-tab', packageName)의 packageName도 이동할 탭 앱의 앱 ID입니다. 해당 탭 앱에서 조회한 plugin.getPluginInfo().name과 같은 값이며, 화면에 표시되는 탭 제목이나 숫자 App ID가 아닙니다. 워커에서 조회한 name은 워커 자신의 ID이므로 그대로 넣지 않도록 주의해 주세요.
4. 결제 후 복귀
웹 워커에서 payment.on('paid')를 수신한 뒤, 해당 서비스의 주문인지와 전체 결제 완료 여부를 확인하고 탭 앱으로 이동해 주세요. 분할결제는 결제 건마다 이벤트가 발생하므로, 주문의 paymentPrice.paymentUnpaidValue가 0인지 확인하는 과정이 필요합니다.
같은 흐름을 안내한 기존 결제 이벤트 답변과 화면 자동 이동 공지를 함께 참고해 주세요.
개발 배포가 적용되지 않은 원인은 패키지에 main.js가 있다는 사실만으로 확정하기 어렵습니다. 해당 앱 ID, 개발 배포 버전 번호, POS 시리얼번호를 개발자센터 메일로 전달 부탁 드립니다. 발생 시간은 글에 남겨주신 10월 24일 11:50~12:10 KST 기준으로 확인하겠습니다.