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.
- package/LICENSE +21 -0
- package/README.md +25 -320
- package/android/build.gradle +114 -24
- package/android/gradle.properties +4 -0
- package/android/src/main/AndroidManifest.xml +1 -3
- package/android/src/main/java/com/iamportreactnative/IamportReactNativePackage.kt +17 -0
- package/android/src/main/java/com/iamportreactnative/IamportReactNativeViewManager.kt +20 -0
- package/iamport-react-native.podspec +19 -0
- package/ios/IamportReactNative-Bridging-Header.h +1 -0
- package/ios/IamportReactNative.xcodeproj/project.pbxproj +47 -20
- package/ios/IamportReactNativeViewManager.m +12 -0
- package/ios/IamportReactNativeViewManager.swift +32 -0
- package/lib/commonjs/components/Certification/index.js +154 -0
- package/lib/commonjs/components/Certification/index.js.map +1 -0
- package/lib/commonjs/components/ErrorOnParams/index.js +66 -0
- package/lib/commonjs/components/ErrorOnParams/index.js.map +1 -0
- package/lib/commonjs/components/Loading/index.js +50 -0
- package/lib/commonjs/components/Loading/index.js.map +1 -0
- package/lib/commonjs/components/Payment/index.js +288 -0
- package/lib/commonjs/components/Payment/index.js.map +1 -0
- package/lib/commonjs/constants/index.js +103 -0
- package/lib/commonjs/constants/index.js.map +1 -0
- package/{android/src/main/assets → lib/commonjs}/img/iamport-logo.png +0 -0
- package/lib/commonjs/index.js +36 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/styles.js +31 -0
- package/lib/commonjs/styles.js.map +1 -0
- package/lib/commonjs/utils/IamportUrl.js +334 -0
- package/lib/commonjs/utils/IamportUrl.js.map +1 -0
- package/lib/commonjs/utils/Validation.js +72 -0
- package/lib/commonjs/utils/Validation.js.map +1 -0
- package/lib/commonjs/utils/ValidationForPayment.js +143 -0
- package/lib/commonjs/utils/ValidationForPayment.js.map +1 -0
- package/lib/module/components/Certification/index.js +132 -0
- package/lib/module/components/Certification/index.js.map +1 -0
- package/lib/module/components/ErrorOnParams/index.js +55 -0
- package/lib/module/components/ErrorOnParams/index.js.map +1 -0
- package/lib/module/components/Loading/index.js +38 -0
- package/lib/module/components/Loading/index.js.map +1 -0
- package/lib/module/components/Payment/index.js +266 -0
- package/lib/module/components/Payment/index.js.map +1 -0
- package/lib/module/constants/index.js +98 -0
- package/lib/module/constants/index.js.map +1 -0
- package/lib/module/img/iamport-logo.png +0 -0
- package/lib/module/index.js +10 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/styles.js +21 -0
- package/lib/module/styles.js.map +1 -0
- package/lib/module/utils/IamportUrl.js +322 -0
- package/lib/module/utils/IamportUrl.js.map +1 -0
- package/{src → lib/module}/utils/Validation.js +25 -9
- package/lib/module/utils/Validation.js.map +1 -0
- package/{src → lib/module}/utils/ValidationForPayment.js +23 -13
- package/lib/module/utils/ValidationForPayment.js.map +1 -0
- package/lib/typescript/components/Certification/index.d.ts +10 -0
- package/lib/typescript/components/ErrorOnParams/index.d.ts +5 -0
- package/lib/typescript/components/Loading/index.d.ts +2 -0
- package/lib/typescript/components/Payment/index.d.ts +10 -0
- package/lib/typescript/constants/index.d.ts +76 -0
- package/lib/typescript/index.d.ts +9 -0
- package/lib/typescript/styles.d.ts +19 -0
- package/lib/typescript/utils/IamportUrl.d.ts +19 -0
- package/lib/typescript/utils/Validation.d.ts +58 -0
- package/lib/typescript/utils/ValidationForPayment.d.ts +7 -0
- package/package.json +98 -20
- package/src/components/Certification/index.tsx +112 -0
- package/src/components/ErrorOnParams/{index.js → index.tsx} +20 -25
- package/src/components/Loading/{index.js → index.tsx} +9 -10
- package/src/components/Payment/index.tsx +243 -0
- package/src/constants/index.ts +150 -0
- package/src/{index.js → index.tsx} +4 -1
- package/src/{styles.js → styles.ts} +3 -1
- package/src/utils/IamportUrl.ts +319 -0
- package/src/utils/Validation.ts +101 -0
- package/src/utils/ValidationForPayment.ts +146 -0
- package/IamportReactNative.podspec +0 -19
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
- package/android/gradlew +0 -172
- package/android/gradlew.bat +0 -84
- package/android/src/main/java/com/iamport/IamportModule.java +0 -88
- package/android/src/main/java/com/iamport/IamportPackage.java +0 -23
- package/ios/IamportReactNative.h +0 -11
- package/ios/IamportReactNative.m +0 -23
- package/ios/IamportReactNative.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/IamportReactNative.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/IamportReactNative.xcworkspace/contents.xcworkspacedata +0 -9
- package/manuals/CALLBACK.md +0 -68
- package/manuals/EXAMPLE.md +0 -175
- package/manuals/EXPO.md +0 -66
- package/manuals/INSTALL.md +0 -72
- package/manuals/SETTING.md +0 -72
- package/manuals/SUPPORT.md +0 -30
- package/manuals/TRANS.md +0 -122
- package/manuals/VERSION.md +0 -114
- package/manuals/assets/webview-peer-dependency.png +0 -0
- package/src/components/Certification/index.js +0 -99
- package/src/components/Payment/PaymentWebView.js +0 -285
- package/src/components/Payment/index.android.js +0 -51
- package/src/components/Payment/index.ios.js +0 -30
- package/src/constants/index.js +0 -83
- package/src/img/after-linking-iamport.png +0 -0
- package/src/img/after-linking-webview.png +0 -0
- package/src/img/allow-arbitrary.gif +0 -0
- package/src/img/android-studio-avd-manager.png +0 -0
- package/src/img/android-studio-build.png +0 -0
- package/src/img/app-scheme-registry.gif +0 -0
- package/src/img/expo-eject.png +0 -0
- package/src/img/ios-emulator-certification.png +0 -0
- package/src/img/ios-emulator-home.png +0 -0
- package/src/img/ios-emulator-payment.png +0 -0
- package/src/img/ios-trans-create-header-file-1.png +0 -0
- package/src/img/ios-trans-create-header-file-2.png +0 -0
- package/src/img/ios-trans-create-objectivec-file-1.png +0 -0
- package/src/img/ios-trans-create-objectivec-file-2.png +0 -0
- package/src/img/ios-trans-result.png +0 -0
- package/src/utils/IamportUrl.js +0 -103
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _ValidationForPayment = _interopRequireDefault(require("../../utils/ValidationForPayment"));
|
|
11
|
+
|
|
12
|
+
var _ErrorOnParams = _interopRequireDefault(require("../ErrorOnParams"));
|
|
13
|
+
|
|
14
|
+
var _reactNative = require("react-native");
|
|
15
|
+
|
|
16
|
+
var _constants = require("../../constants");
|
|
17
|
+
|
|
18
|
+
var _IamportUrl = _interopRequireDefault(require("../../utils/IamportUrl"));
|
|
19
|
+
|
|
20
|
+
var _reactNativeWebview = _interopRequireDefault(require("react-native-webview"));
|
|
21
|
+
|
|
22
|
+
var _styles = _interopRequireDefault(require("../../styles"));
|
|
23
|
+
|
|
24
|
+
var _Loading = _interopRequireDefault(require("../Loading"));
|
|
25
|
+
|
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
+
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
+
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
+
|
|
32
|
+
function Payment({
|
|
33
|
+
userCode,
|
|
34
|
+
tierCode,
|
|
35
|
+
data,
|
|
36
|
+
loading,
|
|
37
|
+
callback
|
|
38
|
+
}) {
|
|
39
|
+
const [webviewSource, setWebviewSource] = (0, _react.useState)({
|
|
40
|
+
html: _constants.IMPConst.WEBVIEW_SOURCE_HTML
|
|
41
|
+
});
|
|
42
|
+
const [isWebViewLoaded, setIsWebViewLoaded] = (0, _react.useState)(false);
|
|
43
|
+
const [showLoading, setShowLoading] = (0, _react.useState)(true);
|
|
44
|
+
const [isInicisTransPaid, setIsInicisTransPaid] = (0, _react.useState)(false);
|
|
45
|
+
const webview = /*#__PURE__*/(0, _react.createRef)();
|
|
46
|
+
const smilepayRef = (0, _react.useRef)(false);
|
|
47
|
+
(0, _react.useEffect)(() => {
|
|
48
|
+
const {
|
|
49
|
+
pg
|
|
50
|
+
} = data;
|
|
51
|
+
|
|
52
|
+
if (pg.startsWith('smilepay') && _reactNative.Platform.OS === 'ios' && !smilepayRef.current) {
|
|
53
|
+
/**
|
|
54
|
+
* [feature/smilepay] IOS - 스마일페이 대비 코드 작성
|
|
55
|
+
* 스마일페이 결제창을 iframe 방식으로 띄우기 때문에 WKWebView에서 서드 파티 쿠키가 허용되지 않아
|
|
56
|
+
* WKWebView의 baseUrl을 강제로 스마일페이 URL로 적용
|
|
57
|
+
*/
|
|
58
|
+
setWebviewSource({ ...webviewSource,
|
|
59
|
+
baseUrl: _constants.IMPConst.SMILEPAY_BASE_URL
|
|
60
|
+
});
|
|
61
|
+
smilepayRef.current = true;
|
|
62
|
+
}
|
|
63
|
+
}, [data, webviewSource]);
|
|
64
|
+
(0, _react.useEffect)(() => {
|
|
65
|
+
const handleOpenURL = event => {
|
|
66
|
+
const {
|
|
67
|
+
pg,
|
|
68
|
+
pay_method
|
|
69
|
+
} = data;
|
|
70
|
+
|
|
71
|
+
if (pay_method === 'trans') {
|
|
72
|
+
const iamportUrl = new _IamportUrl.default(event.url);
|
|
73
|
+
/**
|
|
74
|
+
* [IOS] 웹 표준 이니시스 - 실시간 계좌이체 대비
|
|
75
|
+
* 아래 로직대로 동작해야 최종적으로 결제가 승인된 후 콜백 함수가 호출됨
|
|
76
|
+
* 1. 사파리 앱에서 복귀(app_scheme://imp_uid=%26merchant_uid=%26m_redirect_url=)
|
|
77
|
+
* 2. 최종 결제 승인을 위해 이니시스가 HTTP 리퀘스트 호출
|
|
78
|
+
* 3. "다음" 버튼이 있는 최종 화면으로 이동
|
|
79
|
+
* 4. "다음" 버튼을 클릭
|
|
80
|
+
* 5. 1번과 마찬가지로 app_scheme://imp_uid=%26merchant_uid=%26m_redirect_url=로 HTTP 리퀘스트 호출
|
|
81
|
+
* 6. 콜백 함수 호출
|
|
82
|
+
* 따라서 현재 handleOpenURL이 트리거 되는 사유가 1번 때문인지 5번 때문인지 구분이 필요하여
|
|
83
|
+
* 이를 위한 isInicisTransPaid 플래그 추가
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
if (pg.startsWith('html5_inicis') && _reactNative.Platform.OS === 'ios') {
|
|
87
|
+
if (isInicisTransPaid) {
|
|
88
|
+
var _webview$current;
|
|
89
|
+
|
|
90
|
+
(_webview$current = webview.current) === null || _webview$current === void 0 ? void 0 : _webview$current.injectJavaScript(`
|
|
91
|
+
window.location.href = "${_constants.IMPConst.M_REDIRECT_URL}?${iamportUrl.getInicisTransQuery()}";
|
|
92
|
+
`);
|
|
93
|
+
} else {
|
|
94
|
+
setIsInicisTransPaid(true);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/* 나이스 - 실시간 계좌이체 대비 */
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
if (pg.startsWith('nice')) {
|
|
101
|
+
var _data$app_scheme, _webview$current2;
|
|
102
|
+
|
|
103
|
+
const queryParameters = iamportUrl.getQuery();
|
|
104
|
+
const scheme = iamportUrl.scheme;
|
|
105
|
+
let niceTransRedirectionUrl;
|
|
106
|
+
|
|
107
|
+
if (scheme === ((_data$app_scheme = data.app_scheme) === null || _data$app_scheme === void 0 ? void 0 : _data$app_scheme.toLowerCase())) {
|
|
108
|
+
if (queryParameters.callbackparam1 != null) {
|
|
109
|
+
niceTransRedirectionUrl = queryParameters.callbackparam1;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
(_webview$current2 = webview.current) === null || _webview$current2 === void 0 ? void 0 : _webview$current2.injectJavaScript(`
|
|
114
|
+
window.location.href = "${niceTransRedirectionUrl}?${iamportUrl.getStringifiedQuery()}";
|
|
115
|
+
`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
_reactNative.Linking.addEventListener('url', handleOpenURL);
|
|
121
|
+
}, [data, isInicisTransPaid, webview]);
|
|
122
|
+
|
|
123
|
+
const removeLoadingNeeded = () => {
|
|
124
|
+
if (showLoading && _reactNative.Platform.OS === 'android') {
|
|
125
|
+
// 로딩상태. 안드로이드 플랫폼
|
|
126
|
+
if (isWebViewLoaded) {
|
|
127
|
+
// 웹뷰 로드 끝. 리디렉션 방식
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return isIframeWayPayment();
|
|
132
|
+
} // IOS
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
return false;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
const isIframeWayPayment = () => {
|
|
139
|
+
const {
|
|
140
|
+
pg,
|
|
141
|
+
pay_method,
|
|
142
|
+
customer_uid
|
|
143
|
+
} = data;
|
|
144
|
+
|
|
145
|
+
if (pg.startsWith('html5_inicis') && customer_uid) {
|
|
146
|
+
// 이니시스 빌링결제
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (pg.startsWith('mobilians') && pay_method === 'phone') {
|
|
151
|
+
// 모빌리언스 휴대폰 소액결제
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return pg.startsWith('danal') || pg.startsWith('danal_tpay') || pg.startsWith('smilepay') || pg.startsWith('payco') || pg.startsWith('bluewalnut');
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
const validation = new _ValidationForPayment.default(userCode, loading, callback, data);
|
|
159
|
+
|
|
160
|
+
if (validation.getIsValid()) {
|
|
161
|
+
const {
|
|
162
|
+
wrapper,
|
|
163
|
+
loadingContainer,
|
|
164
|
+
webViewContainer
|
|
165
|
+
} = _styles.default;
|
|
166
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
167
|
+
style: wrapper
|
|
168
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
169
|
+
style: webViewContainer
|
|
170
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.default, {
|
|
171
|
+
ref: webview,
|
|
172
|
+
source: webviewSource,
|
|
173
|
+
onLoadEnd: () => {
|
|
174
|
+
if (!isWebViewLoaded) {
|
|
175
|
+
var _webview$current5;
|
|
176
|
+
|
|
177
|
+
data.m_redirect_url = _constants.IMPConst.M_REDIRECT_URL;
|
|
178
|
+
|
|
179
|
+
if (data.pg.startsWith('eximbay')) {
|
|
180
|
+
data.popup = false;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (tierCode) {
|
|
184
|
+
var _webview$current3;
|
|
185
|
+
|
|
186
|
+
(_webview$current3 = webview.current) === null || _webview$current3 === void 0 ? void 0 : _webview$current3.injectJavaScript(`
|
|
187
|
+
setTimeout(function() { IMP.agency("${userCode}", "${tierCode}"); });
|
|
188
|
+
`);
|
|
189
|
+
} else {
|
|
190
|
+
var _webview$current4;
|
|
191
|
+
|
|
192
|
+
(_webview$current4 = webview.current) === null || _webview$current4 === void 0 ? void 0 : _webview$current4.injectJavaScript(`
|
|
193
|
+
setTimeout(function() { IMP.init("${userCode}"); });
|
|
194
|
+
`);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
(_webview$current5 = webview.current) === null || _webview$current5 === void 0 ? void 0 : _webview$current5.injectJavaScript(`
|
|
198
|
+
setTimeout(function() {
|
|
199
|
+
IMP.request_pay(${JSON.stringify(data)}, function(response) {
|
|
200
|
+
window.ReactNativeWebView.postMessage(JSON.stringify(response));
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
`);
|
|
204
|
+
setIsWebViewLoaded(true);
|
|
205
|
+
} // only for Android
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
if (removeLoadingNeeded()) {
|
|
209
|
+
setShowLoading(false);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/* PG사가 callback을 지원하는 경우, 결제결과를 받아 callback을 실행한다 */
|
|
213
|
+
,
|
|
214
|
+
onMessage: e => {
|
|
215
|
+
const {
|
|
216
|
+
data
|
|
217
|
+
} = e.nativeEvent;
|
|
218
|
+
/**
|
|
219
|
+
* [v1.6.0] 다날의 경우 response에 주문명(name)이 포함되어 있는데
|
|
220
|
+
* 주문명에 %가 들어갈 경우, decodeURIComponent시 URI malformed 에러가 발생하는 것 대비해
|
|
221
|
+
* 우선 encodeURIComponent를 한 후, decodeURIComponent가 끝나면
|
|
222
|
+
* 최종적으로 decodeURIComponent를 한 번 더 한다
|
|
223
|
+
*/
|
|
224
|
+
|
|
225
|
+
let response = encodeURIComponent(data);
|
|
226
|
+
|
|
227
|
+
while (decodeURIComponent(response) !== data) {
|
|
228
|
+
response = decodeURIComponent(response);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
response = decodeURIComponent(response);
|
|
232
|
+
response = JSON.parse(response);
|
|
233
|
+
callback(response);
|
|
234
|
+
},
|
|
235
|
+
originWhitelist: ['*'] // https://github.com/facebook/react-native/issues/19986
|
|
236
|
+
,
|
|
237
|
+
sharedCookiesEnabled: true,
|
|
238
|
+
onShouldStartLoadWithRequest: request => {
|
|
239
|
+
const {
|
|
240
|
+
url
|
|
241
|
+
} = request;
|
|
242
|
+
const iamportUrl = new _IamportUrl.default(url);
|
|
243
|
+
|
|
244
|
+
if (iamportUrl.isAppUrl()) {
|
|
245
|
+
/* 3rd-party 앱 오픈 */
|
|
246
|
+
iamportUrl.launchApp().catch(e => {
|
|
247
|
+
const {
|
|
248
|
+
code,
|
|
249
|
+
message
|
|
250
|
+
} = e;
|
|
251
|
+
callback({
|
|
252
|
+
imp_success: false,
|
|
253
|
+
error_code: code,
|
|
254
|
+
error_msg: message
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (iamportUrl.isPaymentOver()) {
|
|
261
|
+
callback(iamportUrl.getQuery());
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
if (isWebViewLoaded && showLoading && iamportUrl.isIframeLoaded()) {
|
|
266
|
+
/**
|
|
267
|
+
* only for IOS
|
|
268
|
+
* iframe이 load되면(url이 about:blank 또는 https://service.iamport.kr이 아니면)
|
|
269
|
+
* webview의 loading 상태를 해제한다
|
|
270
|
+
*/
|
|
271
|
+
setShowLoading(false);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
})), showLoading && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
277
|
+
style: loadingContainer
|
|
278
|
+
}, loading || /*#__PURE__*/_react.default.createElement(_Loading.default, null)));
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return /*#__PURE__*/_react.default.createElement(_ErrorOnParams.default, {
|
|
282
|
+
message: validation.getMessage()
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
var _default = Payment;
|
|
287
|
+
exports.default = _default;
|
|
288
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Payment","userCode","tierCode","data","loading","callback","webviewSource","setWebviewSource","html","IMPConst","WEBVIEW_SOURCE_HTML","isWebViewLoaded","setIsWebViewLoaded","showLoading","setShowLoading","isInicisTransPaid","setIsInicisTransPaid","webview","smilepayRef","pg","startsWith","Platform","OS","current","baseUrl","SMILEPAY_BASE_URL","handleOpenURL","event","pay_method","iamportUrl","IamportUrl","url","injectJavaScript","M_REDIRECT_URL","getInicisTransQuery","queryParameters","getQuery","scheme","niceTransRedirectionUrl","app_scheme","toLowerCase","callbackparam1","getStringifiedQuery","Linking","addEventListener","removeLoadingNeeded","isIframeWayPayment","customer_uid","validation","ValidationForPayment","getIsValid","wrapper","loadingContainer","webViewContainer","viewStyles","m_redirect_url","popup","JSON","stringify","e","nativeEvent","response","encodeURIComponent","decodeURIComponent","parse","request","isAppUrl","launchApp","catch","code","message","imp_success","error_code","error_msg","isPaymentOver","isIframeLoaded","getMessage"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAWA,SAASA,OAAT,CAAiB;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,QAAZ;AAAsBC,EAAAA,IAAtB;AAA4BC,EAAAA,OAA5B;AAAqCC,EAAAA;AAArC,CAAjB,EAAyE;AACvE,QAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,qBAAwB;AAChEC,IAAAA,IAAI,EAAEC,oBAASC;AADiD,GAAxB,CAA1C;AAGA,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwC,qBAAS,KAAT,CAA9C;AACA,QAAM,CAACC,WAAD,EAAcC,cAAd,IAAgC,qBAAS,IAAT,CAAtC;AACA,QAAM,CAACC,iBAAD,EAAoBC,oBAApB,IAA4C,qBAAS,KAAT,CAAlD;AACA,QAAMC,OAAO,gBAAG,uBAAhB;AACA,QAAMC,WAAW,GAAG,mBAAO,KAAP,CAApB;AAEA,wBAAU,MAAM;AACd,UAAM;AAAEC,MAAAA;AAAF,QAAShB,IAAf;;AACA,QACEgB,EAAE,CAACC,UAAH,CAAc,UAAd,KACAC,sBAASC,EAAT,KAAgB,KADhB,IAEA,CAACJ,WAAW,CAACK,OAHf,EAIE;AACA;AACN;AACA;AACA;AACA;AACMhB,MAAAA,gBAAgB,CAAC,EACf,GAAGD,aADY;AAEfkB,QAAAA,OAAO,EAAEf,oBAASgB;AAFH,OAAD,CAAhB;AAIAP,MAAAA,WAAW,CAACK,OAAZ,GAAsB,IAAtB;AACD;AACF,GAlBD,EAkBG,CAACpB,IAAD,EAAOG,aAAP,CAlBH;AAoBA,wBAAU,MAAM;AACd,UAAMoB,aAAa,GAAIC,KAAD,IAA4B;AAChD,YAAM;AAAER,QAAAA,EAAF;AAAMS,QAAAA;AAAN,UAAqBzB,IAA3B;;AACA,UAAIyB,UAAU,KAAK,OAAnB,EAA4B;AAC1B,cAAMC,UAAU,GAAG,IAAIC,mBAAJ,CAAeH,KAAK,CAACI,GAArB,CAAnB;AACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACQ,YAAIZ,EAAE,CAACC,UAAH,CAAc,cAAd,KAAiCC,sBAASC,EAAT,KAAgB,KAArD,EAA4D;AAC1D,cAAIP,iBAAJ,EAAuB;AAAA;;AACrB,gCAAAE,OAAO,CAACM,OAAR,sEAAiBS,gBAAjB,CAAmC;AAC/C,wCACgBvB,oBAASwB,cACV,IAAGJ,UAAU,CAACK,mBAAX,EAAiC;AACnD,aAJY;AAKD,WAND,MAMO;AACLlB,YAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD;AACF;AAED;;;AACA,YAAIG,EAAE,CAACC,UAAH,CAAc,MAAd,CAAJ,EAA2B;AAAA;;AACzB,gBAAMe,eAAe,GAAGN,UAAU,CAACO,QAAX,EAAxB;AACA,gBAAMC,MAAM,GAAGR,UAAU,CAACQ,MAA1B;AACA,cAAIC,uBAAJ;;AACA,cAAID,MAAM,0BAAKlC,IAAI,CAACoC,UAAV,qDAAK,iBAAiBC,WAAjB,EAAL,CAAV,EAA+C;AAC7C,gBAAIL,eAAe,CAACM,cAAhB,IAAkC,IAAtC,EAA4C;AAC1CH,cAAAA,uBAAuB,GAAGH,eAAe,CAACM,cAA1C;AACD;AACF;;AACD,+BAAAxB,OAAO,CAACM,OAAR,wEAAiBS,gBAAjB,CAAmC;AAC7C,sCAAsCM,uBAAwB,IAAGT,UAAU,CAACa,mBAAX,EAAiC;AAClG,WAFU;AAGD;AACF;AACF,KA3CD;;AA4CAC,yBAAQC,gBAAR,CAAyB,KAAzB,EAAgClB,aAAhC;AACD,GA9CD,EA8CG,CAACvB,IAAD,EAAOY,iBAAP,EAA0BE,OAA1B,CA9CH;;AAgDA,QAAM4B,mBAAmB,GAAG,MAAM;AAChC,QAAIhC,WAAW,IAAIQ,sBAASC,EAAT,KAAgB,SAAnC,EAA8C;AAC5C;AACA,UAAIX,eAAJ,EAAqB;AACnB;AACA,eAAO,IAAP;AACD;;AACD,aAAOmC,kBAAkB,EAAzB;AACD,KAR+B,CAShC;;;AACA,WAAO,KAAP;AACD,GAXD;;AAaA,QAAMA,kBAAkB,GAAG,MAAM;AAC/B,UAAM;AAAE3B,MAAAA,EAAF;AAAMS,MAAAA,UAAN;AAAkBmB,MAAAA;AAAlB,QAAmC5C,IAAzC;;AACA,QAAIgB,EAAE,CAACC,UAAH,CAAc,cAAd,KAAiC2B,YAArC,EAAmD;AACjD;AACA,aAAO,IAAP;AACD;;AACD,QAAI5B,EAAE,CAACC,UAAH,CAAc,WAAd,KAA8BQ,UAAU,KAAK,OAAjD,EAA0D;AACxD;AACA,aAAO,IAAP;AACD;;AACD,WACET,EAAE,CAACC,UAAH,CAAc,OAAd,KACAD,EAAE,CAACC,UAAH,CAAc,YAAd,CADA,IAEAD,EAAE,CAACC,UAAH,CAAc,UAAd,CAFA,IAGAD,EAAE,CAACC,UAAH,CAAc,OAAd,CAHA,IAIAD,EAAE,CAACC,UAAH,CAAc,YAAd,CALF;AAOD,GAjBD;;AAmBA,QAAM4B,UAAU,GAAG,IAAIC,6BAAJ,CACjBhD,QADiB,EAEjBG,OAFiB,EAGjBC,QAHiB,EAIjBF,IAJiB,CAAnB;;AAMA,MAAI6C,UAAU,CAACE,UAAX,EAAJ,EAA6B;AAC3B,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA,gBAAX;AAA6BC,MAAAA;AAA7B,QAAkDC,eAAxD;AACA,wBACE,6BAAC,iBAAD;AAAM,MAAA,KAAK,EAAEH;AAAb,oBACE,6BAAC,iBAAD;AAAM,MAAA,KAAK,EAAEE;AAAb,oBACE,6BAAC,2BAAD;AACE,MAAA,GAAG,EAAEpC,OADP;AAEE,MAAA,MAAM,EAAEX,aAFV;AAGE,MAAA,SAAS,EAAE,MAAM;AACf,YAAI,CAACK,eAAL,EAAsB;AAAA;;AACpBR,UAAAA,IAAI,CAACoD,cAAL,GAAsB9C,oBAASwB,cAA/B;;AACA,cAAI9B,IAAI,CAACgB,EAAL,CAAQC,UAAR,CAAmB,SAAnB,CAAJ,EAAmC;AACjCjB,YAAAA,IAAI,CAACqD,KAAL,GAAa,KAAb;AACD;;AAED,cAAItD,QAAJ,EAAc;AAAA;;AACZ,iCAAAe,OAAO,CAACM,OAAR,wEAAiBS,gBAAjB,CAAmC;AACrD,0DAA0D/B,QAAS,OAAMC,QAAS;AAClF,mBAFkB;AAGD,WAJD,MAIO;AAAA;;AACL,iCAAAe,OAAO,CAACM,OAAR,wEAAiBS,gBAAjB,CAAmC;AACrD,wDAAwD/B,QAAS;AACjE,mBAFkB;AAGD;;AACD,+BAAAgB,OAAO,CAACM,OAAR,wEAAiBS,gBAAjB,CAAmC;AACnD;AACA,sCAAsCyB,IAAI,CAACC,SAAL,CAChBvD,IADgB,CAEhB;AACtB;AACA;AACA;AACA,iBARgB;AASAS,UAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD,SA1Bc,CA4Bf;;;AACA,YAAIiC,mBAAmB,EAAvB,EAA2B;AACzB/B,UAAAA,cAAc,CAAC,KAAD,CAAd;AACD;AACF;AACD;AApCF;AAqCE,MAAA,SAAS,EAAG6C,CAAD,IAAO;AAChB,cAAM;AAAExD,UAAAA;AAAF,YAAWwD,CAAC,CAACC,WAAnB;AACA;AACd;AACA;AACA;AACA;AACA;;AACc,YAAIC,QAAQ,GAAGC,kBAAkB,CAAC3D,IAAD,CAAjC;;AACA,eAAO4D,kBAAkB,CAACF,QAAD,CAAlB,KAAiC1D,IAAxC,EAA8C;AAC5C0D,UAAAA,QAAQ,GAAGE,kBAAkB,CAACF,QAAD,CAA7B;AACD;;AACDA,QAAAA,QAAQ,GAAGE,kBAAkB,CAACF,QAAD,CAA7B;AACAA,QAAAA,QAAQ,GAAGJ,IAAI,CAACO,KAAL,CAAWH,QAAX,CAAX;AACAxD,QAAAA,QAAQ,CAACwD,QAAD,CAAR;AACD,OApDH;AAqDE,MAAA,eAAe,EAAE,CAAC,GAAD,CArDnB,CAqD0B;AArD1B;AAsDE,MAAA,oBAAoB,EAAE,IAtDxB;AAuDE,MAAA,4BAA4B,EAAGI,OAAD,IAAa;AACzC,cAAM;AAAElC,UAAAA;AAAF,YAAUkC,OAAhB;AACA,cAAMpC,UAAU,GAAG,IAAIC,mBAAJ,CAAeC,GAAf,CAAnB;;AACA,YAAIF,UAAU,CAACqC,QAAX,EAAJ,EAA2B;AACzB;AACArC,UAAAA,UAAU,CAACsC,SAAX,GAAuBC,KAAvB,CAA8BT,CAAD,IAAO;AAClC,kBAAM;AAAEU,cAAAA,IAAF;AAAQC,cAAAA;AAAR,gBAAoBX,CAA1B;AACAtD,YAAAA,QAAQ,CAAC;AACPkE,cAAAA,WAAW,EAAE,KADN;AAEPC,cAAAA,UAAU,EAAEH,IAFL;AAGPI,cAAAA,SAAS,EAAEH;AAHJ,aAAD,CAAR;AAKD,WAPD;AASA,iBAAO,KAAP;AACD;;AACD,YAAIzC,UAAU,CAAC6C,aAAX,EAAJ,EAAgC;AAC9BrE,UAAAA,QAAQ,CAACwB,UAAU,CAACO,QAAX,EAAD,CAAR;AACA,iBAAO,KAAP;AACD;;AACD,YACEzB,eAAe,IACfE,WADA,IAEAgB,UAAU,CAAC8C,cAAX,EAHF,EAIE;AACA;AAChB;AACA;AACA;AACA;AACgB7D,UAAAA,cAAc,CAAC,KAAD,CAAd;AACD;;AACD,eAAO,IAAP;AACD;AAxFH,MADF,CADF,EA6FGD,WAAW,iBACV,6BAAC,iBAAD;AAAM,MAAA,KAAK,EAAEuC;AAAb,OAAgChD,OAAO,iBAAI,6BAAC,gBAAD,OAA3C,CA9FJ,CADF;AAmGD;;AAED,sBAAO,6BAAC,sBAAD;AAAe,IAAA,OAAO,EAAE4C,UAAU,CAAC4B,UAAX;AAAxB,IAAP;AACD;;eAEc5E,O","sourcesContent":["import React, { createRef, useEffect, useRef, useState } from 'react';\nimport type { IMPData } from '../../utils/Validation';\nimport ValidationForPayment from '../../utils/ValidationForPayment';\nimport ErrorOnParams from '../ErrorOnParams';\nimport { Linking, Platform, View } from 'react-native';\nimport { IMPConst } from '../../constants';\nimport IamportUrl from '../../utils/IamportUrl';\nimport WebView from 'react-native-webview';\nimport viewStyles from '../../styles';\nimport Loading from '../Loading';\nimport type { WebViewSource } from 'react-native-webview/lib/WebViewTypes';\n\ntype Props = {\n userCode: string;\n tierCode?: string;\n data: IMPData.PaymentData;\n loading: any;\n callback: (response: any) => any;\n};\n\nfunction Payment({ userCode, tierCode, data, loading, callback }: Props) {\n const [webviewSource, setWebviewSource] = useState<WebViewSource>({\n html: IMPConst.WEBVIEW_SOURCE_HTML,\n });\n const [isWebViewLoaded, setIsWebViewLoaded] = useState(false);\n const [showLoading, setShowLoading] = useState(true);\n const [isInicisTransPaid, setIsInicisTransPaid] = useState(false);\n const webview = createRef<WebView>();\n const smilepayRef = useRef(false);\n\n useEffect(() => {\n const { pg } = data;\n if (\n pg.startsWith('smilepay') &&\n Platform.OS === 'ios' &&\n !smilepayRef.current\n ) {\n /**\n * [feature/smilepay] IOS - 스마일페이 대비 코드 작성\n * 스마일페이 결제창을 iframe 방식으로 띄우기 때문에 WKWebView에서 서드 파티 쿠키가 허용되지 않아\n * WKWebView의 baseUrl을 강제로 스마일페이 URL로 적용\n */\n setWebviewSource({\n ...webviewSource,\n baseUrl: IMPConst.SMILEPAY_BASE_URL,\n });\n smilepayRef.current = true;\n }\n }, [data, webviewSource]);\n\n useEffect(() => {\n const handleOpenURL = (event: { url: string }) => {\n const { pg, pay_method } = data;\n if (pay_method === 'trans') {\n const iamportUrl = new IamportUrl(event.url);\n /**\n * [IOS] 웹 표준 이니시스 - 실시간 계좌이체 대비\n * 아래 로직대로 동작해야 최종적으로 결제가 승인된 후 콜백 함수가 호출됨\n * 1. 사파리 앱에서 복귀(app_scheme://imp_uid=%26merchant_uid=%26m_redirect_url=)\n * 2. 최종 결제 승인을 위해 이니시스가 HTTP 리퀘스트 호출\n * 3. \"다음\" 버튼이 있는 최종 화면으로 이동\n * 4. \"다음\" 버튼을 클릭\n * 5. 1번과 마찬가지로 app_scheme://imp_uid=%26merchant_uid=%26m_redirect_url=로 HTTP 리퀘스트 호출\n * 6. 콜백 함수 호출\n * 따라서 현재 handleOpenURL이 트리거 되는 사유가 1번 때문인지 5번 때문인지 구분이 필요하여\n * 이를 위한 isInicisTransPaid 플래그 추가\n */\n if (pg.startsWith('html5_inicis') && Platform.OS === 'ios') {\n if (isInicisTransPaid) {\n webview.current?.injectJavaScript(`\n window.location.href = \"${\n IMPConst.M_REDIRECT_URL\n }?${iamportUrl.getInicisTransQuery()}\";\n `);\n } else {\n setIsInicisTransPaid(true);\n }\n }\n\n /* 나이스 - 실시간 계좌이체 대비 */\n if (pg.startsWith('nice')) {\n const queryParameters = iamportUrl.getQuery();\n const scheme = iamportUrl.scheme;\n let niceTransRedirectionUrl;\n if (scheme === data.app_scheme?.toLowerCase()) {\n if (queryParameters.callbackparam1 != null) {\n niceTransRedirectionUrl = queryParameters.callbackparam1;\n }\n }\n webview.current?.injectJavaScript(`\n window.location.href = \"${niceTransRedirectionUrl}?${iamportUrl.getStringifiedQuery()}\";\n `);\n }\n }\n };\n Linking.addEventListener('url', handleOpenURL);\n }, [data, isInicisTransPaid, webview]);\n\n const removeLoadingNeeded = () => {\n if (showLoading && Platform.OS === 'android') {\n // 로딩상태. 안드로이드 플랫폼\n if (isWebViewLoaded) {\n // 웹뷰 로드 끝. 리디렉션 방식\n return true;\n }\n return isIframeWayPayment();\n }\n // IOS\n return false;\n };\n\n const isIframeWayPayment = () => {\n const { pg, pay_method, customer_uid } = data;\n if (pg.startsWith('html5_inicis') && customer_uid) {\n // 이니시스 빌링결제\n return true;\n }\n if (pg.startsWith('mobilians') && pay_method === 'phone') {\n // 모빌리언스 휴대폰 소액결제\n return true;\n }\n return (\n pg.startsWith('danal') ||\n pg.startsWith('danal_tpay') ||\n pg.startsWith('smilepay') ||\n pg.startsWith('payco') ||\n pg.startsWith('bluewalnut')\n );\n };\n\n const validation = new ValidationForPayment(\n userCode,\n loading,\n callback,\n data\n );\n if (validation.getIsValid()) {\n const { wrapper, loadingContainer, webViewContainer } = viewStyles;\n return (\n <View style={wrapper}>\n <View style={webViewContainer}>\n <WebView\n ref={webview}\n source={webviewSource}\n onLoadEnd={() => {\n if (!isWebViewLoaded) {\n data.m_redirect_url = IMPConst.M_REDIRECT_URL;\n if (data.pg.startsWith('eximbay')) {\n data.popup = false;\n }\n\n if (tierCode) {\n webview.current?.injectJavaScript(`\n setTimeout(function() { IMP.agency(\"${userCode}\", \"${tierCode}\"); });\n `);\n } else {\n webview.current?.injectJavaScript(`\n setTimeout(function() { IMP.init(\"${userCode}\"); });\n `);\n }\n webview.current?.injectJavaScript(`\n setTimeout(function() {\n IMP.request_pay(${JSON.stringify(\n data\n )}, function(response) {\n window.ReactNativeWebView.postMessage(JSON.stringify(response));\n });\n });\n `);\n setIsWebViewLoaded(true);\n }\n\n // only for Android\n if (removeLoadingNeeded()) {\n setShowLoading(false);\n }\n }}\n /* PG사가 callback을 지원하는 경우, 결제결과를 받아 callback을 실행한다 */\n onMessage={(e) => {\n const { data } = e.nativeEvent;\n /**\n * [v1.6.0] 다날의 경우 response에 주문명(name)이 포함되어 있는데\n * 주문명에 %가 들어갈 경우, decodeURIComponent시 URI malformed 에러가 발생하는 것 대비해\n * 우선 encodeURIComponent를 한 후, decodeURIComponent가 끝나면\n * 최종적으로 decodeURIComponent를 한 번 더 한다\n */\n let response = encodeURIComponent(data);\n while (decodeURIComponent(response) !== data) {\n response = decodeURIComponent(response);\n }\n response = decodeURIComponent(response);\n response = JSON.parse(response);\n callback(response);\n }}\n originWhitelist={['*']} // https://github.com/facebook/react-native/issues/19986\n sharedCookiesEnabled={true}\n onShouldStartLoadWithRequest={(request) => {\n const { url } = request;\n const iamportUrl = new IamportUrl(url);\n if (iamportUrl.isAppUrl()) {\n /* 3rd-party 앱 오픈 */\n iamportUrl.launchApp().catch((e) => {\n const { code, message } = e;\n callback({\n imp_success: false,\n error_code: code,\n error_msg: message,\n });\n });\n\n return false;\n }\n if (iamportUrl.isPaymentOver()) {\n callback(iamportUrl.getQuery());\n return false;\n }\n if (\n isWebViewLoaded &&\n showLoading &&\n iamportUrl.isIframeLoaded()\n ) {\n /**\n * only for IOS\n * iframe이 load되면(url이 about:blank 또는 https://service.iamport.kr이 아니면)\n * webview의 loading 상태를 해제한다\n */\n setShowLoading(false);\n }\n return true;\n }}\n />\n </View>\n {showLoading && (\n <View style={loadingContainer}>{loading || <Loading />}</View>\n )}\n </View>\n );\n }\n\n return <ErrorOnParams message={validation.getMessage()} />;\n}\n\nexport default Payment;\n"]}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.IMPConst = void 0;
|
|
7
|
+
let IMPConst;
|
|
8
|
+
exports.IMPConst = IMPConst;
|
|
9
|
+
|
|
10
|
+
(function (_IMPConst) {
|
|
11
|
+
const PG = _IMPConst.PG = ['html5_inicis', 'inicis', 'uplus', 'kcp', 'kcp_billing', 'nice', 'jtnet', 'kakao', 'kakaopay', 'danal', 'danal_tpay', 'kicc', 'settle', 'mobilians', 'payco', 'eximbay', 'paypal', 'naverco', 'naverpay', 'smilepay', 'chai', 'payple', 'alipay', 'bluewalnut', 'tosspay', 'smartro'];
|
|
12
|
+
const PAY_METHOD = _IMPConst.PAY_METHOD = ['card', 'trans', 'vbank', 'phone', 'samsung', 'kpay', 'cultureland', 'smartculture', 'happymoney', 'booknlife', 'kakaopay', 'lpay', 'payco', 'ssgpay', 'tosspay', // 엑심베이 전용
|
|
13
|
+
'unionpay', // 유니온페이
|
|
14
|
+
'alipay', // 알리페이
|
|
15
|
+
'tenpay', // 텐페이
|
|
16
|
+
'wechat', // 위챗페이
|
|
17
|
+
'molpay', // 몰페이
|
|
18
|
+
'paysbuy' // 태국 paysbuy
|
|
19
|
+
];
|
|
20
|
+
const CURRENCY = _IMPConst.CURRENCY = ['KRW', 'USD', 'EUR', 'JPY'];
|
|
21
|
+
const LANGUAGE = _IMPConst.LANGUAGE = ['ko', 'en'];
|
|
22
|
+
const EN_AVAILABLE_PG = _IMPConst.EN_AVAILABLE_PG = ['inicis', 'html5_inicis', 'uplus', 'nice', 'eximbay'];
|
|
23
|
+
const CARRIERS = _IMPConst.CARRIERS = ['SKT', 'KTF', 'LGT', 'MVNO'];
|
|
24
|
+
const ANDROID_MARKET_PREFIX = _IMPConst.ANDROID_MARKET_PREFIX = 'market://details?id=';
|
|
25
|
+
const IOS_MARKET_PREFIX = _IMPConst.IOS_MARKET_PREFIX = 'https://apps.apple.com/app/';
|
|
26
|
+
const M_REDIRECT_URL = _IMPConst.M_REDIRECT_URL = 'http://detectchangingwebview/iamport/rn';
|
|
27
|
+
const NICE_TRANS_URL = _IMPConst.NICE_TRANS_URL = 'https://web.nicepay.co.kr/smart/bank/payTrans.jsp';
|
|
28
|
+
const IMP_SDK_URL = _IMPConst.IMP_SDK_URL = 'https://service.iamport.kr';
|
|
29
|
+
const SMILEPAY_BASE_URL = _IMPConst.SMILEPAY_BASE_URL = 'https://www.mysmilepay.com';
|
|
30
|
+
const WEBVIEW_SOURCE_HTML = _IMPConst.WEBVIEW_SOURCE_HTML = `
|
|
31
|
+
<html>
|
|
32
|
+
<head>
|
|
33
|
+
<meta http-equiv='content-type' content='text/html; charset=utf-8'>
|
|
34
|
+
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
|
|
35
|
+
|
|
36
|
+
<script type='text/javascript' src='https://code.jquery.com/jquery-latest.min.js' ></script>
|
|
37
|
+
<script type='text/javascript' src='https://cdn.iamport.kr/js/iamport.payment-1.1.8.js'></script>
|
|
38
|
+
</head>
|
|
39
|
+
<body></body>
|
|
40
|
+
</html>
|
|
41
|
+
`;
|
|
42
|
+
const ANDROID_APPSCHEME = _IMPConst.ANDROID_APPSCHEME = {
|
|
43
|
+
ISP: 'ispmobile',
|
|
44
|
+
BANKPAY: 'kftc-bankpay',
|
|
45
|
+
KB_BANKPAY: 'kb-bankpay',
|
|
46
|
+
NH_BANKPAY: 'nhb-bankpay',
|
|
47
|
+
MG_BANKPAY: 'mg-bankpay',
|
|
48
|
+
KN_BANKPAY: 'kn-bankpay',
|
|
49
|
+
KAKAOPAY: 'kakaotalk',
|
|
50
|
+
SMILEPAY: 'smilepayapp',
|
|
51
|
+
CHAIPAY: 'chaipayment',
|
|
52
|
+
PAYCO: 'payco',
|
|
53
|
+
HYUNDAICARD: 'hdcardappcardansimclick',
|
|
54
|
+
TOSS: 'supertoss',
|
|
55
|
+
SHINHANCARD: 'shinhan-sr-ansimclick',
|
|
56
|
+
HANACARD: 'cloudpay',
|
|
57
|
+
SAMSUNGCARD: 'mpocket.online.ansimclick',
|
|
58
|
+
KBCARD: 'kb-acp',
|
|
59
|
+
NHCARD: 'nhallonepayansimclick',
|
|
60
|
+
CITICARD: 'citimobileapp',
|
|
61
|
+
LOTTECARD: 'lotteappcard',
|
|
62
|
+
LPAY: 'lpayapp',
|
|
63
|
+
SSGPAY: 'shinsegaeeasypayment',
|
|
64
|
+
KPAY: 'kpay',
|
|
65
|
+
PAYNOW: 'lguthepay-xpay',
|
|
66
|
+
WOORIWONCARD: 'com.wooricard.smartapp',
|
|
67
|
+
LPOINT: 'lmslpay',
|
|
68
|
+
KTFAUTH: 'ktauthexternalcall',
|
|
69
|
+
LGTAUTH: 'upluscorporation',
|
|
70
|
+
SKTAUTH: 'tauthlink'
|
|
71
|
+
};
|
|
72
|
+
const ANDROID_PACKAGE = _IMPConst.ANDROID_PACKAGE = {
|
|
73
|
+
PACKAGE_ISP: 'kvp.jjy.MispAndroid320',
|
|
74
|
+
PACKAGE_BANKPAY: 'com.kftc.bankpay.android',
|
|
75
|
+
PACKAGE_KB_BANKPAY: 'com.kbstar.liivbank',
|
|
76
|
+
PACKAGE_NH_BANKPAY: 'com.nh.cashcardapp',
|
|
77
|
+
PACKAGE_MG_BANKPAY: 'kr.co.kfcc.mobilebank',
|
|
78
|
+
PACKAGE_KN_BANKPAY: 'com.knb.psb',
|
|
79
|
+
PACKAGE_KAKAOPAY: 'com.kakao.talk',
|
|
80
|
+
PACKAGE_SMILEPAY: 'com.mysmilepay.app',
|
|
81
|
+
PACKAGE_CHAIPAY: 'finance.chai.app',
|
|
82
|
+
PACKAGE_PAYCO: 'com.nhnent.payapp',
|
|
83
|
+
PACKAGE_HYUNDAICARD: 'com.hyundaicard.appcard',
|
|
84
|
+
PACKAGE_TOSS: 'viva.republica.toss',
|
|
85
|
+
PACKAGE_SHINHANCARD: 'com.shcard.smartpay',
|
|
86
|
+
PACKAGE_HANACARD: 'com.hanaskard.paycla',
|
|
87
|
+
PACKAGE_SAMSUNGCARD: 'kr.co.samsungcard.mpocket',
|
|
88
|
+
PACKAGE_KBCARD: 'com.kbcard.cxh.appcard',
|
|
89
|
+
PACKAGE_NHCARD: 'nh.smart.nhallonepay',
|
|
90
|
+
PACKAGE_CITICARD: 'kr.co.citibank.citimobile',
|
|
91
|
+
PACKAGE_LOTTECARD: 'com.lcacApp',
|
|
92
|
+
PACKAGE_LPAY: 'com.lotte.lpay',
|
|
93
|
+
PACKAGE_SSGPAY: 'com.ssg.serviceapp.android.egiftcertificate',
|
|
94
|
+
PACKAGE_KPAY: 'com.inicis.kpay',
|
|
95
|
+
PACKAGE_PAYNOW: 'com.lguplus.paynow',
|
|
96
|
+
PACKAGE_WOORIWONCARD: 'com.wooricard.smartapp',
|
|
97
|
+
PACKAGE_LPOINT: 'com.lottemembers.android',
|
|
98
|
+
PACKAGE_KTFAUTH: 'com.kt.ktauth',
|
|
99
|
+
PACKAGE_LGTAUTH: 'com.lguplus.smartotp',
|
|
100
|
+
PACKAGE_SKTAUTH: 'com.sktelecom.tauth'
|
|
101
|
+
};
|
|
102
|
+
})(IMPConst || (exports.IMPConst = IMPConst = {}));
|
|
103
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["PG","PAY_METHOD","CURRENCY","LANGUAGE","EN_AVAILABLE_PG","CARRIERS","ANDROID_MARKET_PREFIX","IOS_MARKET_PREFIX","M_REDIRECT_URL","NICE_TRANS_URL","IMP_SDK_URL","SMILEPAY_BASE_URL","WEBVIEW_SOURCE_HTML","ANDROID_APPSCHEME","ISP","BANKPAY","KB_BANKPAY","NH_BANKPAY","MG_BANKPAY","KN_BANKPAY","KAKAOPAY","SMILEPAY","CHAIPAY","PAYCO","HYUNDAICARD","TOSS","SHINHANCARD","HANACARD","SAMSUNGCARD","KBCARD","NHCARD","CITICARD","LOTTECARD","LPAY","SSGPAY","KPAY","PAYNOW","WOORIWONCARD","LPOINT","KTFAUTH","LGTAUTH","SKTAUTH","ANDROID_PACKAGE","PACKAGE_ISP","PACKAGE_BANKPAY","PACKAGE_KB_BANKPAY","PACKAGE_NH_BANKPAY","PACKAGE_MG_BANKPAY","PACKAGE_KN_BANKPAY","PACKAGE_KAKAOPAY","PACKAGE_SMILEPAY","PACKAGE_CHAIPAY","PACKAGE_PAYCO","PACKAGE_HYUNDAICARD","PACKAGE_TOSS","PACKAGE_SHINHANCARD","PACKAGE_HANACARD","PACKAGE_SAMSUNGCARD","PACKAGE_KBCARD","PACKAGE_NHCARD","PACKAGE_CITICARD","PACKAGE_LOTTECARD","PACKAGE_LPAY","PACKAGE_SSGPAY","PACKAGE_KPAY","PACKAGE_PAYNOW","PACKAGE_WOORIWONCARD","PACKAGE_LPOINT","PACKAGE_KTFAUTH","PACKAGE_LGTAUTH","PACKAGE_SKTAUTH","IMPConst"],"mappings":"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","sourcesContent":["namespace IMPConst {\n export const PG = [\n 'html5_inicis',\n 'inicis',\n 'uplus',\n 'kcp',\n 'kcp_billing',\n 'nice',\n 'jtnet',\n 'kakao',\n 'kakaopay',\n 'danal',\n 'danal_tpay',\n 'kicc',\n 'settle',\n 'mobilians',\n 'payco',\n 'eximbay',\n 'paypal',\n 'naverco',\n 'naverpay',\n 'smilepay',\n 'chai',\n 'payple',\n 'alipay',\n 'bluewalnut',\n 'tosspay',\n 'smartro',\n ] as const;\n\n export const PAY_METHOD = [\n 'card',\n 'trans',\n 'vbank',\n 'phone',\n 'samsung',\n 'kpay',\n 'cultureland',\n 'smartculture',\n 'happymoney',\n 'booknlife',\n 'kakaopay',\n 'lpay',\n 'payco',\n 'ssgpay',\n 'tosspay',\n // 엑심베이 전용\n 'unionpay', // 유니온페이\n 'alipay', // 알리페이\n 'tenpay', // 텐페이\n 'wechat', // 위챗페이\n 'molpay', // 몰페이\n 'paysbuy', // 태국 paysbuy\n ] as const;\n export const CURRENCY = ['KRW', 'USD', 'EUR', 'JPY'] as const;\n export const LANGUAGE = ['ko', 'en'] as const;\n export const EN_AVAILABLE_PG = [\n 'inicis',\n 'html5_inicis',\n 'uplus',\n 'nice',\n 'eximbay',\n ] as const;\n export const CARRIERS = ['SKT', 'KTF', 'LGT', 'MVNO'] as const;\n\n export const ANDROID_MARKET_PREFIX = 'market://details?id=';\n export const IOS_MARKET_PREFIX = 'https://apps.apple.com/app/';\n export const M_REDIRECT_URL = 'http://detectchangingwebview/iamport/rn';\n export const NICE_TRANS_URL =\n 'https://web.nicepay.co.kr/smart/bank/payTrans.jsp';\n export const IMP_SDK_URL = 'https://service.iamport.kr';\n export const SMILEPAY_BASE_URL = 'https://www.mysmilepay.com';\n\n export const WEBVIEW_SOURCE_HTML = `\n<html>\n <head>\n <meta http-equiv='content-type' content='text/html; charset=utf-8'>\n <meta name='viewport' content='width=device-width, initial-scale=1.0'>\n\n <script type='text/javascript' src='https://code.jquery.com/jquery-latest.min.js' ></script>\n <script type='text/javascript' src='https://cdn.iamport.kr/js/iamport.payment-1.1.8.js'></script>\n </head>\n <body></body>\n</html>\n`;\n\n export const ANDROID_APPSCHEME = {\n ISP: 'ispmobile',\n BANKPAY: 'kftc-bankpay',\n KB_BANKPAY: 'kb-bankpay',\n NH_BANKPAY: 'nhb-bankpay',\n MG_BANKPAY: 'mg-bankpay',\n KN_BANKPAY: 'kn-bankpay',\n KAKAOPAY: 'kakaotalk',\n SMILEPAY: 'smilepayapp',\n CHAIPAY: 'chaipayment',\n PAYCO: 'payco',\n HYUNDAICARD: 'hdcardappcardansimclick',\n TOSS: 'supertoss',\n SHINHANCARD: 'shinhan-sr-ansimclick',\n HANACARD: 'cloudpay',\n SAMSUNGCARD: 'mpocket.online.ansimclick',\n KBCARD: 'kb-acp',\n NHCARD: 'nhallonepayansimclick',\n CITICARD: 'citimobileapp',\n LOTTECARD: 'lotteappcard',\n LPAY: 'lpayapp',\n SSGPAY: 'shinsegaeeasypayment',\n KPAY: 'kpay',\n PAYNOW: 'lguthepay-xpay',\n WOORIWONCARD: 'com.wooricard.smartapp',\n LPOINT: 'lmslpay',\n KTFAUTH: 'ktauthexternalcall',\n LGTAUTH: 'upluscorporation',\n SKTAUTH: 'tauthlink',\n } as const;\n\n export const ANDROID_PACKAGE = {\n PACKAGE_ISP: 'kvp.jjy.MispAndroid320',\n PACKAGE_BANKPAY: 'com.kftc.bankpay.android',\n PACKAGE_KB_BANKPAY: 'com.kbstar.liivbank',\n PACKAGE_NH_BANKPAY: 'com.nh.cashcardapp',\n PACKAGE_MG_BANKPAY: 'kr.co.kfcc.mobilebank',\n PACKAGE_KN_BANKPAY: 'com.knb.psb',\n PACKAGE_KAKAOPAY: 'com.kakao.talk',\n PACKAGE_SMILEPAY: 'com.mysmilepay.app',\n PACKAGE_CHAIPAY: 'finance.chai.app',\n PACKAGE_PAYCO: 'com.nhnent.payapp',\n PACKAGE_HYUNDAICARD: 'com.hyundaicard.appcard',\n PACKAGE_TOSS: 'viva.republica.toss',\n PACKAGE_SHINHANCARD: 'com.shcard.smartpay',\n PACKAGE_HANACARD: 'com.hanaskard.paycla',\n PACKAGE_SAMSUNGCARD: 'kr.co.samsungcard.mpocket',\n PACKAGE_KBCARD: 'com.kbcard.cxh.appcard',\n PACKAGE_NHCARD: 'nh.smart.nhallonepay',\n PACKAGE_CITICARD: 'kr.co.citibank.citimobile',\n PACKAGE_LOTTECARD: 'com.lcacApp',\n PACKAGE_LPAY: 'com.lotte.lpay',\n PACKAGE_SSGPAY: 'com.ssg.serviceapp.android.egiftcertificate',\n PACKAGE_KPAY: 'com.inicis.kpay',\n PACKAGE_PAYNOW: 'com.lguplus.paynow',\n PACKAGE_WOORIWONCARD: 'com.wooricard.smartapp',\n PACKAGE_LPOINT: 'com.lottemembers.android',\n PACKAGE_KTFAUTH: 'com.kt.ktauth',\n PACKAGE_LGTAUTH: 'com.lguplus.smartotp',\n PACKAGE_SKTAUTH: 'com.sktelecom.tauth',\n } as const;\n}\n\nexport { IMPConst };\n"]}
|
|
File without changes
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "IMPData", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Validation.IMPData;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "IMPConst", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _constants.IMPConst;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
exports.default = void 0;
|
|
19
|
+
|
|
20
|
+
var _Payment = _interopRequireDefault(require("./components/Payment"));
|
|
21
|
+
|
|
22
|
+
var _Certification = _interopRequireDefault(require("./components/Certification"));
|
|
23
|
+
|
|
24
|
+
var _Validation = require("./utils/Validation");
|
|
25
|
+
|
|
26
|
+
var _constants = require("./constants");
|
|
27
|
+
|
|
28
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
+
|
|
30
|
+
const IMP = {
|
|
31
|
+
Payment: _Payment.default,
|
|
32
|
+
Certification: _Certification.default
|
|
33
|
+
};
|
|
34
|
+
var _default = IMP;
|
|
35
|
+
exports.default = _default;
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["IMP","Payment","Certification"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;AAEA,MAAMA,GAAG,GAAG;AACVC,EAAAA,OAAO,EAAPA,gBADU;AAEVC,EAAAA,aAAa,EAAbA;AAFU,CAAZ;eAKeF,G","sourcesContent":["import Payment from './components/Payment';\nimport Certification from './components/Certification';\n\nexport { IMPData } from './utils/Validation';\nexport { IMPConst } from './constants';\n\nconst IMP = {\n Payment,\n Certification,\n};\n\nexport default IMP;\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
|
|
10
|
+
const viewStyles = _reactNative.StyleSheet.create({
|
|
11
|
+
wrapper: {
|
|
12
|
+
flex: 1
|
|
13
|
+
},
|
|
14
|
+
loadingContainer: {
|
|
15
|
+
position: 'absolute',
|
|
16
|
+
left: 0,
|
|
17
|
+
right: 0,
|
|
18
|
+
top: 0,
|
|
19
|
+
bottom: 0,
|
|
20
|
+
flex: 1,
|
|
21
|
+
zIndex: 1
|
|
22
|
+
},
|
|
23
|
+
webViewContainer: {
|
|
24
|
+
flex: 1,
|
|
25
|
+
zIndex: 0
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
var _default = viewStyles;
|
|
30
|
+
exports.default = _default;
|
|
31
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["styles.ts"],"names":["viewStyles","StyleSheet","create","wrapper","flex","loadingContainer","position","left","right","top","bottom","zIndex","webViewContainer"],"mappings":";;;;;;;AAAA;;AAEA,MAAMA,UAAU,GAAGC,wBAAWC,MAAX,CAAkB;AACnCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AADC,GAD0B;AAInCC,EAAAA,gBAAgB,EAAE;AAChBC,IAAAA,QAAQ,EAAE,UADM;AAEhBC,IAAAA,IAAI,EAAE,CAFU;AAGhBC,IAAAA,KAAK,EAAE,CAHS;AAIhBC,IAAAA,GAAG,EAAE,CAJW;AAKhBC,IAAAA,MAAM,EAAE,CALQ;AAMhBN,IAAAA,IAAI,EAAE,CANU;AAOhBO,IAAAA,MAAM,EAAE;AAPQ,GAJiB;AAanCC,EAAAA,gBAAgB,EAAE;AAChBR,IAAAA,IAAI,EAAE,CADU;AAEhBO,IAAAA,MAAM,EAAE;AAFQ;AAbiB,CAAlB,CAAnB;;eAmBeX,U","sourcesContent":["import { StyleSheet } from 'react-native';\n\nconst viewStyles = StyleSheet.create({\n wrapper: {\n flex: 1,\n },\n loadingContainer: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n flex: 1,\n zIndex: 1,\n },\n webViewContainer: {\n flex: 1,\n zIndex: 0,\n },\n});\n\nexport default viewStyles;\n"]}
|