<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/73303989-5166-45f1-98bf-85b33b598cec/노션_아이콘_디자인_5.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/73303989-5166-45f1-98bf-85b33b598cec/노션_아이콘_디자인_5.png" width="40px" /> useB.eKYC로 인증이 완료된 후, 인증 결과는 postMessage 방식으로 전달됩니다. 아래는 postMessage에 대한 가이드 입니다.

</aside>

[postMessage] 가이드

결과 종류(result)

<aside> 💡 https://github.com/useb-inc/kyc-sample-iframe/blob/develop/js/kyc.js

</aside>

1차 postMessage (Data 처리 용도, 인증 성공/실패 메세지)

사용자의 인증 데이터 결과를 처리 하기 위한 정보가 포함되어있습니다.

  /**
	* result: 인증 성공/실패 여부
  *  - success : 자동승인, 심사필요
  *  - failed  : 자동거부
	* review_result: 인증데이터 상세 결과객체
	*/
	{
	  "result": "success", // "success" | "failed"
	  "review_result": {
      /* reivew id */
      "id" : 357     
 
      /* 요청시간 */
      "request_time": "2021-12-25T03:55:31.918Z",

      /* 사용자 정보 */
      "name": "홍길동",
      "phone_number": "01012345678",
      "birthday": "2000-01-01",

      /* 결과 타입 */
      "result_type": 1,
      /**
* result_type
*  - 1: 자동승인(auto_approve), 신분증 OCR 인식결과대로 자동승인.
*  - 2: 자동거부(auto_reject), 신원정보 3회 오입력/1원 계좌인증 3회실패 등 진위확인 실패에 따른 자동거부.
*  - 5: 심사필요(wait_review), 신분증 OCR 인식결과를 사용자가 수정하면 심사대상이 됨.
*        ex) 1원 계좌인증 시 예금주명을 변경한 경우
*/

      /* 인증절차에 사용되는 기능 */
      "module": {
        "id_card_ocr": true, // 신분증OCR 기능 사용여부,
	      "id_card_verification": false, // 신분증진위확인 기능 사용여부,
	      "face_authentication": false, // 신분증얼굴vs셀피얼굴 비교 기능 사용여부,
	      "account_verification": true, // 1원 계좌인증 사용여부,
	      "liveness": false // 얼굴 라이브니스(진위확인) 기능 사용여부,
      },
      "id_card": {   // 신분증 인증 결과
      /* idType : 1  (주민등록증)
         idType : 2  (운전등록증)
         idType : 3  (한국여권)
         idType : 4  (외국인여권)
         idType : 5-1  (외국인등록증)
         idType : 5-2  (외국국적동포 국내거소신고증)
         idType : 5-3  (영주증) */
      },
      "face_check": { // 안면 인증 결과
      },
      "account": { // 1원 계좌인증 결과
      }
    }
	}

2차 postMessage (UI 처리 용도, 완료/미완료 메세지)

인증 처리 후 다음 화면을 제어 하기 위한 정보가 포함되어있습니다.

/**
* result: 서비스 종료
*  - complete : 완료 (인증성공 후 서비스 종료)
*  - close    : 미완료 (인증실패 후 서비스 종료 또는 중도이탈)
*/
{
  "result": "complete", // "complete" | "close"
}
* 인증 성공/실패 후, 1차 postMessage{result(success, failed) + review_result} 전송, 이후에 앱이 종료되거나 중도이탈되면 다시 한번 2차 postMessage{result(complete, close)}가 전송됩니다.

* **중도이탈** : 솔루션 진행시 우측 상단의 X버튼을 누르고 서비스가 종료되거나 왼쪽 하단의 취소버튼을 통해 서비스가 종료된 경우, **1차 postMessage 없이 바로 2차 postMessage(result : close)가 전달**됩니다. 

eKYC솔루션 인증완료 후 1차 인증결과를 먼저 전송하여 고객사에서 결과에 따른 처리 후 사용자가 솔루션을 종료할 때 2차 결과를 전송해서 고객사 화면 Loading time을 최소화하기 위해 결과메세지를 나누어서 전송합니다.