이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
환경
- 개발 환경: WebView
- SDK: @apps-in-toss/web-framework 2.10.7
- 테스트 환경: 샌드박스 앱, intoss-private 딥링크 (둘 다 동일 증상)
- 미니앱: 게임 카테고리, 출시 완료
증상
알림 동의 화면이 뜨지 않고 onError로 "잘못된 요청입니다."만 반환됩니다.
templateCode에 아래 6가지를 넣어봤는데 전부 같은 메시지로 실패했습니다.
- 스마트발송 기능성 템플릿(NORMAL) 코드
- 서버발송 템플릿(SERVER) 그룹 코드 = 템플릿셋 코드
- 서버발송 템플릿(SERVER) 템플릿셋 코드
- 알림동의문 stdConsentCode
- subscriptionTemplateId
- agreementId
문자열 코드와 숫자처럼 형식이 전혀 다른 값도 동일한 에러라, 값 문제가 아니라 요청 자체가 거부되는 것으로 보입니다.
배제한 원인
- 앱 버전: isMinVersionSupported(android/ios 5.255.0)가 true이고, 에러도 UNSUPPORTED_APP_VERSION이 아닙니다.
- 콘솔 설정: 알림동의문 등록 완료, 연결된 스마트발송 템플릿 모두 검수 APPROVED.
- 서버 발송 API(send-message)는 정상 동작하며 TERMS_DISAGREED_MEMBER를 반환합니다. 인증서, 템플릿, x-anon-key는 유효하고 사용자 동의 단계만 막힌 상태입니다.
질문
3.0.0 타입 정의를 보니 requestNotificationAgreement가 @deprecated이고 Notification.requestAgreement 사용을 권장하고 있었습니다.
2.10.7에는 없는 isSupported / MIN_TOSS_APP_VERSION이 3.0.0에는 붙어 있어 구현이 달라 보입니다.
- 알림 동의를 받으려면 3.x의 Notification.requestAgreement가 필수인가요?
- 2.10.x에서도 동작해야 한다면 templateCode에 어떤 값을 넣어야 하나요?
그 외 빠진 전제 조건이 있는지도 알고 싶습니다.
3.x 마이그레이션은 롤백이 불가능하다고 안내되어 있어 원인을 확인한 뒤 진행하려 합니다.
appName (선택)
jusikwang
