UNPKG

fake-toss-payments-server

Version:
180 lines (179 loc) 5.58 kB
import { tags } from "typia"; import { ITossPayment } from "./ITossPayment"; /** * 카드 결제 정보. * * @author Samchon */ export interface ITossCardPayment extends ITossPayment.IBase<"카드", "NORMAL" | "BILLING"> { /** * 카드 정보. */ card: ITossCardPayment.ICard; /** * 카드사의 즉시 할인 프로모션 정보. */ discount: null | ITossCardPayment.IDiscount; /** * 간편결제로 결제한 경우 간편결제 타입 정보. */ easyPay: null | "토스결제" | "페이코" | "삼성페이"; } export declare namespace ITossCardPayment { /** * 카드 정보. */ interface ICard { /** * 카드사 이름. */ company: string; /** * 카드 번호. */ number: string & tags.Pattern<"[0-9]{16}">; /** * 할부 개월 수. */ installmentPlanMonths: number; /** * 무이자 할부 적용 여부. */ isInterestFree: boolean; /** * 승인 번호. */ approveNo: string; /** * 카드 포인트 사용 여부. */ useCardPoint: false; /** * 카드 타입. */ cardType: "신용" | "체크" | "기프트"; /** * 카드의 소유자 타입. */ ownerType: "개인" | "법인"; /** * 카드 결제의 매입 상태. * * - READY: 매입 대기 * - REQUESTED: 매입 요청됨 * - COMPLETED: 매입 완료 * - CANCEL_REQUESTED: 매입 취소 요청됨 * - CANCELD: 매입 취소됨 */ acquireStatus: "READY" | "REQUESTED" | "COMPLETED" | "CANCEL_REQUESTED" | "CANCELED"; /** * 영수증 URL. */ receiptUrl: string & tags.Format<"uri">; } /** * 카드사의 즉시 할인 프로모션 정보. */ interface IDiscount { /** * 카드사의 즉시 할인 프로모션을 적용한 금액. */ amount: number; } /** * 신용 카드를 이용한 결제 신청 정보. */ interface ICreate { /** * 결제 수단이 신용 카드임을 의미. */ method: "card"; /** * 카드 번호. */ cardNumber: string & tags.Pattern<"[0-9]{16}">; /** * 카드 만료 년도 (2 자리). */ cardExpirationYear: string & tags.Pattern<"\\d{2}">; /** * 카드 만료 월 (2 자리). */ cardExpirationMonth: string & tags.Pattern<"^(0[1-9]|1[012])$">; /** * 카드 비밀번호. */ cardPassword?: string; /** * 할부 개월 수. */ cardInstallmentPlan?: number; /** * 지불 총액. */ amount: number; /** * 면세금 총액. */ taxFreeAmount?: number; /** * 주문 식별자 키. * * 토스 페이먼츠가 아닌, 이를 이용하는 서비스에서 자체적으로 관리하는 식별자 키. */ orderId: string; /** * 주문 이름. * * 토스 페이먼츠가 아닌, 이를 이용하는 서비스에서 발급한 주문명. */ orderName?: string; /** * 고객의 생년월일. * * 표기 형식 YYMMDD. */ customerBirthday?: string & tags.Pattern<"^([0-9]{2})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$">; /** * 고객의 이메일. */ customerEmail?: string & tags.Format<"email">; /** * 해외카드로 결제하는 경우 3DS 인증 적용을 위해 사용. * * 3DS 인증 결과를 전송해야 하는 경우에만 필수. */ vbv?: { /** * 3D Secure 인증 세션에 대한 인증 값. */ cavv: string; /** * 트랜잭션 ID. */ xid: string; /** * 3DS 인증 결과에 대한 코드 값. */ eci: string; }; /** * 결제 승인 여부. * * 오직 가짜 페이먼츠 서버 `fake-toss-payments-server` 에서만 사용되는 값으로써, * 결제 승인을 고의로 지연시키거나 할 때 사용된다. 이 값을 `false` 로 하면, 프론트 * 어플리케이션이 토스 페이먼츠가 제공해주는 결제 창을 사용하여 결제를 진행하는 * 상황을 시뮬레이션할 수 있다. * * 본디 토스 페이먼츠 서버는 프론트 어플리케이션에서 백엔드 서버를 거치지 않고, * 토스 페이먼츠가 제공해주는 결제 창을 이용하여 직접 결제를 요청하는 경우, * 백엔드에서 이를 별도 {@link functional.payments.approve 승인} 처리해주기 전까지 * 정식 결제로 인청치 아니한다. * * 반면 백엔드 서버에서 토스 페이먼츠 서버의 API 를 호출하는 경우, 토스 페이먼츠는 * 이를 그 즉시로 승인해주기, `fake-toss-payments-server` 에서 별도의 승인 처리가 * 필요한 상황을 시뮬레이션하기 위해서는 이러한 속성이 필요한 것. */ __approved?: boolean; } }