android 해당 결제 앱으로 이동이 되지 않습니다. err_unknown url scheme
android manifest파일에 quries 결제 앱 패키지명을 입력했지만 ERR_UNKNOWN_URL_SCHEME이 뜹니다.
개발 버전 앱에서는 앱으로 잘 이동하지만 실제 프로덕션 앱에서 다음 이유로 intent://pay?srCode=3300321&tcodeSeq=765894384&kb-acp://#Intent;scheme=kb-acp;package=com.kbcard.cxh.appcard;end;의 웹페이지를 로드할 수 없습니다.
라는 오류가 뜹니다.
토스 페이먼츠 공식 문서랑 똑같이 적용했습니다.
mainfest.xml:
<queries>
<package android:name="com.kakao.talk" /> <!-- 카카오톡 -->
<package android:name="com.shcard.smartpay" /> <!-- 신한페이판 -->
<package android:name="com.shinhancard.smartshinhan" /> <!-- 신한페이판-공동인증서 -->
<package android:name="com.hyundaicard.appcard" /> <!-- 현대카드 -->
<package android:name="com.lumensoft.touchenappfree" /> <!-- 현대카드-공동인증서 -->
<package android:name="kr.co.samsungcard.mpocket" /> <!-- 삼성카드 -->
<package android:name="nh.smart.nhallonepay" /> <!-- 올원페이 -->
<package android:name="com.kbcard.cxh.appcard" /> <!-- KB Pay -->
<package android:name="com.kbstar.liivbank" /> <!-- Liiv(KB국민은행) -->
<package android:name="com.kbstar.reboot" /> <!-- Liiv Reboot(KB국민은행) -->
<package android:name="kvp.jjy.MispAndroid320" /> <!-- ISP/페이북 -->
<package android:name="com.lcacApp" /> <!-- 롯데카드 -->
<package android:name="com.hanaskcard.paycla" /> <!-- 하나카드 -->
<package android:name="kr.co.hanamembers.hmscustomer" /> <!-- 하나멤버스 -->
<package android:name="kr.co.citibank.citimobile" /> <!-- 씨티모바일 -->
<package android:name="com.wooricard.wpay" /> <!-- 우리페이 -->
<package android:name="com.wooricard.smartapp" /> <!-- 우리카드 -->
.... 생략>
</queries>
shouldOverrideUrlLoading 메소드도 토스 연동 문서랑 같음
16 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
개발 버전 앱에서는 잘 되셨다면,
운영 앱 배포시에 누락 되는 부분이 있는지 확인 가능 하실까요?
android native app 개발인지 RN개발인지도 확인바랍니다.
native앱입니다.
개발버전과 차이라고는 프로가드 코드 난독화밖에 없는 것 같습니다.
shouldOverride... method쓰면 사실 pacage name을 미리 등록하는건 불필요합니다.
<appication ... android:usesCleartextTraffic="true"></application>
위에 설정으로 누락으로 intent url 못받는건 아닐지요?
android:usesCleartextTraffic="true" 는 잘 설정되어 있습니다. 그러면 매니페스트에 결제앱 쿼리를 빼도 된다는 의미이실까요?
https://docs.tosspayments.com/guides/webview#android
우선 여기랑 동일하게 작업하신걸까요?
웹뷰(WebView) 연동하기 | 토스페이먼츠 개발자센터
브라우저가 아닌 모바일 웹뷰로 결제창을 띄울 때 카드사별 결제수단을 인증하려면 외부 앱(3rd-party 앱)을 연동해야 합니다. 연동에 필요한 외부 앱 스킴(App URL Scheme)목록과 추가 로직을 살펴보세요.
안열리는게 특정 카드사인가요? 아니면 모두 안열리나요?
네 맞습니다 해당 문서 참고해서 개발하였습니다.
모든 결제사가 안 되는 것 같습니다
우선 @유부장 님 말씀대로, 배포시에 바뀐 부분을 먼저 검증해주셔야합니다.
해당 에러는 PG에서 드리는게 아니라, 귀사 웹뷰 화면에서 주소가 intent그대로 넘어와서 발생하는 현상입니다.
intent:// 로 시작하는 주소가 startSchemeIntent() method를 통해 웹뷰에서 읽을 수 있는 주소로 변환되어야 합니다.
그런데 변환되지 않고 intetn:// 그대로 넘어가서, 읽을 수 없는 URL주소라는 에러가 나가고 있습니다.
결제앱 쿼리는 기능동작 여부와 무관하게 구글 정책에 의해 넣어주셔야합니다.
위에 말씀드린 내용은 manifest누락이 에러의 원인은 아니라는 부분에서 말씀드렸습니다. (shouldOver... 를 정확히 사용했다는 전제하에)
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
페이먼트 클래스를 proguard 에서 keep해주는 것으로 해결했습니다
공유 감사합니다.
이실장님 안녕하세요 저희도 비슷한 경우 인거 같은데요 혹시 유선으로 문의는 가능 하신가요?
우선 새로운 포스팅으로 상황에 대해 남겨주시기 바랍니다.
mid도 함께 남겨주세요
네네