Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
choyi918 opened this issue Sep 27, 2022 · 9 comments

Comments

@choyi918
Copy link

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

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 #81 (comment)

@anymate98
Copy link
Contributor

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

@choyi918
Copy link
Author

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

@anymate98
Copy link
Contributor

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

@choyi918
Copy link
Author

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

@anymate98
Copy link
Contributor

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

@choyi918
Copy link
Author

choyi918 commented Sep 30, 2022

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

@anymate98
Copy link
Contributor

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

@choyi918
Copy link
Author

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

@kjh5833
Copy link
Contributor

kjh5833 commented Oct 4, 2022

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

  • 결제연동은 정상
  • 본인인증은 이슈로 남겨주신 에러가 발생
  • 기타 웹뷰 관련 라이브러리를 제거 하였음에도 이슈가 동일 발생
  • 로컬(or git url) 로 프로젝트에 연동시에는 본인인증 정상

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants