iamport/iamport_flutter

android에서 iamport본인인증시 동작을 하지 않습니다.

milpy opened this issue · 5 comments

milpy commented

I/Dialog ( 8802): mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
I/DecorView( 8802): [INFO] isPopOver=false, config=false
I/DecorView( 8802): updateCaptionType >> DecorView@7b4fbb4[], isFloating=false, isApplication=false, hasWindowDecorCaption=false, hasWindowControllerCallback=false
D/DecorView( 8802): setCaptionType = 0, this = DecorView@7b4fbb4[]
D/InputTransport( 8802): Input channel constructed: '81d1f82', fd=297
I/ViewRootImpl@d621a9eMainActivity: setView = com.android.internal.policy.DecorView@7b4fbb4 TM=true
D/InputMethodManager( 8802): HSIFW - flag : 0
I/SurfaceControl( 8802): assignNativeObject: nativeObject = 0 Surface(name=null)/@0x8d142aa / android.view.SurfaceControl.readFromParcel:1117 android.view.IWindowSession$Stub$Proxy.relayout:1836 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9971 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995
I/ViewRootImpl@d621a9eMainActivity: Relayout returned: old=(0,0,1080,2064) new=(0,0,1080,2064) req=(1080,2064)0 dur=9 res=0x7 s={true -5476376637794134960} ch=true fn=-1
I/flutter ( 8802): {success: false, error_code: 9010, error_msg: 다날 서버로부터 받은 응답이 올바르지 않습니다.[인증실패] 잘못된 값이 입력된 필드가 존재합니다. (다날고객센터 1566-3355)}

무슨 문제 인가요?

본인인증시 입력하신 데이터의 모양 확인할수 있을까요?

milpy commented
CertificationData cer_data = CertificationData(
    merchantUid: "mid_${DateTime.now().millisecondsSinceEpoch}",
    company: "아임포트",
    carrier: "SKT",
    name: "",
    phone: "",
  );

  Widget build(BuildContext context) {
    return SafeArea(
      child: IamportCertification(
        /* 웹뷰 로딩 컴포넌트 */
        initialChild: Container(
          child: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Image.asset('assets/images/iamport-logo.png'),
                Container(
                  padding: EdgeInsets.fromLTRB(0.0, 30.0, 0.0, 0.0),
                  child:
                      Text('잠시만 기다려주세요...', style: TextStyle(fontSize: 20.0)),
                ),
              ],
            ),
          ),
        ),
        /* [필수입력] 가맹점 식별코드 */
        userCode: 'iamport',
        /* [필수입력] 본인인증 데이터 */
        data: cer_data,
        /* [필수입력] 콜백 함수 */
        callback: (Map<String, String> result) {
          //{success: true, imp_uid: imp_425908658880, merchant_uid: mid_1632716908543, pg_provider: danal, pg_type: certification, error_code: null, error_msg: null}
          Navigator.of(context).pop(result);
          // Navigator.pushReplacementNamed(
          //   context,
          //   '/result',
          //   arguments: result,
          // );
        },
      ),
    );
  }

여기 있습니다.
혹시 이 코드에 문제가 있을까요?

현재 다날과 계약되어 있지 않아 테스트 계정(iamport)으로 본인인증을 시도하신 것 같은데 해당 계정은 본인인증 설정이 되어있지 않고 이 때문에 오류가 발생한 것입니다.
본인인증 테스트가 가능한 계정은 imp10391932 입니다.

안녕하세요. 'KG 이니시스'로 본인인증 테스트를 해보려고 하는데, 테스트 계정(iamport)으로는

'http://detectchangingwebview/iamport/f?success=false&error_code=9010&error_msg=다날 서버로부터 받은 응답이 올바르지 않습니다.[인증실패] 잘못된 값이 입력된 필드가 존재합니다. (다날고객센터 1566-3355)'

라는 메시지가 리턴되고, 가맹점 식별코드를 입력했을 때는 아무 반응이 없습니다.
입력한 데이터는 아래와 같습니다.

CertificationData(
          merchantUid: 'mid_${DateTime.now().millisecondsSinceEpoch}',  // 주문번호
          company: 'SUNMUL',                                            // 회사명 또는 URL
          carrier: 'LGU',                                               // 통신사
          name: '이름',                                                 // 이름
          phone: '01011112222',                                         // 전화번호
        )

어떻게 테스트해볼 수 있는지요?
PG 사 계약은 앱 url 이 아직 없는 관계로 진행 보류 상태이구요.

@gblue1223 imp10391932로 테스트 해주시면 됩니다.