iamport-react-native 1.6.4 → 2.0.0-rc.2

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.
Files changed (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -320
  3. package/android/build.gradle +114 -24
  4. package/android/gradle.properties +4 -0
  5. package/android/src/main/AndroidManifest.xml +1 -3
  6. package/android/src/main/java/com/iamportreactnative/IamportReactNativePackage.kt +17 -0
  7. package/android/src/main/java/com/iamportreactnative/IamportReactNativeViewManager.kt +20 -0
  8. package/iamport-react-native.podspec +19 -0
  9. package/ios/IamportReactNative-Bridging-Header.h +1 -0
  10. package/ios/IamportReactNative.xcodeproj/project.pbxproj +47 -20
  11. package/ios/IamportReactNativeViewManager.m +12 -0
  12. package/ios/IamportReactNativeViewManager.swift +32 -0
  13. package/lib/commonjs/components/Certification/index.js +154 -0
  14. package/lib/commonjs/components/Certification/index.js.map +1 -0
  15. package/lib/commonjs/components/ErrorOnParams/index.js +66 -0
  16. package/lib/commonjs/components/ErrorOnParams/index.js.map +1 -0
  17. package/lib/commonjs/components/Loading/index.js +50 -0
  18. package/lib/commonjs/components/Loading/index.js.map +1 -0
  19. package/lib/commonjs/components/Payment/index.js +288 -0
  20. package/lib/commonjs/components/Payment/index.js.map +1 -0
  21. package/lib/commonjs/constants/index.js +103 -0
  22. package/lib/commonjs/constants/index.js.map +1 -0
  23. package/{android/src/main/assets → lib/commonjs}/img/iamport-logo.png +0 -0
  24. package/lib/commonjs/index.js +36 -0
  25. package/lib/commonjs/index.js.map +1 -0
  26. package/lib/commonjs/styles.js +31 -0
  27. package/lib/commonjs/styles.js.map +1 -0
  28. package/lib/commonjs/utils/IamportUrl.js +334 -0
  29. package/lib/commonjs/utils/IamportUrl.js.map +1 -0
  30. package/lib/commonjs/utils/Validation.js +72 -0
  31. package/lib/commonjs/utils/Validation.js.map +1 -0
  32. package/lib/commonjs/utils/ValidationForPayment.js +143 -0
  33. package/lib/commonjs/utils/ValidationForPayment.js.map +1 -0
  34. package/lib/module/components/Certification/index.js +132 -0
  35. package/lib/module/components/Certification/index.js.map +1 -0
  36. package/lib/module/components/ErrorOnParams/index.js +55 -0
  37. package/lib/module/components/ErrorOnParams/index.js.map +1 -0
  38. package/lib/module/components/Loading/index.js +38 -0
  39. package/lib/module/components/Loading/index.js.map +1 -0
  40. package/lib/module/components/Payment/index.js +266 -0
  41. package/lib/module/components/Payment/index.js.map +1 -0
  42. package/lib/module/constants/index.js +98 -0
  43. package/lib/module/constants/index.js.map +1 -0
  44. package/lib/module/img/iamport-logo.png +0 -0
  45. package/lib/module/index.js +10 -0
  46. package/lib/module/index.js.map +1 -0
  47. package/lib/module/styles.js +21 -0
  48. package/lib/module/styles.js.map +1 -0
  49. package/lib/module/utils/IamportUrl.js +322 -0
  50. package/lib/module/utils/IamportUrl.js.map +1 -0
  51. package/{src → lib/module}/utils/Validation.js +25 -9
  52. package/lib/module/utils/Validation.js.map +1 -0
  53. package/{src → lib/module}/utils/ValidationForPayment.js +23 -13
  54. package/lib/module/utils/ValidationForPayment.js.map +1 -0
  55. package/lib/typescript/components/Certification/index.d.ts +10 -0
  56. package/lib/typescript/components/ErrorOnParams/index.d.ts +5 -0
  57. package/lib/typescript/components/Loading/index.d.ts +2 -0
  58. package/lib/typescript/components/Payment/index.d.ts +10 -0
  59. package/lib/typescript/constants/index.d.ts +76 -0
  60. package/lib/typescript/index.d.ts +9 -0
  61. package/lib/typescript/styles.d.ts +19 -0
  62. package/lib/typescript/utils/IamportUrl.d.ts +19 -0
  63. package/lib/typescript/utils/Validation.d.ts +58 -0
  64. package/lib/typescript/utils/ValidationForPayment.d.ts +7 -0
  65. package/package.json +98 -20
  66. package/src/components/Certification/index.tsx +112 -0
  67. package/src/components/ErrorOnParams/{index.js → index.tsx} +20 -25
  68. package/src/components/Loading/{index.js → index.tsx} +9 -10
  69. package/src/components/Payment/index.tsx +243 -0
  70. package/src/constants/index.ts +150 -0
  71. package/src/{index.js → index.tsx} +4 -1
  72. package/src/{styles.js → styles.ts} +3 -1
  73. package/src/utils/IamportUrl.ts +319 -0
  74. package/src/utils/Validation.ts +101 -0
  75. package/src/utils/ValidationForPayment.ts +146 -0
  76. package/IamportReactNative.podspec +0 -19
  77. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  78. package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  79. package/android/gradlew +0 -172
  80. package/android/gradlew.bat +0 -84
  81. package/android/src/main/java/com/iamport/IamportModule.java +0 -88
  82. package/android/src/main/java/com/iamport/IamportPackage.java +0 -23
  83. package/ios/IamportReactNative.h +0 -11
  84. package/ios/IamportReactNative.m +0 -23
  85. package/ios/IamportReactNative.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  86. package/ios/IamportReactNative.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  87. package/ios/IamportReactNative.xcworkspace/contents.xcworkspacedata +0 -9
  88. package/manuals/CALLBACK.md +0 -68
  89. package/manuals/EXAMPLE.md +0 -175
  90. package/manuals/EXPO.md +0 -66
  91. package/manuals/INSTALL.md +0 -72
  92. package/manuals/SETTING.md +0 -72
  93. package/manuals/SUPPORT.md +0 -30
  94. package/manuals/TRANS.md +0 -122
  95. package/manuals/VERSION.md +0 -114
  96. package/manuals/assets/webview-peer-dependency.png +0 -0
  97. package/src/components/Certification/index.js +0 -99
  98. package/src/components/Payment/PaymentWebView.js +0 -285
  99. package/src/components/Payment/index.android.js +0 -51
  100. package/src/components/Payment/index.ios.js +0 -30
  101. package/src/constants/index.js +0 -83
  102. package/src/img/after-linking-iamport.png +0 -0
  103. package/src/img/after-linking-webview.png +0 -0
  104. package/src/img/allow-arbitrary.gif +0 -0
  105. package/src/img/android-studio-avd-manager.png +0 -0
  106. package/src/img/android-studio-build.png +0 -0
  107. package/src/img/app-scheme-registry.gif +0 -0
  108. package/src/img/expo-eject.png +0 -0
  109. package/src/img/ios-emulator-certification.png +0 -0
  110. package/src/img/ios-emulator-home.png +0 -0
  111. package/src/img/ios-emulator-payment.png +0 -0
  112. package/src/img/ios-trans-create-header-file-1.png +0 -0
  113. package/src/img/ios-trans-create-header-file-2.png +0 -0
  114. package/src/img/ios-trans-create-objectivec-file-1.png +0 -0
  115. package/src/img/ios-trans-create-objectivec-file-2.png +0 -0
  116. package/src/img/ios-trans-result.png +0 -0
  117. package/src/utils/IamportUrl.js +0 -103
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _queryString = _interopRequireDefault(require("query-string"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _constants = require("../constants");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ class IamportUrl {
19
+ // Android only
20
+ constructor(url) {
21
+ _defineProperty(this, "url", void 0);
22
+
23
+ _defineProperty(this, "scheme", void 0);
24
+
25
+ _defineProperty(this, "path", void 0);
26
+
27
+ _defineProperty(this, "package", void 0);
28
+
29
+ this.url = url;
30
+ let splittedUrl = url.replace('://', ' ').split(' ');
31
+ this.scheme = splittedUrl[0];
32
+
33
+ if (_reactNative.Platform.OS === 'ios') {
34
+ this.path = this.scheme === 'itmss' ? `https://${splittedUrl[1]}` : this.url;
35
+ } else if (_reactNative.Platform.OS === 'android') {
36
+ if (this.isAppUrl()) {
37
+ if (this.scheme.includes('intent')) {
38
+ let intentUrl = splittedUrl[1].split('#Intent;');
39
+ let host = intentUrl[0];
40
+ let args = intentUrl[1].split(';');
41
+
42
+ if (this.scheme !== 'intent') {
43
+ this.scheme = this.scheme.split(':')[1];
44
+ this.path = this.scheme + '://' + host;
45
+ }
46
+
47
+ args.forEach(s => {
48
+ if (s.startsWith('scheme')) {
49
+ let scheme = s.split('=')[1];
50
+ this.path = scheme + '://' + host;
51
+ this.scheme = scheme;
52
+ } else if (s.startsWith('package')) {
53
+ let p = s.split('=')[1];
54
+ this.package = p;
55
+ }
56
+ });
57
+ } else {
58
+ this.path = this.url;
59
+ }
60
+ } else {
61
+ this.path = this.url;
62
+ }
63
+ }
64
+ }
65
+
66
+ getUrl() {
67
+ return this.url;
68
+ }
69
+
70
+ isPaymentOver() {
71
+ return this.url.includes(_constants.IMPConst.M_REDIRECT_URL);
72
+ }
73
+
74
+ isAppUrl() {
75
+ return !['http', 'https', 'about:blank'].includes(this.scheme);
76
+ }
77
+
78
+ isIframeLoaded() {
79
+ return this.url !== 'about:blank' && !this.url.startsWith(_constants.IMPConst.IMP_SDK_URL);
80
+ }
81
+
82
+ getAppUrl() {
83
+ return this.path;
84
+ }
85
+
86
+ getMarketUrl() {
87
+ if (_reactNative.Platform.OS === 'ios') {
88
+ switch (this.scheme) {
89
+ case 'kftc-bankpay':
90
+ // 뱅크페이
91
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id398456030';
92
+
93
+ case 'ispmobile':
94
+ // ISP/페이북
95
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id369125087';
96
+
97
+ case 'hdcardappcardansimclick':
98
+ // 현대카드 앱카드
99
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id702653088';
100
+
101
+ case 'shinhan-sr-ansimclick':
102
+ // 신한 앱카드
103
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id572462317';
104
+
105
+ case 'kb-acp':
106
+ // KB국민 앱카드
107
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id695436326';
108
+
109
+ case 'mpocket.online.ansimclick':
110
+ // 삼성앱카드
111
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id535125356';
112
+
113
+ case 'lottesmartpay':
114
+ // 롯데 모바일결제
115
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id668497947';
116
+
117
+ case 'lotteappcard':
118
+ // 롯데 앱카드
119
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id688047200';
120
+
121
+ case 'cloudpay':
122
+ // 하나1Q페이(앱카드)
123
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id847268987';
124
+
125
+ case 'citimobileapp':
126
+ // 시티은행 앱카드
127
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id1179759666';
128
+
129
+ case 'payco':
130
+ // 페이코
131
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id924292102';
132
+
133
+ case 'kakaotalk':
134
+ // 카카오톡
135
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id362057947';
136
+
137
+ case 'lpayapp':
138
+ // 롯데 L.pay
139
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id1036098908';
140
+
141
+ case 'wooripay':
142
+ // 우리페이
143
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id1201113419';
144
+
145
+ case 'com.wooricard.wcard':
146
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id1499598869';
147
+
148
+ case 'nhallonepayansimclick':
149
+ // NH농협카드 올원페이(앱카드)
150
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id1177889176';
151
+
152
+ case 'hanawalletmembers':
153
+ // 하나카드(하나멤버스 월렛)
154
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id1038288833';
155
+
156
+ case 'shinsegaeeasypayment':
157
+ // 신세계 SSGPAY
158
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id666237916';
159
+
160
+ case 'naversearchthirdlogin':
161
+ // 네이버페이 앱 로그인
162
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id393499958';
163
+
164
+ case 'lguthepay-xpay':
165
+ // 페이나우
166
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id760098906';
167
+
168
+ case 'lmslpay':
169
+ // 롯데 L.POINT
170
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id473250588';
171
+
172
+ case 'liivbank':
173
+ // Liiv 국민
174
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id1126232922';
175
+
176
+ case 'supertoss':
177
+ // 토스
178
+ return _constants.IMPConst.IOS_MARKET_PREFIX + 'id839333328';
179
+
180
+ default:
181
+ return this.url;
182
+ }
183
+ } else if (_reactNative.Platform.OS === 'android') {
184
+ if (this.package != null) {
185
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + this.package;
186
+ }
187
+
188
+ switch (this.scheme) {
189
+ case _constants.IMPConst.ANDROID_APPSCHEME.ISP:
190
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_ISP;
191
+
192
+ case _constants.IMPConst.ANDROID_APPSCHEME.BANKPAY:
193
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_BANKPAY;
194
+
195
+ case _constants.IMPConst.ANDROID_APPSCHEME.KB_BANKPAY:
196
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_KB_BANKPAY;
197
+
198
+ case _constants.IMPConst.ANDROID_APPSCHEME.NH_BANKPAY:
199
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_NH_BANKPAY;
200
+
201
+ case _constants.IMPConst.ANDROID_APPSCHEME.MG_BANKPAY:
202
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_MG_BANKPAY;
203
+
204
+ case _constants.IMPConst.ANDROID_APPSCHEME.KN_BANKPAY:
205
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_KN_BANKPAY;
206
+
207
+ case _constants.IMPConst.ANDROID_APPSCHEME.KAKAOPAY:
208
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_KAKAOPAY;
209
+
210
+ case _constants.IMPConst.ANDROID_APPSCHEME.SMILEPAY:
211
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_SMILEPAY;
212
+
213
+ case _constants.IMPConst.ANDROID_APPSCHEME.CHAIPAY:
214
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_CHAIPAY;
215
+
216
+ case _constants.IMPConst.ANDROID_APPSCHEME.PAYCO:
217
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_PAYCO;
218
+
219
+ case _constants.IMPConst.ANDROID_APPSCHEME.HYUNDAICARD:
220
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_HYUNDAICARD;
221
+
222
+ case _constants.IMPConst.ANDROID_APPSCHEME.TOSS:
223
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_TOSS;
224
+
225
+ case _constants.IMPConst.ANDROID_APPSCHEME.SHINHANCARD:
226
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_SHINHANCARD;
227
+
228
+ case _constants.IMPConst.ANDROID_APPSCHEME.HANACARD:
229
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_HANACARD;
230
+
231
+ case _constants.IMPConst.ANDROID_APPSCHEME.SAMSUNGCARD:
232
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_SAMSUNGCARD;
233
+
234
+ case _constants.IMPConst.ANDROID_APPSCHEME.KBCARD:
235
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_KBCARD;
236
+
237
+ case _constants.IMPConst.ANDROID_APPSCHEME.NHCARD:
238
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_NHCARD;
239
+
240
+ case _constants.IMPConst.ANDROID_APPSCHEME.CITICARD:
241
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_CITICARD;
242
+
243
+ case _constants.IMPConst.ANDROID_APPSCHEME.LOTTECARD:
244
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_LOTTECARD;
245
+
246
+ case _constants.IMPConst.ANDROID_APPSCHEME.LPAY:
247
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_LPAY;
248
+
249
+ case _constants.IMPConst.ANDROID_APPSCHEME.SSGPAY:
250
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_SSGPAY;
251
+
252
+ case _constants.IMPConst.ANDROID_APPSCHEME.KPAY:
253
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_KPAY;
254
+
255
+ case _constants.IMPConst.ANDROID_APPSCHEME.PAYNOW:
256
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_PAYNOW;
257
+
258
+ case _constants.IMPConst.ANDROID_APPSCHEME.WOORIWONCARD:
259
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_WOORIWONCARD;
260
+
261
+ case _constants.IMPConst.ANDROID_APPSCHEME.LPOINT:
262
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_LPOINT;
263
+
264
+ case _constants.IMPConst.ANDROID_APPSCHEME.KTFAUTH:
265
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_KTFAUTH;
266
+
267
+ case _constants.IMPConst.ANDROID_APPSCHEME.LGTAUTH:
268
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_LGTAUTH;
269
+
270
+ case _constants.IMPConst.ANDROID_APPSCHEME.SKTAUTH:
271
+ return _constants.IMPConst.ANDROID_MARKET_PREFIX + _constants.IMPConst.ANDROID_PACKAGE.PACKAGE_SKTAUTH;
272
+
273
+ default:
274
+ return this.url;
275
+ }
276
+ } else {
277
+ return this.url;
278
+ }
279
+ }
280
+
281
+ getQuery() {
282
+ return _queryString.default.parse(this.getStringifiedQuery());
283
+ }
284
+
285
+ getStringifiedQuery() {
286
+ const decodedUrl = decodeURIComponent(this.url);
287
+ return _queryString.default.extract(decodedUrl);
288
+ }
289
+
290
+ getInicisTransQuery() {
291
+ const {
292
+ m_redirect_url,
293
+ imp_uid,
294
+ merchant_uid
295
+ } = this.getQuery();
296
+ const inicisTransQuery = {
297
+ imp_uid: imp_uid,
298
+ merchant_uid
299
+ };
300
+
301
+ if (m_redirect_url !== null && m_redirect_url !== void 0 && m_redirect_url.includes(_constants.IMPConst.M_REDIRECT_URL)) {
302
+ inicisTransQuery.merchant_uid = typeof merchant_uid === 'object' ? merchant_uid[0] : merchant_uid;
303
+ } else {
304
+ inicisTransQuery.merchant_uid = merchant_uid;
305
+ }
306
+
307
+ return _queryString.default.stringify(inicisTransQuery);
308
+ }
309
+
310
+ async launchApp() {
311
+ if (_reactNative.Platform.OS === 'ios') {
312
+ if (await _reactNative.Linking.canOpenURL(this.url)) {
313
+ return await _reactNative.Linking.openURL(this.getAppUrl());
314
+ }
315
+
316
+ try {
317
+ return await _reactNative.Linking.openURL(this.getAppUrl());
318
+ } catch (e) {
319
+ return await _reactNative.Linking.openURL(this.getMarketUrl());
320
+ }
321
+ } else if (_reactNative.Platform.OS === 'android') {
322
+ try {
323
+ return await _reactNative.Linking.openURL(this.getAppUrl());
324
+ } catch (e) {
325
+ return await _reactNative.Linking.openURL(this.getMarketUrl());
326
+ }
327
+ }
328
+ }
329
+
330
+ }
331
+
332
+ var _default = IamportUrl;
333
+ exports.default = _default;
334
+ //# sourceMappingURL=IamportUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["IamportUrl.ts"],"names":["IamportUrl","constructor","url","splittedUrl","replace","split","scheme","Platform","OS","path","isAppUrl","includes","intentUrl","host","args","forEach","s","startsWith","p","package","getUrl","isPaymentOver","IMPConst","M_REDIRECT_URL","isIframeLoaded","IMP_SDK_URL","getAppUrl","getMarketUrl","IOS_MARKET_PREFIX","ANDROID_MARKET_PREFIX","ANDROID_APPSCHEME","ISP","ANDROID_PACKAGE","PACKAGE_ISP","BANKPAY","PACKAGE_BANKPAY","KB_BANKPAY","PACKAGE_KB_BANKPAY","NH_BANKPAY","PACKAGE_NH_BANKPAY","MG_BANKPAY","PACKAGE_MG_BANKPAY","KN_BANKPAY","PACKAGE_KN_BANKPAY","KAKAOPAY","PACKAGE_KAKAOPAY","SMILEPAY","PACKAGE_SMILEPAY","CHAIPAY","PACKAGE_CHAIPAY","PAYCO","PACKAGE_PAYCO","HYUNDAICARD","PACKAGE_HYUNDAICARD","TOSS","PACKAGE_TOSS","SHINHANCARD","PACKAGE_SHINHANCARD","HANACARD","PACKAGE_HANACARD","SAMSUNGCARD","PACKAGE_SAMSUNGCARD","KBCARD","PACKAGE_KBCARD","NHCARD","PACKAGE_NHCARD","CITICARD","PACKAGE_CITICARD","LOTTECARD","PACKAGE_LOTTECARD","LPAY","PACKAGE_LPAY","SSGPAY","PACKAGE_SSGPAY","KPAY","PACKAGE_KPAY","PAYNOW","PACKAGE_PAYNOW","WOORIWONCARD","PACKAGE_WOORIWONCARD","LPOINT","PACKAGE_LPOINT","KTFAUTH","PACKAGE_KTFAUTH","LGTAUTH","PACKAGE_LGTAUTH","SKTAUTH","PACKAGE_SKTAUTH","getQuery","queryString","parse","getStringifiedQuery","decodedUrl","decodeURIComponent","extract","getInicisTransQuery","m_redirect_url","imp_uid","merchant_uid","inicisTransQuery","stringify","launchApp","Linking","canOpenURL","openURL","e"],"mappings":"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","sourcesContent":["import queryString from 'query-string';\nimport { Linking, Platform } from 'react-native';\nimport { IMPConst } from '../constants';\n\nclass IamportUrl {\n url: string;\n scheme: string;\n path?: string;\n package?: string; // Android only\n\n constructor(url: string) {\n this.url = url;\n let splittedUrl = url.replace('://', ' ').split(' ');\n this.scheme = splittedUrl[0];\n if (Platform.OS === 'ios') {\n this.path =\n this.scheme === 'itmss' ? `https://${splittedUrl[1]}` : this.url;\n } else if (Platform.OS === 'android') {\n if (this.isAppUrl()) {\n if (this.scheme.includes('intent')) {\n let intentUrl = splittedUrl[1].split('#Intent;');\n let host = intentUrl[0];\n let args = intentUrl[1].split(';');\n\n if (this.scheme !== 'intent') {\n this.scheme = this.scheme.split(':')[1];\n this.path = this.scheme + '://' + host;\n }\n args.forEach((s) => {\n if (s.startsWith('scheme')) {\n let scheme = s.split('=')[1];\n this.path = scheme + '://' + host;\n this.scheme = scheme;\n } else if (s.startsWith('package')) {\n let p = s.split('=')[1];\n this.package = p;\n }\n });\n } else {\n this.path = this.url;\n }\n } else {\n this.path = this.url;\n }\n }\n }\n\n getUrl() {\n return this.url;\n }\n\n isPaymentOver() {\n return this.url.includes(IMPConst.M_REDIRECT_URL);\n }\n\n isAppUrl() {\n return !['http', 'https', 'about:blank'].includes(this.scheme);\n }\n\n isIframeLoaded() {\n return (\n this.url !== 'about:blank' && !this.url.startsWith(IMPConst.IMP_SDK_URL)\n );\n }\n\n getAppUrl() {\n return this.path;\n }\n\n getMarketUrl() {\n if (Platform.OS === 'ios') {\n switch (this.scheme) {\n case 'kftc-bankpay': // 뱅크페이\n return IMPConst.IOS_MARKET_PREFIX + 'id398456030';\n case 'ispmobile': // ISP/페이북\n return IMPConst.IOS_MARKET_PREFIX + 'id369125087';\n case 'hdcardappcardansimclick': // 현대카드 앱카드\n return IMPConst.IOS_MARKET_PREFIX + 'id702653088';\n case 'shinhan-sr-ansimclick': // 신한 앱카드\n return IMPConst.IOS_MARKET_PREFIX + 'id572462317';\n case 'kb-acp': // KB국민 앱카드\n return IMPConst.IOS_MARKET_PREFIX + 'id695436326';\n case 'mpocket.online.ansimclick': // 삼성앱카드\n return IMPConst.IOS_MARKET_PREFIX + 'id535125356';\n case 'lottesmartpay': // 롯데 모바일결제\n return IMPConst.IOS_MARKET_PREFIX + 'id668497947';\n case 'lotteappcard': // 롯데 앱카드\n return IMPConst.IOS_MARKET_PREFIX + 'id688047200';\n case 'cloudpay': // 하나1Q페이(앱카드)\n return IMPConst.IOS_MARKET_PREFIX + 'id847268987';\n case 'citimobileapp': // 시티은행 앱카드\n return IMPConst.IOS_MARKET_PREFIX + 'id1179759666';\n case 'payco': // 페이코\n return IMPConst.IOS_MARKET_PREFIX + 'id924292102';\n case 'kakaotalk': // 카카오톡\n return IMPConst.IOS_MARKET_PREFIX + 'id362057947';\n case 'lpayapp': // 롯데 L.pay\n return IMPConst.IOS_MARKET_PREFIX + 'id1036098908';\n case 'wooripay': // 우리페이\n return IMPConst.IOS_MARKET_PREFIX + 'id1201113419';\n case 'com.wooricard.wcard':\n return IMPConst.IOS_MARKET_PREFIX + 'id1499598869';\n case 'nhallonepayansimclick': // NH농협카드 올원페이(앱카드)\n return IMPConst.IOS_MARKET_PREFIX + 'id1177889176';\n case 'hanawalletmembers': // 하나카드(하나멤버스 월렛)\n return IMPConst.IOS_MARKET_PREFIX + 'id1038288833';\n case 'shinsegaeeasypayment': // 신세계 SSGPAY\n return IMPConst.IOS_MARKET_PREFIX + 'id666237916';\n case 'naversearchthirdlogin': // 네이버페이 앱 로그인\n return IMPConst.IOS_MARKET_PREFIX + 'id393499958';\n case 'lguthepay-xpay': // 페이나우\n return IMPConst.IOS_MARKET_PREFIX + 'id760098906';\n case 'lmslpay': // 롯데 L.POINT\n return IMPConst.IOS_MARKET_PREFIX + 'id473250588';\n case 'liivbank': // Liiv 국민\n return IMPConst.IOS_MARKET_PREFIX + 'id1126232922';\n case 'supertoss': // 토스\n return IMPConst.IOS_MARKET_PREFIX + 'id839333328';\n default:\n return this.url;\n }\n } else if (Platform.OS === 'android') {\n if (this.package != null) {\n return IMPConst.ANDROID_MARKET_PREFIX + this.package;\n }\n switch (this.scheme) {\n case IMPConst.ANDROID_APPSCHEME.ISP:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_ISP\n );\n case IMPConst.ANDROID_APPSCHEME.BANKPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_BANKPAY\n );\n case IMPConst.ANDROID_APPSCHEME.KB_BANKPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_KB_BANKPAY\n );\n case IMPConst.ANDROID_APPSCHEME.NH_BANKPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_NH_BANKPAY\n );\n case IMPConst.ANDROID_APPSCHEME.MG_BANKPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_MG_BANKPAY\n );\n case IMPConst.ANDROID_APPSCHEME.KN_BANKPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_KN_BANKPAY\n );\n case IMPConst.ANDROID_APPSCHEME.KAKAOPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_KAKAOPAY\n );\n case IMPConst.ANDROID_APPSCHEME.SMILEPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_SMILEPAY\n );\n case IMPConst.ANDROID_APPSCHEME.CHAIPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_CHAIPAY\n );\n case IMPConst.ANDROID_APPSCHEME.PAYCO:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_PAYCO\n );\n case IMPConst.ANDROID_APPSCHEME.HYUNDAICARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_HYUNDAICARD\n );\n case IMPConst.ANDROID_APPSCHEME.TOSS:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_TOSS\n );\n case IMPConst.ANDROID_APPSCHEME.SHINHANCARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_SHINHANCARD\n );\n case IMPConst.ANDROID_APPSCHEME.HANACARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_HANACARD\n );\n case IMPConst.ANDROID_APPSCHEME.SAMSUNGCARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_SAMSUNGCARD\n );\n case IMPConst.ANDROID_APPSCHEME.KBCARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_KBCARD\n );\n case IMPConst.ANDROID_APPSCHEME.NHCARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_NHCARD\n );\n case IMPConst.ANDROID_APPSCHEME.CITICARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_CITICARD\n );\n case IMPConst.ANDROID_APPSCHEME.LOTTECARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_LOTTECARD\n );\n case IMPConst.ANDROID_APPSCHEME.LPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_LPAY\n );\n case IMPConst.ANDROID_APPSCHEME.SSGPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_SSGPAY\n );\n case IMPConst.ANDROID_APPSCHEME.KPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_KPAY\n );\n case IMPConst.ANDROID_APPSCHEME.PAYNOW:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_PAYNOW\n );\n case IMPConst.ANDROID_APPSCHEME.WOORIWONCARD:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_WOORIWONCARD\n );\n case IMPConst.ANDROID_APPSCHEME.LPOINT:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_LPOINT\n );\n case IMPConst.ANDROID_APPSCHEME.KTFAUTH:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_KTFAUTH\n );\n case IMPConst.ANDROID_APPSCHEME.LGTAUTH:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_LGTAUTH\n );\n case IMPConst.ANDROID_APPSCHEME.SKTAUTH:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_SKTAUTH\n );\n default:\n return this.url;\n }\n } else {\n return this.url;\n }\n }\n\n getQuery() {\n return queryString.parse(this.getStringifiedQuery());\n }\n\n getStringifiedQuery() {\n const decodedUrl = decodeURIComponent(this.url);\n return queryString.extract(decodedUrl);\n }\n\n getInicisTransQuery() {\n const { m_redirect_url, imp_uid, merchant_uid } = this.getQuery();\n const inicisTransQuery = {\n imp_uid: imp_uid,\n merchant_uid,\n };\n if (m_redirect_url?.includes(IMPConst.M_REDIRECT_URL)) {\n inicisTransQuery.merchant_uid =\n typeof merchant_uid === 'object' ? merchant_uid![0] : merchant_uid;\n } else {\n inicisTransQuery.merchant_uid = merchant_uid;\n }\n return queryString.stringify(inicisTransQuery);\n }\n\n async launchApp() {\n if (Platform.OS === 'ios') {\n if (await Linking.canOpenURL(this.url)) {\n return await Linking.openURL(this.getAppUrl() as string);\n }\n try {\n return await Linking.openURL(this.getAppUrl() as string);\n } catch (e) {\n return await Linking.openURL(this.getMarketUrl());\n }\n } else if (Platform.OS === 'android') {\n try {\n return await Linking.openURL(this.getAppUrl() as string);\n } catch (e) {\n return await Linking.openURL(this.getMarketUrl());\n }\n }\n }\n}\n\nexport default IamportUrl;\n"]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.IMPData = exports.Validation = void 0;
7
+
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+
10
+ class Validation {
11
+ constructor(userCode, loading, callback, data) {
12
+ _defineProperty(this, "userCode", void 0);
13
+
14
+ _defineProperty(this, "loading", void 0);
15
+
16
+ _defineProperty(this, "callback", void 0);
17
+
18
+ _defineProperty(this, "data", void 0);
19
+
20
+ _defineProperty(this, "isValid", void 0);
21
+
22
+ _defineProperty(this, "message", void 0);
23
+
24
+ this.userCode = userCode;
25
+ this.loading = loading;
26
+ this.callback = callback;
27
+ this.data = data;
28
+ this.isValid = true;
29
+ this.message = '';
30
+ this.validateUserCode();
31
+ }
32
+
33
+ validateUserCode() {
34
+ if (!this.userCode) {
35
+ this.isValid = false;
36
+ this.message = '가맹점 식별코드(userCode)는 필수입력입니다.';
37
+ return;
38
+ }
39
+
40
+ this.validateLoading();
41
+ }
42
+
43
+ validateLoading() {
44
+ if (this.loading !== undefined && typeof this.loading !== 'object') {
45
+ this.isValid = false;
46
+ this.message = '로딩(loading) 컴포넌트가 올바르지 않습니다.';
47
+ return;
48
+ }
49
+
50
+ this.validateCallback();
51
+ }
52
+
53
+ validateCallback() {}
54
+
55
+ validateData() {}
56
+
57
+ getIsValid() {
58
+ return this.isValid;
59
+ }
60
+
61
+ getMessage() {
62
+ return this.message;
63
+ }
64
+
65
+ }
66
+
67
+ exports.Validation = Validation;
68
+ let IMPData;
69
+ exports.IMPData = IMPData;
70
+
71
+ (function (_IMPData) {})(IMPData || (exports.IMPData = IMPData = {}));
72
+ //# sourceMappingURL=Validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Validation.ts"],"names":["Validation","constructor","userCode","loading","callback","data","isValid","message","validateUserCode","validateLoading","undefined","validateCallback","validateData","getIsValid","getMessage","IMPData"],"mappings":";;;;;;;;;AAAA,MAAMA,UAAN,CAAiB;AAQfC,EAAAA,WAAW,CACTC,QADS,EAETC,OAFS,EAGTC,QAHS,EAITC,IAJS,EAKT;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA,SAAKH,QAAL,GAAgBA,QAAhB;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACA,SAAKC,IAAL,GAAYA,IAAZ;AAEA,SAAKC,OAAL,GAAe,IAAf;AACA,SAAKC,OAAL,GAAe,EAAf;AAEA,SAAKC,gBAAL;AACD;;AAEDA,EAAAA,gBAAgB,GAAG;AACjB,QAAI,CAAC,KAAKN,QAAV,EAAoB;AAClB,WAAKI,OAAL,GAAe,KAAf;AACA,WAAKC,OAAL,GAAe,8BAAf;AACA;AACD;;AACD,SAAKE,eAAL;AACD;;AAEDA,EAAAA,eAAe,GAAG;AAChB,QAAI,KAAKN,OAAL,KAAiBO,SAAjB,IAA8B,OAAO,KAAKP,OAAZ,KAAwB,QAA1D,EAAoE;AAClE,WAAKG,OAAL,GAAe,KAAf;AACA,WAAKC,OAAL,GAAe,8BAAf;AACA;AACD;;AACD,SAAKI,gBAAL;AACD;;AAEDA,EAAAA,gBAAgB,GAAG,CAAE;;AAErBC,EAAAA,YAAY,GAAG,CAAE;;AAEjBC,EAAAA,UAAU,GAAG;AACX,WAAO,KAAKP,OAAZ;AACD;;AAEDQ,EAAAA,UAAU,GAAG;AACX,WAAO,KAAKP,OAAZ;AACD;;AArDc;;;;;;yBAwDPQ,O,uBAAAA,O","sourcesContent":["class Validation {\n userCode: string;\n loading: object;\n callback: ((response: any) => any) | undefined;\n data: IMPData.CertificationData | IMPData.PaymentData | undefined;\n isValid: boolean;\n message: string;\n\n constructor(\n userCode: string,\n loading: object,\n callback?: (response: any) => any,\n data?: IMPData.CertificationData | IMPData.PaymentData\n ) {\n this.userCode = userCode;\n this.loading = loading;\n this.callback = callback;\n this.data = data;\n\n this.isValid = true;\n this.message = '';\n\n this.validateUserCode();\n }\n\n validateUserCode() {\n if (!this.userCode) {\n this.isValid = false;\n this.message = '가맹점 식별코드(userCode)는 필수입력입니다.';\n return;\n }\n this.validateLoading();\n }\n\n validateLoading() {\n if (this.loading !== undefined && typeof this.loading !== 'object') {\n this.isValid = false;\n this.message = '로딩(loading) 컴포넌트가 올바르지 않습니다.';\n return;\n }\n this.validateCallback();\n }\n\n validateCallback() {}\n\n validateData() {}\n\n getIsValid() {\n return this.isValid;\n }\n\n getMessage() {\n return this.message;\n }\n}\n\nnamespace IMPData {\n export interface CertificationData {\n merchant_uid: string;\n company: string;\n carrier: string;\n name: string;\n phone: string;\n min_age?: string;\n m_redirect_url?: string;\n }\n\n export interface PaymentData {\n pg: string;\n pay_method: string;\n currency?: string;\n notice_url?: string | string[];\n display?: {\n card_quota: number[];\n };\n merchant_uid: string;\n amount: string | number;\n buyer_tel: string;\n app_scheme?: string;\n escrow: boolean;\n name: string;\n tax_free?: number;\n buyer_name: string;\n buyer_email: string;\n buyer_addr?: string;\n buyer_postcode?: string;\n custom_data?: object;\n vbank_due?: string;\n popup?: boolean;\n digital?: boolean;\n language?: string;\n biz_num?: string;\n customer_uid?: string;\n naverPopupMode?: boolean;\n naverUseCfm?: string;\n naverProducts?: object[];\n m_redirect_url?: string;\n }\n}\n\nexport { Validation, IMPData };\n"]}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Validation = require("./Validation");
9
+
10
+ var _constants = require("../constants");
11
+
12
+ class ValidationForPayment extends _Validation.Validation {
13
+ constructor(userCode, loading, callback, data) {
14
+ super(userCode, loading, callback, data);
15
+ }
16
+
17
+ validateCallback() {
18
+ if (this.callback !== undefined && typeof this.callback !== 'function') {
19
+ this.isValid = false;
20
+ this.message = '콜백 함수(callback)가 올바르지 않습니다.';
21
+ return;
22
+ }
23
+
24
+ this.validateData();
25
+ }
26
+
27
+ validateData() {
28
+ const {
29
+ pg,
30
+ pay_method,
31
+ merchant_uid,
32
+ amount,
33
+ buyer_tel,
34
+ app_scheme,
35
+ language,
36
+ digital,
37
+ biz_num,
38
+ customer_uid,
39
+ naverPopupMode,
40
+ popup
41
+ } = this.data;
42
+
43
+ if (this.data === undefined) {
44
+ this.isValid = false;
45
+ this.message = '결제 파라미터(data)는 필수입력입니다.';
46
+ return;
47
+ }
48
+
49
+ if (merchant_uid === undefined) {
50
+ this.isValid = false;
51
+ this.message = '주문번호(merchant_uid)는 필수입력입니다.';
52
+ return;
53
+ }
54
+
55
+ if (amount === undefined) {
56
+ this.isValid = false;
57
+ this.message = '결제금액(amount)은 필수입력입니다.';
58
+ return;
59
+ }
60
+
61
+ if (buyer_tel === undefined) {
62
+ this.isValid = false;
63
+ this.message = '구매자 번호(buyer_tel)는 필수입력입니다.';
64
+ return;
65
+ }
66
+
67
+ if (app_scheme === undefined) {
68
+ this.isValid = false;
69
+ this.message = 'app_scheme은 필수입력입니다.';
70
+ return;
71
+ }
72
+
73
+ if (pg) {
74
+ const [pgProvider] = pg.split('.');
75
+
76
+ if (_constants.IMPConst.PG.indexOf(pgProvider) === -1) {
77
+ this.isValid = false;
78
+ this.message = 'PG사가 올바르지 않습니다.';
79
+ }
80
+ }
81
+
82
+ if (language && pg !== 'paypal') {
83
+ if (_constants.IMPConst.EN_AVAILABLE_PG.indexOf(pg) !== -1) {
84
+ if (pg === 'eximbay') {
85
+ if (!['ko', 'en', 'zh', 'jp'].includes(language)) {
86
+ this.isValid = false;
87
+ this.message = '올바르지 않은 언어 설정입니다.\n 선택하신 PG사는 ko, en, zh jp 옵션을 지원합니다.';
88
+ return;
89
+ }
90
+ } else if (_constants.IMPConst.LANGUAGE.indexOf(language) !== -1) {
91
+ this.isValid = false;
92
+ this.message = '올바르지 않은 언어 설정입니다.\n 선택하신 PG사는 ko 또는 en 옵션을 지원합니다.';
93
+ return;
94
+ }
95
+ } else if (language !== 'ko') {
96
+ this.isValid = false;
97
+ this.message = '올바르지 않은 언어 설정입니다.\n 선택하신 PG사는 ko 옵션만 지원합니다.';
98
+ return;
99
+ }
100
+ }
101
+
102
+ if (pay_method === 'phone' && digital === undefined) {
103
+ this.isValid = false;
104
+ this.message = '휴대폰 소액결제시 digital은 필수입력입니다.';
105
+ return;
106
+ }
107
+
108
+ if (pg === 'syrup') {
109
+ this.isValid = false;
110
+ this.message = '해당 모듈은 현재 시럽페이를 지원하지 않습니다.';
111
+ return;
112
+ }
113
+
114
+ if (pg === 'paypal' && popup) {
115
+ this.isValid = false;
116
+ this.message = '해당 모듈에서 popup은\n페이팔 결제시 지원하지 않습니다.';
117
+ return;
118
+ }
119
+
120
+ if (pg === 'naverpay' && naverPopupMode) {
121
+ this.isValid = false;
122
+ this.message = '해당 모듈에서 popup은\n네이버 페이 결제시 지원하지 않습니다.';
123
+ return;
124
+ }
125
+
126
+ if (pg === 'danal_tpay' && pay_method === 'vbank' && biz_num === undefined) {
127
+ this.isValid = false;
128
+ this.message = '다날-가상계좌시 biz_num은 필수입력입니다.';
129
+ return;
130
+ }
131
+
132
+ if ((pg === 'kcp_billing' || pg === 'syrup') && customer_uid === undefined) {
133
+ this.isValid = false;
134
+ this.message = '정기결제시 customer_uid는 필수입력입니다.';
135
+ return;
136
+ }
137
+ }
138
+
139
+ }
140
+
141
+ var _default = ValidationForPayment;
142
+ exports.default = _default;
143
+ //# sourceMappingURL=ValidationForPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ValidationForPayment.ts"],"names":["ValidationForPayment","Validation","constructor","userCode","loading","callback","data","validateCallback","undefined","isValid","message","validateData","pg","pay_method","merchant_uid","amount","buyer_tel","app_scheme","language","digital","biz_num","customer_uid","naverPopupMode","popup","pgProvider","split","IMPConst","PG","indexOf","EN_AVAILABLE_PG","includes","LANGUAGE"],"mappings":"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","sourcesContent":["import { Validation, IMPData } from './Validation';\nimport { IMPConst } from '../constants';\n\nclass ValidationForPayment extends Validation {\n constructor(\n userCode: string,\n loading: object,\n callback: (response: any) => any,\n data: IMPData.PaymentData,\n ) {\n super(userCode, loading, callback, data);\n }\n\n validateCallback() {\n if (this.callback !== undefined && typeof this.callback !== 'function') {\n this.isValid = false;\n this.message = '콜백 함수(callback)가 올바르지 않습니다.';\n return;\n }\n this.validateData();\n }\n\n validateData() {\n const {\n pg,\n pay_method,\n merchant_uid,\n amount,\n buyer_tel,\n app_scheme,\n language,\n digital,\n biz_num,\n customer_uid,\n naverPopupMode,\n popup,\n } = <IMPData.PaymentData>this.data;\n\n if (this.data === undefined) {\n this.isValid = false;\n this.message = '결제 파라미터(data)는 필수입력입니다.';\n return;\n }\n\n if (merchant_uid === undefined) {\n this.isValid = false;\n this.message = '주문번호(merchant_uid)는 필수입력입니다.';\n return;\n }\n\n if (amount === undefined) {\n this.isValid = false;\n this.message = '결제금액(amount)은 필수입력입니다.';\n return;\n }\n\n if (buyer_tel === undefined) {\n this.isValid = false;\n this.message = '구매자 번호(buyer_tel)는 필수입력입니다.';\n return;\n }\n\n if (app_scheme === undefined) {\n this.isValid = false;\n this.message = 'app_scheme은 필수입력입니다.';\n return;\n }\n\n if (pg) {\n const [pgProvider] = pg.split('.');\n if (IMPConst.PG.indexOf(pgProvider as any) === -1) {\n this.isValid = false;\n this.message = 'PG사가 올바르지 않습니다.';\n }\n }\n\n if (language && pg !== 'paypal') {\n if (IMPConst.EN_AVAILABLE_PG.indexOf(pg as any) !== -1) {\n if (pg === 'eximbay') {\n if (!['ko', 'en', 'zh', 'jp'].includes(language)) {\n this.isValid = false;\n this.message =\n '올바르지 않은 언어 설정입니다.\\n 선택하신 PG사는 ko, en, zh jp 옵션을 지원합니다.';\n return;\n }\n } else if (IMPConst.LANGUAGE.indexOf(language as any) !== -1) {\n this.isValid = false;\n this.message =\n '올바르지 않은 언어 설정입니다.\\n 선택하신 PG사는 ko 또는 en 옵션을 지원합니다.';\n return;\n }\n } else if (language !== 'ko') {\n this.isValid = false;\n this.message =\n '올바르지 않은 언어 설정입니다.\\n 선택하신 PG사는 ko 옵션만 지원합니다.';\n return;\n }\n }\n\n if (pay_method === 'phone' && digital === undefined) {\n this.isValid = false;\n this.message = '휴대폰 소액결제시 digital은 필수입력입니다.';\n return;\n }\n\n if (pg === 'syrup') {\n this.isValid = false;\n this.message = '해당 모듈은 현재 시럽페이를 지원하지 않습니다.';\n return;\n }\n\n if (pg === 'paypal' && popup) {\n this.isValid = false;\n this.message = '해당 모듈에서 popup은\\n페이팔 결제시 지원하지 않습니다.';\n return;\n }\n\n if ((pg === 'naverpay') && naverPopupMode) {\n this.isValid = false;\n this.message =\n '해당 모듈에서 popup은\\n네이버 페이 결제시 지원하지 않습니다.';\n return;\n }\n\n if (\n pg === 'danal_tpay' &&\n pay_method === 'vbank' &&\n biz_num === undefined\n ) {\n this.isValid = false;\n this.message = '다날-가상계좌시 biz_num은 필수입력입니다.';\n return;\n }\n\n if (\n (pg === 'kcp_billing' || pg === 'syrup') &&\n customer_uid === undefined\n ) {\n this.isValid = false;\n this.message = '정기결제시 customer_uid는 필수입력입니다.';\n return;\n }\n }\n}\n\nexport default ValidationForPayment;\n"]}