fake-iamport-server
Version:
Fake iamport server for testing
170 lines (149 loc) • 4.24 kB
text/typescript
import { tags } from "typia";
import { IIamportPayment } from "./IIamportPayment";
/**
* 간편 결제 카드 정보.
*
* @author Samchon
*/
export interface IIamportSubscription extends IIamportSubscription.IAccessor {
pg_provider: string;
pg_id: string;
card_name: string;
card_code: string;
card_number: string;
card_type: string;
customer_name: null | string;
customer_tel: null | string;
customer_email: null | string;
customer_addr: null | string;
customer_postcode: null | string;
inserted: number;
updated: number;
}
export namespace IIamportSubscription {
/**
* {@link IIamportSubscription} 의 접근자 정보.
*/
export interface IAccessor {
/**
* 고객 식별자 키.
*
* 아임포트가 아닌, 이를 이용하는 서비스에서 자체적으로 관리하는 식별자 키.
*
* 다만 고객이라기보다 실제로는 카드의 식별자 키로 써야함.
*/
customer_uid: string;
}
/**
* 간편 결제 카드 입력 정보.
*/
export interface ICreate extends IAccessor {
/**
* 카드 번호.
*
* 형식: XXXX-XXXX-XXXX-XXXX
*/
card_number: string & tags.Pattern<"\\d{4}-\\d{4}-\\d{4}-\\d{4}">;
/**
* 카드 유효기간.
*
* 형식: YYYY-MM
*/
expiry: string & tags.Pattern<"^([0-9]{4})-(0[1-9]|1[012])$">;
/**
* 생년월일 YYMMDD 또는 사업자등록번호 10자리.
*/
birth: string &
tags.Pattern<"^(([0-9]{2})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01]))|(\\d{10})$">;
/**
* 카드 비밀번호 앞 두 자리.
*/
pwd_2digit?: string & tags.Pattern<"\\d{2}">;
/**
* 카드 인증번호 (카드 뒷면 3 자리).
*/
cvc?: string & tags.Pattern<"\\d{2}">;
customer_name?: string;
customer_tel?: string;
customer_email?: string & tags.Format<"email">;
customr_addr?: string;
customer_postcode?: string;
}
/**
* 결제 신청 입력 정보.
*/
export interface IOnetime
extends Omit<ICreate, "customer_uid">,
Omit<IAgain, "customer_uid"> {
/**
* 고객 식별자 키.
*
* 아임포트가 아닌, 이를 이용하는 서비스에서 자체적으로 관리하는 식별자 키.
*
* 다만 고객이라기보다 실제로는 카드의 식별자 키로 써야함.
*
* 이를 생략시 단순 결제로만 그치며, 카드 정보가 간편 결제용으로 등록되지 아니함.
*/
customer_uid?: string;
}
/**
* 간편 결제 카드로 결제 신청 입력 정보.
*/
export interface IAgain extends IAccessor {
/**
* 주문 식별자 키.
*
* 아임포트가 아닌 이를 이용하는 서비스에서 자체적으로 관리하는 식별자 키.
*/
merchant_uid: string;
/**
* 결제 총액.
*/
amount: number;
/**
* 주문 이름.
*/
name: string;
/**
* 통화 정보.
*/
currency?: IIamportPayment.Currency;
/**
* 면세 공급가액.
*
* 기본값은 0 로써, 알아서 amount 의 1/11 로써 부가세 처리됨.
*/
tax_free?: number;
/**
* 할부 개월 수.
*
* 일시불은 0.
*/
card_quota?: number;
buyer_name?: string;
buyer_email?: string & tags.Format<"email">;
buyer_tel?: string;
buyer_addr?: string;
buyer_postcode?: string;
/**
* 카드할부처리할 때, 할부이자가 발생하는 경우 (카드사 무이자 프로모션 제외).
*
* 부과되는 할부이자를 고객대신 가맹점이 지불하고자 PG사와 계약된 경우(현재, 나이스페이먼츠만 지원됨)
*/
interest_free_by_merchant?: boolean;
/**
* 승인요청시 카드사 포인트 차감하며 결제승인처리할지 flag.
*
* PG사 영업담당자와 계약 당시 사전 협의 필요(현재, 나이스페이먼츠만 지원됨)
*/
use_card_point?: boolean;
/**
* 임의 정보를 기재할 수 있다.
*/
custom_data?: string;
/**
* 결제 성공시 통지될 Notification, 웹훅 URL.
*/
notice_url?: string & tags.Format<"uri">;
}
}