iamport / iamport_flutter

Flutter App에서 아임포트 결제서비스 연동을 위한 모듈입니다.
MIT License
67 stars 36 forks source link

KG 이니시스 본인 인증 연동 중 요류 발생에 대해 문의 드립니다. #84

Open choyi918 opened 1 year ago

choyi918 commented 1 year ago
    안녕하세요. 고생이 많으십니다. 이번에는 다른 문제로 문의 드립니다.

PG 결제 테스트 연동은 완료했고, KG 이니시스로 본인 인증을 연동 중인데, 올려주신 예제를 참고하여 IamportCertification에 data를 넘겨주면 다음과 같은 예외 및 오류가 발생합니다.(유저코드(스토어아이디)와 개인정보는 로그에서 가렸습니다.) 일단 제가 사용하고 있는 프레임워크 및 라이브러리의 버전은 다음과 같습니다.

  1. 플러터 sdk 버전은 ">=2.12.0 <3.0.0" 이고,
  2. 아임포트 패키지 버전은 ^0.10.0
  3. 아임포트 관련해서 사용하는 건 아니고, 어플 내 다른 기능에 사용하고 있는 웹뷰 라이브러리가 두 개 있습니다. 혹시 이것과 충돌 가능성이 있는지 생각되어 사용하고 있는 웹뷰 라이브러리 버전도 알려드립니다.
    • webview_flutter: ^3.0.4
    • flutter_inappwebview: ^5.4.3+7

예외 및 오류 로그는 다음과 같습니다.

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(evaluateJavaScript_failed, Failed evaluating JavaScript, JavaScript string was: ' IMP.init("imp0000000"); IMP.certification.dart({"merchant_uid":"mid_1664241914369","company":"아임포트","carrier":"SKT","name":"홍길동","phone":"01012345678","min_age":19,"m_redirect_url":"http://www.xxxxx.com"}, function(response) { const query = []; Object.keys(response).forEach(function(key) { query.push(key + "=" + response[key]); }); location.href = "http://www.xxxxx.com" + "?" + query.join("&"); }); ' Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=2, WKJavaScriptExceptionMessage=TypeError: undefined is not a function (near '...IMP.certification.dart...'), WKJavaScriptExceptionColumnNumber=35, WKJavaScriptExceptionSourceURL=data:text/html,%20%20%20<…>

_Originally posted by @choyi918 in https://github.com/iamport/iamport_flutter/issues/81#issuecomment-1258855376_

anymate98 commented 1 year ago

답변이 늦어 죄송합니다. 로그상으로는 undefined인 function이 IMP.certification.dart인 것으로 보여지는데요, 실제로 저러한 함수가 존재하지 않기 때문에 발생한 문제라고 생각됩니다. 따로 라이브러리 코드를 수정해서 사용하셨나요?

choyi918 commented 1 year ago

아니요 라이브러리 내부는 수정하지 않았고, 깃허브 예제코드에서 페이지 라우팅하는 방식과 IamportCertification() 위젯을 렌더링하는 페이지에 입력 데이터를 넘겨주는 방식만 조금 바꾸었습니다. 깃허브 예제코드를 따로 받아서 그것만 동일한 에뮬레이터로 돌려보면 잘 작동하는데 제 프로젝트에선 오류가 발생하네요 의존하고 있는 패키지버전 문제일 가능성이 있을까요?

anymate98 commented 1 year ago

웹뷰가 세개나 존재할 것이기 때문에 가능성은 높아보이지만 webview_flutter과의 충돌은 예전에 수정을 했었고 inappwebview와는 문제가 발생하는 것을 아직 못봤는데 현재 개발중인 앱에서 각 웹뷰 라이브러리를 하나하나 제거해가면서 실제로 충돌하는지 봐야 할 것 같습니다.

choyi918 commented 1 year ago

하나씩 지워보면서 확인해봤는데, 일단 이 문제는 아닌 것 같습니다!

anymate98 commented 1 year ago

그렇다면 IMP.certification 함수의 이름이 변경된 원인을 찾아야 하는데 데이터를 넘겨주는 방식에 혹시 짐작가는 부분이 있으신가요?

choyi918 commented 1 year ago

깃허브에 있는 라이브러리를 직접 제 프로젝트에 넣으면 잘 작동하는 것은 확인했습니다. 하지만 pubspec.yaml에 추가해서 라이브러리를 다운받는 방식으로는 여전히 같은 오류가 발생하네요. 어떤 점을 의심해봐야할까요?

anymate98 commented 1 year ago

깃헙 main은 최신 버전이므로 pubspec.yaml에 0.10.2(최신) 버전을 명시적으로 지정해서 동일하게 동작하는지를 살펴볼 수 있을 것 같습니다.

choyi918 commented 1 year ago

넵 이미 확인했으나 해결되지 않았습니다..

kjh5833 commented 1 year ago

@choyi918 안녕하세요. 아임포트 기술지원팀입니다. 현재 상황이 아래로 파악되고 있는데 맞을까요?

저희가 내부적으로 재현이 되지 않아 디버깅에 어려움이 있는데, 테스트 가능한 샘플 코드를 전달 주시면 검토해보도록 하겠습니다.