이지훈
이지훈2y ago

flutter 개발 도중 이슈사항 끄적끄적 ...

토스페이먼츠 측에서 전달해준 문서를 토대로 진행을 하던 도중 이슈사항이 있어 공유드립니다. 1. kb 국민카드에서 앱결제를 누를시 kbpay가 있음에도 불구하고 market으로 이동되는현상 - 원인을 찾아보니 await canLaunchUrlString(value) <- 이구문에서 앱이 있든 없든 false를 항상 내보내고 있었음.
37 Replies
Ayaan
Ayaan2y ago
토스페이먼츠에서는 플루터 관련 가이드라인을 제공하지 않는 것으로 알고 있습니다.
이지훈
이지훈2y ago
토스측에서 받은 flutter 가이드 라인 보고 참고하였습니다. 저도 처음 문의 남겼을땐 없다고 해서 내부에서 만들어 사용하던도중. 토스측에서 가이드 라인을 보내주겠다하여 참고하고 나온 이슈 사항입니다.
이실장
이실장2y ago
요청하시는 분들에 한해서만 보내드리고 있어요 혹시 KBPay 결제시도시 usb 디버깅모드로 연결되어있으셨나요 PC와 @이지훈 디버깅모드로 사용중이셨는지 확인 부탁드려요~
이지훈
이지훈2y ago
디버깅 모드 사용시 디버깅모드 해제후 접속해 주세요란 알림을 받아서 정상적으로 pay에 진입되는 부분까진 확인이 되었습니다.
이실장
이실장2y ago
그럼 해결이 되신거죠?
이지훈
이지훈2y ago
아뇨아뇨 해당 부분에 대한 이슈는 await canLaunchUrlString(value) 이부분입니다 각 앱카드로 결제 method channel 을 타고 알맞은 스키마 변경후
이실장
이실장2y ago
marcket으로 이동안하고, pay진입을 확인하신거 아닌가요?
이지훈
이지훈2y ago
아 그부분에 문제는아닙니다 라이브러리문제가있어서 이슈 공유드립니다
이실장
이실장2y ago
저희도 flutter쪽 가이드를 고도화 시키고 있어서 여쭤보는점은 양해바랍니다..!
이지훈
이지훈2y ago
네넵 그 문의는 아니고 이제 연동하다가 문제가 있어서 공유 같이 하려 남겨드립니다! 지금 현재 문제점은 method channel 을 타고 알맞은 스키마 변경후 canLaunchUrlString <- 해당 메서드로 실행이 되는지 안되는지 검증을 하는 부분이있는데 이부분에서 무조건 false가 떨어집니다 그래서 해당 페이앱이 있어도 마켓으로 연결되는 이슈가있어요
이실장
이실장2y ago
모든 카드사가 동일한 문제인거죠?
이지훈
이지훈2y ago
네네 앱카드결제를 누를시 무조건 앱이있던말던 마켓으로이동이됩니다
이실장
이실장2y ago
이부분은 한번 확인해보겠습니다~
Ayaan
Ayaan2y ago
앗 알겠습니다!
이지훈
이지훈2y ago
넵 해당 부분 지금 저도 문제 처리중에 있는데 혹시 제쪽에서도 무언가 처리할수 있는 방법있다면 공유드리겠습니다 url_launcher <- 라이브러리가 각 앱의 스키마를 인식 못하는것같습니다
이실장
이실장2y ago
if (await canLaunchUrlString(value)) { finalUrl = value; // 앱이 설치되었을 경우 }else{ finalUrl= await _convertIntentToMarketUrl(request.url); //앱이 설치되어 있지 않을 경우, playstore로 이동 } 이부분만 지우면 아마 이상이 없을 것 같기는 합니다.
이지훈
이지훈2y ago
네 현재 임시방편으로 해당부분 주석처리후
이실장
이실장2y ago
사실 ios에서는 마켓으로 이동하는 기능을 제공불가능한 부분이라.
이지훈
이지훈2y ago
실배포가 되어있긴한데 사실 문제는 버튼이 아무동작을 하지 않는다는게 또 문제로남아서 지금 해결중에있습니다.
이실장
이실장2y ago
사실 문제는 버튼이 아무동작을 하지 않는다는게 또 문제로남아서
이것도 저희 가이드 문제일까요?
이지훈
이지훈2y ago
아뇨 이부분은 이내용 그대로 저도 처리한부분인데 해당부분을 주석처리후 사용한다면 버튼이 먹통이되는 현상입니다. '앱으로 결제' 이부분의 버튼들이 먹통이됩니다. 그래서 .. 좋은 방법이 따로 있는지는... 지금 확인중입니다
이실장
이실장2y ago
그대로 주석하면 finalUrl변수가 비어서 그럴거에요
이지훈
이지훈2y ago
아 finalUrl finalUrl -> value 로 교체했습니다 해당부분까지 얘기를 못드렸네요 launchUrlString(value);
이지훈
이지훈2y ago
No description
이지훈
이지훈2y ago
현재 지금 코드 내용입니다. 조금더 유연하게 처리할 수 있는진 고민이 좀 필요할것같습니다.
이실장
이실장2y ago
if문 밖에서 실행해보시요 finalUrl=value를 async안에서 선언해주시고 비동기 문제로 실행이 안되지 않을까 싶네요~
이지훈
이지훈2y ago
아넵 비동기는 빼야겠네요. ㅠ 하지만 문제는 정상적으로 실행은 되는데 오류가 나오는부분인데 오류내용도 한번 공유드릴게요
이지훈
이지훈2y ago
No description
이지훈
이지훈2y ago
앱이 없을시 스키마를 불러올수 없어서 나오는 오류입니다.
Ayaan
Ayaan2y ago
try catch문으로 분기해 보시는건 어떠신지요?
이실장
이실장2y ago
앱이 없을 때는 당연히 에러가 납니다. 웹뷰에서 intent url실행해도 응답이 없어서요
이지훈
이지훈2y ago
네 지금 까지 나온 이슈를 종합을 해보았을때 해당 앱이 없을시 버튼이 먹통이 되는 현상인데요. 이부분을 해결할 방법을 찾아야 할것같습니다. 앞쪽에서 이미 에러가 나온 상태라서 분기처리가 불가능합니다. launchUrlString(value) <- 해당 구문을 실행하면 메서드 자체에서 실행을 할 수 있는지 없는지 구분해서 미리 보내주게 됩니다. 정상적인 프로세스라면 false로 반환이 되어야 하는데 라이브러리 안에서 에러가 발생하는 부분이라서 try catch가 체크를 하지 못하게 되는 상황입니다.
Ayaan
Ayaan2y ago
이 오류가 발생하는 부분을 try catch로 잡으면 될 것 같이 보여서요 launchUrlString를 호출시 발생하는 건가요?
이지훈
이지훈2y ago
호출시 try catch에 안잡히는 이유는 상위계층 Exception 범위 밖에서 오류가 일어나서 입니다. 코드 로직 수정 후 해당부분 해결 완료 했습니다. 감사합니다~
Ayaan
Ayaan2y ago
네 상위계층에서 발생한다는 생각을 못했네요 ㅎㅎ
이지훈
이지훈2y ago
네네 얘기주신 덕분에 다각도로 테스트 해보고 완성할 수 있었습니다. 감사합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.