fake-iamport-server
Version:
Fake iamport server for testing
199 lines (171 loc) • 4.31 kB
text/typescript
import { tags } from "typia";
/**
* 본인 인증 내역.
*
* `IIamportCertification` 은 아임포트의 본인인증 정보를 형상화한 자료구조 인터페이스이다.
*
* 단, `IIamportCertification` 레코드의 존재가 곧 본인인증의 완결을 뜻하는 것은 아니다.
* {@link IIamportCertification.certified} 값이 `true` 여야만이 비로소, 본인인증
* 대상자가 자신의 핸드폰 번호로 전송된 OTP 를 아임포트의 본인인증 팝업창에 정확히 적어,
* 본인인증을 완료했음을 의미한다.
*
* @author Samchon
*/
export interface IIamportCertification {
/**
* 아임포트가 발급해 준 식별자 번호.
*/
imp_uid: string;
/**
* 서비스로부터의 식별자 키.
*
* 아임포트 서버가 아닌, 이를 사용하는 서비스가 자체적으로 발급하고 관리한다.
*/
merchant_uid: null | string;
/**
* 본인인증대상자 성명.
*/
name: string;
/**
* 성별.
*/
gender: string;
/**
* 생년월일.
*
* 리눅스 타임이 쓰인다.
*/
birth: number;
/**
* 생년월일, YYYYMMDD 형식.
*/
birthday: string &
tags.Pattern<"^([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$">;
/**
* 외국인 여부.
*/
foreigner: boolean;
/**
* 본인인증 대상자 핸드폰 번호.
*/
phone: string;
/**
* 본인인증 대상자 통신사 코드.
*/
carrier: "SKT" | "KT" | "LGT";
/**
* OTP 인증 여부.
*/
certified: boolean;
/**
* OTP 인증 일시.
*
* 리눅스 타임이 쓰이며, `null` 대신 0 을 씀.
*/
certified_at: number;
/**
* 뭔지 잘 모름, 용도 아시는 분?
*/
unique_key: string;
/**
* 뭔지 잘 모름, 용도 아시는 분?
*/
unique_in_site: string;
/**
* 뭔지 잘 모름, 용도 아시는 분?
*/
pg_tid: string;
/**
* PG 제공자.
*/
pg_provider: string;
/**
* 뭔지 잘 모름, 용도 아시는 분?
*/
origin: string;
/**
* (테스트 전용) OTP 코드.
*
* 오직 `fake-iamport-server` 에서만 쓰이는 속성으로써, 본인인증을 시뮬레이션할 때,
* 어떠한 OTP 코드가 발급되었는 지를 확인하기 위하여 사용된다. 이를 이용하여
* {@link functional.certifications.otp.confirm} 함수를 호출하면, 본인인증을 완료할
* 수 있다.
*/
__otp?: string;
}
export namespace IIamportCertification {
/**
* 본인인증 정보의 접근자 구조체.
*/
export interface IAccessor {
/**
* 본인인증정보의 식별자 키.
*/
imp_uid: string;
}
/**
* 본인 인증 입력 정보.
*/
export interface ICreate {
/**
* 본인인증대상자 성명.
*/
name: string;
/**
* 본인인증 대상자 핸드폰 번호.
*
* 핸드폰 번호에 "-" 값이 들어가던 아니던 상관 없음.
*
* 다만, 내부적으로는 "-" 값을 제거하여 처리한다.
*/
phone: string;
/**
* 생년월일.
*
* YYYYMMDD 형식.
*/
birth: string &
tags.Pattern<"^([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$">;
/**
* 주민등록 뒷부분 첫 자리.
*/
gender_digit: string;
/**
* 본인인증 대상자 통신사 코드.
*/
carrier: "SKT" | "KT" | "LGT";
/**
* 알뜰폰 여부.
*/
is_mvno?: boolean;
/**
* 가맹점 서비스 명칭 또는 domain URL.
*
* KISA 에서 대상자에게 발송하는 SMS에 안내될 서비스 명칭.
*/
commpany?: string;
/**
* 귀사 서비스에서의 본인인증 식별자 키.
*
* 아임포트 서버가 아닌, 이를 사용하는 서비스가 자체적으로 발급하고 관리한다.
*/
merchant_uid?: string;
/**
* PG 사 구분자.
*
* 다날 상점아이디를 2개 이상 동시에 사용하시려는 경우에 설정하면 된다.
*
* **danal.{상점아이디}** 형태로 지정.
*/
pg?: string;
}
/**
* 본인인증 승인을 위한 입력 정보.
*/
export interface IConfirm {
/**
* SMS 로 전송된 본인인증 번호.
*/
otp: string;
}
}