Skip to content
마지막 작성자: hyejung-song
최근 업데이트: 25. 7. 6. 오후 8:37

PC/Mobile 샘플 이용 방법 ​

샘플 페이지를 이용해서 Push 또는 QR 방식으로 모바일 신분증 인증을 테스트할 수 있어요.

1. Push 검증 ​

5-2push2

  • VC 선택 - 인증방식 - 제출정보 선택
  • ※ 등록된 서비스코드가 1개일 경우 선택할 필요 없음

5-2push1

  1. 활용 앱 선택

  2. PUSH 선택

  3. 이름 / 전화번호 입력

  4. 서비스 이용 동의

    • 서비스 이용약관: 필수항목, 수정불가
    • 기타 항목은 기관별 동의 범위에 맞게 수정
      • pcView.js: <dl class="agree-popup">
      • mobileView.js: <dl class="agree-popup-layout">
  5. 인증 요청 (/push/start API)

java
@PostMapping(value = "/push/start")
public MipApiDataVO pushStart(@RequestBody T540VO t540) throws SpException {
    T540VO data = webService.pushStart(t540);

    MipApiDataVO mipApiData = new MipApiDataVO();
    mipApiData.setResult(true);
    mipApiData.setData(Base64Util.encode(ConfigBean.gson.toJson(data)));

    return mipApiData;
}
  • 요청 VO: T540VO
  • 응답 VO: MipApiDataVO
  1. 인증 결과 확인 (/crtfc/cmpl API)
java
@Override
public void crtfcCmpl(String trxcode) throws SpException {
    TrxInfoVO trxInfo = trxInfoService.getTrxInfo(trxcode);

    if (TrxStsCodeEnum.VERIFY_COM.getVal().equals(trxInfo.getTrxStsCode())) {
        VP vp = ConfigBean.gson.fromJson(trxInfo.getVp(), VP.class);

        VCVerifyProfileResult profile = new VCVerifyProfileResult();
        profile.setEncryptType(vp.getEncryptType());
        profile.setKeyType(vp.getKeyType());
        profile.setType(vp.getType());
        profile.setData(vp.getData());
        profile.setAuthType(vp.getAuthType());
        profile.setDid(vp.getDid());
        profile.setNonce(vp.getNonce());

        String vpData = verifyManager.getVPData(profile);
        List<Unprotected> privacyList = verifyManager.getPrivacy(vpData);

        LOGGER.debug("privacyList size : {}", privacyList.size());

        // 사용자 정보 활용 로직 구현
    } else {
        throw new SpException(MipErrorEnum.SP_MSG_SEQ_ERROR, trxcode);
    }
}

2. QR 검증 ​

5-3qr2

  • VC선택-인증방식-제출정보 선택
  • ※ 등록된 서비스코드가 1개일 경우 선택할 필요 없음

5-3qr1

  1. 서비스 이용 동의 (개인정보 동의 커스터마이징 가능)

  2. QR 요청 (/qr/start API)

java
@PostMapping(value = "/qr/start")
public MipApiDataVO qrStart(@RequestBody T510VO t510) throws SpException {
    T510VO data = webService.qrMpmStart(t510);

    MipApiDataVO mipApiData = new MipApiDataVO();
    mipApiData.setResult(true);
    mipApiData.setData(Base64Util.encode(ConfigBean.gson.toJson(data)));

    return mipApiData;
}
  • 요청 VO: T510VO
  • 응답 VO: MipApiDataVO
  1. 인증 결과 확인 (/crtfc/cmpl API 사용, Push와 동일)
java
@Override
public void crtfcCmpl(String trxcode) throws SpException {
    TrxInfoVO trxInfo = trxInfoService.getTrxInfo(trxcode);

    if (TrxStsCodeEnum.VERIFY_COM.getVal().equals(trxInfo.getTrxStsCode())) {
        VP vp = ConfigBean.gson.fromJson(trxInfo.getVp(), VP.class);

        VCVerifyProfileResult profile = new VCVerifyProfileResult();
        profile.setEncryptType(vp.getEncryptType());
        profile.setKeyType(vp.getKeyType());
        profile.setType(vp.getType());
        profile.setData(vp.getData());
        profile.setAuthType(vp.getAuthType());
        profile.setDid(vp.getDid());
        profile.setNonce(vp.getNonce());

        String vpData = verifyManager.getVPData(profile);
        List<Unprotected> privacyList = verifyManager.getPrivacy(vpData);

        LOGGER.debug("privacyList size : {}", privacyList.size());

        // 사용자 정보 활용 로직 구현
    } else {
        throw new SpException(MipErrorEnum.SP_MSG_SEQ_ERROR, trxcode);
    }
}
  • VP 복호화와 개인정보 추출은 Push, QR 모두 동일한 방식으로 수행해요.
  • 복호화된 데이터는 서비스 시스템에 전달하거나 사용자 세션에 반영해서 인증 결과로 활용할 수 있어요.