@portone/browser-sdk
Version:
PortOne SDK for browser
58 lines (57 loc) • 1.9 kB
TypeScript
import { CapsToCamel } from '../utils.js';
import { Entity } from './index.js';
export declare function requestIssueBillingKeyAndPay(request: IssueBillingKeyAndPayRequest): Promise<IssueBillingKeyAndPayResponse>;
export type IssueBillingKeyAndPayRequest = {
storeId: string;
paymentId: string;
orderName: string;
totalAmount: number;
currency: Entity.Currency;
channelKey?: string;
pgProvider?: Entity.PgProvider;
isTestChannel?: boolean;
taxFreeAmount?: number;
vatAmount?: number;
customer?: Entity.Customer;
billingKeyAndPayMethod: Entity.BillingKeyAndPayMethod;
windowType?: Entity.WindowTypes;
redirectUrl?: string;
noticeUrls?: string[];
locale?: Entity.Locale;
isCulturalExpense?: boolean;
customData?: Record<string, any>;
offerPeriod?: Entity.OfferPeriod;
appScheme?: string;
productType?: Entity.ProductType;
storeDetails?: Entity.StoreDetails;
country?: Entity.Country;
bypass?: Entity.IssueBillingKeyAndPayBypass;
popup?: Entity.Popup;
iframe?: Entity.Iframe;
} & (BillingKeyAndPayMethodOptions<'MOBILE', Mobile> | {
billingKeyAndPayMethod?: undefined;
});
/**
* iframe/popup 방식으로 PG사 창이 렌더링 된 경우
* 프로세스 종료 후, 콜백 함수로 전달 될 빌링키 발급 및 결제 정보 데이터
*/
export type IssueBillingKeyAndPayResponse = {
transactionType: typeof Entity.TransactionType.ISSUE_BILLING_KEY_AND_PAY;
txId: string;
paymentId: string;
billingKey: string;
code?: string;
message?: string;
pgCode?: string;
pgMessage?: string;
};
type BillingKeyAndPayMethodOptions<Method extends Entity.BillingKeyAndPayMethod, T> = {
billingKeyAndPayMethod: Method;
} & {
[K in Method as CapsToCamel<K>]?: T;
};
type Mobile = {
carrier?: Entity.Carrier;
availableCarriers?: Entity.Carrier[];
};
export {};