조용진
조용진2y ago

Flutter tosspayments_sdk_flutter intent 스킴 오류

안녕하세요. flutter를 이용해서 결제를 구현하고 있던 도중, 공식 flutter sdk에 오류가 있는 것 같아 문의 드립니다. payment_window_webview.dart 파일에서 웹뷰를 띄우고 있을 때, navigationDelegate 함수를 정의하고 있는데, 이 과정에서 인텐트 스킴을 체크하여 앱 링크일 경우 NavigationDecision.prevent를 리턴해주는 과정이 있습니다.
tossPaymentsWebview(url) {
final convertUrl = ConvertUrl(url);

// 앱링크일시 convert하기 위해
if (convertUrl.isAppLink()) {
convertUrl.launchApp();
return NavigationDecision.prevent;
}
}
tossPaymentsWebview(url) {
final convertUrl = ConvertUrl(url);

// 앱링크일시 convert하기 위해
if (convertUrl.isAppLink()) {
convertUrl.launchApp();
return NavigationDecision.prevent;
}
}
함수 자체에는 문제가 없으나, 실행하는 부분에 문제가 있습니다.
if (didSuccess(request.url)) {
return NavigationDecision.prevent;
}

if (didFail(request.url)) {
return NavigationDecision.prevent;
}

tossPaymentsWebview(request.url);

return NavigationDecision.navigate;
if (didSuccess(request.url)) {
return NavigationDecision.prevent;
}

if (didFail(request.url)) {
return NavigationDecision.prevent;
}

tossPaymentsWebview(request.url);

return NavigationDecision.navigate;
위 코드에서 tossPaymentsWebview 함수를 실행하는데, return을 해주지 않아서, 앱링크 실행 자체는 잘 되지만, prevent가 리턴되지 않고, navigate가 리턴되어 오류창 역시 함께 노출됩니다. 저는 임시방편으로 navigationDelegate 함수 안에
if (request.url.startsWith('intent://')) {
return tossPaymentsWebview(request.url);
}
if (request.url.startsWith('intent://')) {
return tossPaymentsWebview(request.url);
}
이런 식으로 분기를 넣어뒀는데, sdk 자체적으로 수정이 필요할 것 같습니다. 감사합니다.
6 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
이실장
이실장2y ago
네 이 부분 이슈 확인해서 수정 준비 중에 있습니다. 불편을 드려 죄송합니다. @jrog 0.1.8로 배포되었습니다. intent://로 하면 예외 케이스가 있습니다. (현대카드) intent로 수정해주셔야할 것 같아요
조용진
조용진OP2y ago
그렇군요. 감사합니다 🙇
이실장
이실장2y ago
혹시 mid는 어떻게 되시나요?
조용진
조용진OP2y ago
zizz86y2uu 입니다
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?