@danalpay/javascript-sdk 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Danal SDK
2
2
 
3
- 다날 결제창 연동을 위한 JavaScript SDK 입니다.
3
+ 다날(Danal) 결제창을 서비스에 쉽게 연동할 수 있도록 제공되는 공식 JavaScript SDK입니다.
4
+ 일반결제, 빌링(정기결제) 등 다날 결제 플로우를 안전하고 간편하게 구현할 수 있습니다.
4
5
 
5
6
  ---
6
7
 
@@ -27,11 +28,7 @@ const danal = await loadDanalPaymentsSDK({ clientKey: "YOUR_KEY" });
27
28
  await danal.requestPayment({...});
28
29
  ```
29
30
 
30
- ## TypeScript
31
-
32
- TypeScript 타입 정의 파일(.d.ts)을 포함하고 있어, 타입 안전성과 자동완성을 지원합니다.
33
-
34
- ## OUR Site
31
+ ## Our Site
35
32
 
36
33
  더 자세한 가이드 문서, API 레퍼런스, 샘플 코드는 개발자 사이트에서 확인하세요.<br/>
37
34
  [➡️ Danal 개발자 사이트](https://developers.danalpay.com)
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  type Paymethod = 'CARD' | 'NAVERPAY' | 'KAKAOPAY' | 'PAYCO' | 'MOBILE' | 'TRANSFER' | 'VACCOUNT' | 'CULTURELAND' | 'BOOK_AND_LIFE' | 'INTEGRATED';
2
+ type BillingMethod = 'CARD_BILLING';
2
3
 
3
4
  /** PayMethod를 `CARD`로 설정하면 카드/간편결제 통합결제창, 카드・간편결제 자체창을 사용할 수 있어요. */
4
5
  type CardPaymentsRequest = {
@@ -74,9 +75,84 @@ type IntegratedPaymetnsRequest = {
74
75
  }>;
75
76
  };
76
77
 
77
- type CommonBaseParams = {
78
+ /**
79
+ * PayMethod를 `CARD_BILLING`으로 설정하면
80
+ * 카드 자동결제(정기결제) 등록창을 호출할 수 있습니다.
81
+ */
82
+ type CardBillingRequest = {
83
+ /**
84
+ * 정기결제 등록 화면에 노출되는 상단 문구 타입입니다.
85
+ *
86
+ * - '00' : 정기결제를 등록합니다 (기본 값)
87
+ * - '01' : 간편결제를 등록합니다
88
+ * - '02' : 자동결제를 등록합니다
89
+ *
90
+ * 미지정 시 기본 문구가 노출됩니다.
91
+ */
92
+ title?: '00' | '01' | '02';
93
+ /**
94
+ * 제공 기간 또는 이용 기간을 표시하는 문장입니다.
95
+ *
96
+ * 예:
97
+ * - "2026.12.01 - 2027.12.31"
98
+ * - "30일 무료 체험 후 자동결제"
99
+ * - "익월 10일 자동결제"
100
+ *
101
+ */
102
+ offerPeriod?: string;
103
+ /**
104
+ * 카드 등록과 동시에 인증(결제)를 수행할지 여부입니다.
105
+ *
106
+ * - true : 인증(결제) 후 카드 등록
107
+ * - false : 인증(결제)없이 카드 등록
108
+ *
109
+ * 기본값은 false 입니다.
110
+ */
111
+ authOnly?: boolean;
112
+ /**
113
+ * 등록 화면에서 결제 금액 노출 여부를 설정합니다.
114
+ *
115
+ * - true : 결제 금액 숨김
116
+ * - false : 결제 금액 노출
117
+ *
118
+ * 기본값은 false 입니다.
119
+ * 결제 금액 숨김(true)은 `authOnly` 값이 true일 때만 사용할 수 있습니다.
120
+ */
121
+ hideAmount?: boolean;
122
+ /**
123
+ * 카드 소유주 정보입니다.
124
+ *
125
+ * type에 따라 value 형식이 달라질 수 있습니다.
126
+ */
127
+ cardOwner?: {
128
+ /**
129
+ * 카드 소유주 유형
130
+ *
131
+ * - PERSONAL : 개인카드
132
+ * - BUSINESS : 법인카드
133
+ */
134
+ type: 'PERSONAL' | 'BUSINESS';
135
+ /**
136
+ * 카드 소유주 식별 값
137
+ *
138
+ * - PERSONAL : 주민등록번호(앞 6자리)
139
+ * - BUSINESS : 사업자등록번호(10자리)
140
+ */
141
+ value: string;
142
+ };
143
+ /**
144
+ * 결제자 휴대폰 번호입니다.
145
+ *
146
+ * 숫자만 입력하며, 하이픈(-)은 제외합니다.
147
+ *
148
+ * 예: "01012345678"
149
+ */
150
+ userPhoneNumber?: string;
151
+ };
152
+
153
+ type CommonBaseParams<T> = {
78
154
  /** 결제수단입니다. 결제수단을 구분하는 값입니다. */
79
- paymentsMethod: Paymethod;
155
+ paymentsMethod: T;
80
156
  /** 상품명입니다. */
81
157
  orderName: string;
82
158
  /** 가맹점 주문번호입니다. */
@@ -93,6 +169,8 @@ type CommonBaseParams = {
93
169
  failUrl: string;
94
170
  /** 사용자 이메일입니다. */
95
171
  userEmail?: string;
172
+ /** 사용자 이름입니다. */
173
+ userName?: string;
96
174
  };
97
175
 
98
176
  type OptionParams = {
@@ -111,11 +189,18 @@ type PaymentRequestMap = {
111
189
  PAYCO: Omit<CardPaymentsRequest, 'cardCodes'>;
112
190
  INTEGRATED: IntegratedPaymetnsRequest;
113
191
  };
114
- type RequestPaymentParam<T extends keyof PaymentRequestMap> = CommonBaseParams & OptionParams & PaymentRequestMap[T];
192
+ type BillingRequestMap = {
193
+ CARD_BILLING: CardBillingRequest;
194
+ };
195
+ type RequestPaymentParam<T extends keyof PaymentRequestMap> = CommonBaseParams<Paymethod> & OptionParams & PaymentRequestMap[T];
196
+ type RequestBillingParam<T extends keyof BillingRequestMap> = CommonBaseParams<BillingMethod> & OptionParams & BillingRequestMap[T];
115
197
  interface DanalPayments {
116
198
  requestPayment<T extends Paymethod>(args: {
117
199
  paymentsMethod: T;
118
200
  } & RequestPaymentParam<T>): Promise<void>;
201
+ requestBilling<T extends BillingMethod>(args: {
202
+ paymentsMethod: T;
203
+ } & RequestBillingParam<T>): Promise<void>;
119
204
  }
120
205
  type InitialParams = {
121
206
  clientKey: string;
@@ -129,4 +214,4 @@ declare function loadDanalPaymentsSDK(params: InitialParams, scriptOption?: Part
129
214
  declare const loadDanalPayemntsSDK: typeof loadDanalPaymentsSDK;
130
215
 
131
216
  export { loadDanalPayemntsSDK, loadDanalPaymentsSDK };
132
- export type { DanalPayments, Paymethod, RequestPaymentParam };
217
+ export type { BillingMethod as BillingMethodType, Paymethod as PaymethodType, RequestBillingParam as RequestBillingParamType, RequestPaymentParam as RequestPaymentParamType };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@danalpay/javascript-sdk",
3
3
  "description": "Danal ONE API javascript SDK",
4
- "version": "1.0.4",
4
+ "version": "1.1.0",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
7
7
  "types": "dist/index.d.ts",