웹앱에서 kbpay 로 결제하려고 하면 ERR_UNKNOWN_URL_SCHEME 발생
현재 웹앱에서 토스 결제가 이루어지고 있는데
kb pay 를 사용할 경우 토스 결제창에서 첫번째 사진과 같은 에러 페이지가 발생하고 있습니다
그리고 웹을 띄우고 있는 flutter 에서는
두번째 사진과 같은 에러 메시지가 발생하고 있습니다
flutter 자체에서 웹뷰로 토스창을 띄운 후 결제할 경우의 intent 관련한 오류는 보이는데
웹 sdk 사용 중 kb-pay scheme 오류 관련 정보를 찾을 수 없어서 글 올립니다
웹에서는 @tosspayments/payment-sdk": "^1.7.1" 를 사용하고 있으며 flutter 에서는 flutter_inappwebview: ^6.0.0 라이브러리를 사용하여 띄우고 있습니다
웹에서는 @tosspayments/payment-sdk": "^1.7.1" 를 사용하고 있으며 flutter 에서는 flutter_inappwebview: ^6.0.0 라이브러리를 사용하여 띄우고 있습니다


11 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
kb pay만 안되나요?
이외에도 kb 스타뱅킹 결제, kb 스타틴즈 결제가 불가능합니다
kb 국민카드 - 다른결제 - payco 도 불가능합니다
isp 결제는 가능합니다
kb외 삼성현대 이런건 잘되나요?
네 나머지는 문제 없습니다
저 에러페이지가 뜨는것과 별개로 앱은 띄워지고 있습니다
앱이 띄워는 지는데 이미 페이지가 에러페이지로 떨어져서 결제 자체는 안되고 있습니다
<Bad state: Origin is only applicable schemes http and https: intent://pay?srCode=7005471&tcodeSeq=1196340728&kb-acp://#Intent;scheme=kb-acp;package=com.kbcard.cxh.appcard;end;>
저 페이지에서 뜨고있는 오류는 이것입니다
지금 intent url 처리는 어떻게 하고 계세요?
Future<String> _convertIntentToAppUrl(String text) async {
return await ReserveWebView.channel
.invokeMethod('getAppUrl', <String, Object>{'url': text});
}
Future<String> _convertIntentToMarketUrl(String text) async {
return await ReserveWebView.channel
.invokeMethod('getMarketUrl', <String, Object>{'url': text});
}
shouldOverrideUrlLoading: (controller, navigationAction) async {
var currentUrl = navigationAction.request.url;
var finalUrl = navigationAction.request.url.toString();
if (currentUrl == null) {
return NavigationActionPolicy.CANCEL;
}
if (currentUrl.scheme == 'http'
currentUrl.scheme == 'https'
currentUrl.scheme == 'about' ||
currentUrl.scheme == 'data') {
return NavigationActionPolicy.ALLOW;
}
if (Platform.isAndroid) {
await _convertIntentToAppUrl(currentUrl.toString())
.then((value) async {
finalUrl = value;
});
try {
await launchUrlString(finalUrl);
} catch (err) {
finalUrl =
await _convertIntentToMarketUrl(currentUrl.toString());
await launchUrlString(finalUrl);
}
} else if (Platform.isIOS) {
if (currentUrl.scheme == 'ispmobile') {
await launchUrlString(finalUrl);
} else {
await launchUrlString(finalUrl);
}
}
return NavigationActionPolicy.CANCEL;
},
이런식으로 처리하고 있습니다
앱이 안열리면 써드파티 앱 대응미스겠구나 생각하겠는데 앱은 열리는 와중에 베이스 페이지는 오류로 연결되어서 문제입니다
https://github.com/youjun-lee/flutter_webview_sample_app
일단 여기서 실행했을 때 재현안되는데
GitHub
GitHub - youjun-lee/flutter_webview_sample_app: flutter webview sample
flutter webview sample. Contribute to youjun-lee/flutter_webview_sample_app development by creating an account on GitHub.
한번 비교해보시겠어요?
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
onLoadResourceWithCustomScheme
이 부분 적용으로 문제를 해결했습니다
감사합니다 🙂