felix
felix2mo ago

KBpay 결제 실패 추가 문의

오늘 오전에 답변주신 내용을 바탕으로 기존 webview_flutter를 inappwebview로 대체하였는데, 동일한 오류가 반복되어 추가 문의드립니다. 현재 KBpay, 우리은행, 카카오뱅크의 카드사 앱이 연결되지 않고 있습니다. KBPay 연결시 intent scheme intent://pay?srCode=2539841&tcodeSeq=1250193092&kb-acp://#Intent;scheme=kb-acp;package=com.kbcard.cxh.appcard;end;
16 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
felix
felixOP2mo ago
플러터 코드 if (Platform.isAndroid) { try { var convertedUrl = await getAppUrl(url.toString()); print("convertedUrl: $convertedUrl"); if (await canLaunchUrl(Uri.parse(convertedUrl))) { await launchUrl(Uri.parse(convertedUrl)); } else { var marketUrl = await getMarketUrl(url); await launchUrl(Uri.parse(marketUrl)); } } catch (e) { log(e.toString()); } return NavigationActionPolicy.CANCEL; } else if (Platform.isIOS) { if (await canLaunchUrl(Uri.parse(url))) { await launchUrl(Uri.parse(url)); return NavigationActionPolicy.CANCEL; } } 메소드 채널 코드 "getAppUrl" -> { try { val url: String = call.argument("url")!! val intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME) result.success(intent.dataString) } catch (e: ActivityNotFoundException) { result.error("ACTIVITY_NOT_FOUND", "Activity not found to handle the intent", null) } } "getMarketUrl" -> { try { val url: String = call.argument("url")!! val intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME) val scheme = intent.scheme val packageName = intent.getPackage() if (packageName != null) { result.success("market://details?id=$packageName") } result.notImplemented() } catch (e: ActivityNotFoundException) { result.error("ACTIVITY_NOT_FOUND", "Activity not found to handle the intent", null) } } getAppUrl에 KBPay intent scheme 삽입 시 나오는 반환값 kb-acp://pay?srCode=8382375&tcodeSeq=1250190038&kb-acp://
이실장
이실장2mo ago
inappwebview에서는 3개만 안되나요 아니면 다 안되나요
felix
felixOP2mo ago
확인된것은 위 3개만 연결이 되지 않습니다.
이실장
이실장2mo ago
그럼 아마 다 안되시겠네요
이실장
이실장2mo ago
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.
이실장
이실장2mo ago
여기 참고해주세요
이실장
이실장2mo ago
웹뷰(WebView) 연동하기 | 토스페이먼츠 개발자센터
모바일에서 결제창을 띄울 때 카드사별 결제수단을 인증하려면 외부 앱(3rd-party 앱)을 연동해야 합니다. 연동에 필요한 외부 앱 스킴(App URL Scheme)목록과 추가 로직을 살펴보세요.
felix
felixOP2mo ago
payments 개발자센터에 적힌 내용을 기반으로 코드를 수정하여도 동일한 현상이 발생합니다. final appScheme = ConvertUrl(url); // Intent URL을 앱스킴 URL로 변환 log("TEST[appScheme]: ${appScheme.appLink}"); if (appScheme.isAppLink()) { // 앱스킴 URL인지 확인 appScheme.launchApp( mode: LaunchMode .externalApplication); // 앱 설치 상태에 따라 앱 실행 또는 마켓으로 이동 return NavigationActionPolicy.CANCEL; } 해당 코드로 하였을 때 appScheme이 kb-acp://pay?srCode=8013381&tcodeSeq=1250212449&kb-acp%3A// 이렇게만 보이고 뒤에가 잘리는거 같은데, 잘리는 이유가 따로 있나요? tosspayments_widget_sdk_flutter: ^2.1.1
이실장
이실장2mo ago
그건 flutter webview에서 확인해보셔야하는데요. 저희 샘플앱그대로 실행시키면 어떤가요?
felix
felixOP2mo ago
InAppWebView( initialData: InAppWebViewInitialData( data: _paymentHtml, mimeType: 'text/html', encoding: 'utf-8', ), initialSettings: InAppWebViewSettings( useShouldOverrideUrlLoading: true, resourceCustomSchemes: ['intent', 'market']), onWebViewCreated: (controller) { _webViewController = controller; }, onLoadStop: (controller, url) {}, shouldOverrideUrlLoading: (controller, navigationAction) async { var uri = navigationAction.request.url!; if (uri.scheme == 'http' || uri.scheme == 'https') { // 표준 웹 URL 체크 return NavigationActionPolicy.ALLOW; } else { // 그 외의 경우에는 tossPaymentsWebvew 함수로 검증 tossPaymentsWebview(uri.rawValue); return NavigationActionPolicy.CANCEL; } }, onLoadResourceWithCustomScheme: (controller, scheme) async { List<String> prefixes = ["intent", "market"]; // 커스텀 스킴 프리픽스 RegExp regExp = RegExp("^(${prefixes.map(RegExp.escape).join('|')})"); if (regExp.hasMatch(scheme.url.rawValue)) { await _webViewController.stopLoading(); // 일치하는 경우 로딩 중단 } }, ), 샘플앱을 그대로 실행시켜도 동일한 현상이 발생되고 있습니다.
이실장
이실장2mo ago
그럼 뭔가 dart및 flutter버전 문제일 것 같은데요
felix
felixOP2mo ago
현재 버전입니다. Flutter 3.29.1 • channel stable • https://github.com/flutter/flutter.git Framework • revision 09de023485 (2 weeks ago) • 2025-02-28 13:44:05 -0800 Engine • revision 871f65ac1b Tools • Dart 3.7.0 • DevTools 2.42.2
이실장
이실장2mo ago
이 샘플도 안된다고 하시면 저희도 추가로 확인해드릴 사항이 없긴합니다. 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.
이실장
이실장2mo ago
pg쪽 이슈가 아니라 웹뷰에서 앱스킴을 처리못하는 상황이고, 앱 환경에 따라 변수가 다양해서요
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?