iamport-react-native 2.0.0-rc.2 → 2.0.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 +1 -1
- package/android/build.gradle +1 -3
- package/lib/commonjs/components/Certification/index.js +16 -23
- package/lib/commonjs/components/Certification/index.js.map +1 -1
- package/lib/commonjs/components/ErrorOnParams/index.js +2 -10
- package/lib/commonjs/components/ErrorOnParams/index.js.map +1 -1
- package/lib/commonjs/components/Loading/index.js +3 -11
- package/lib/commonjs/components/Loading/index.js.map +1 -1
- package/lib/commonjs/components/Payment/index.js +23 -25
- package/lib/commonjs/components/Payment/index.js.map +1 -1
- package/lib/commonjs/constants/index.js +7 -3
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/utils/IamportUrl.js +27 -19
- package/lib/commonjs/utils/IamportUrl.js.map +1 -1
- package/lib/commonjs/utils/Validation.js +143 -3
- package/lib/commonjs/utils/Validation.js.map +1 -1
- package/lib/commonjs/utils/ValidationForPayment.js +3 -13
- package/lib/commonjs/utils/ValidationForPayment.js.map +1 -1
- package/lib/module/components/Certification/index.js +17 -24
- package/lib/module/components/Certification/index.js.map +1 -1
- package/lib/module/components/ErrorOnParams/index.js +3 -12
- package/lib/module/components/ErrorOnParams/index.js.map +1 -1
- package/lib/module/components/Loading/index.js +3 -11
- package/lib/module/components/Loading/index.js.map +1 -1
- package/lib/module/components/Payment/index.js +23 -25
- package/lib/module/components/Payment/index.js.map +1 -1
- package/lib/module/constants/index.js +7 -3
- package/lib/module/constants/index.js.map +1 -1
- package/lib/module/utils/IamportUrl.js +27 -19
- package/lib/module/utils/IamportUrl.js.map +1 -1
- package/lib/module/utils/Validation.js +143 -3
- package/lib/module/utils/Validation.js.map +1 -1
- package/lib/module/utils/ValidationForPayment.js +3 -13
- package/lib/module/utils/ValidationForPayment.js.map +1 -1
- package/lib/typescript/components/Certification/index.d.ts +1 -1
- package/lib/typescript/components/Payment/index.d.ts +1 -1
- package/lib/typescript/constants/index.d.ts +5 -1
- package/lib/typescript/utils/IamportUrl.d.ts +2 -2
- package/lib/typescript/utils/Validation.d.ts +51 -2
- package/lib/typescript/utils/ValidationForPayment.d.ts +0 -1
- package/package.json +18 -18
- package/src/components/Certification/index.tsx +64 -67
- package/src/components/ErrorOnParams/index.tsx +4 -23
- package/src/components/Loading/index.tsx +3 -11
- package/src/components/Payment/index.tsx +80 -81
- package/src/constants/index.ts +5 -1
- package/src/utils/IamportUrl.ts +27 -22
- package/src/utils/Validation.ts +141 -4
- package/src/utils/ValidationForPayment.ts +5 -14
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { View, Image, Text,
|
|
3
|
-
StyleSheet } from 'react-native';
|
|
2
|
+
import { View, Image, Text, StyleSheet } from 'react-native';
|
|
4
3
|
|
|
5
4
|
const logo = require('../../img/iamport-logo.png');
|
|
6
5
|
|
|
@@ -9,29 +8,21 @@ function ErrorOnParams({
|
|
|
9
8
|
}) {
|
|
10
9
|
return /*#__PURE__*/React.createElement(View, {
|
|
11
10
|
style: styles.container
|
|
12
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
13
|
-
style: styles.contents
|
|
14
11
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
15
|
-
style: styles.contents,
|
|
16
12
|
source: logo
|
|
17
13
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
18
14
|
style: styles.text
|
|
19
|
-
}, message))
|
|
15
|
+
}, message));
|
|
20
16
|
}
|
|
21
17
|
|
|
22
18
|
const styles = StyleSheet.create({
|
|
23
19
|
container: {
|
|
24
|
-
flex: 1,
|
|
25
|
-
alignItems: 'center',
|
|
26
|
-
flexDirection: 'row',
|
|
27
|
-
justifyContent: 'center'
|
|
28
|
-
},
|
|
29
|
-
contents: {
|
|
30
20
|
flex: 1,
|
|
31
21
|
alignItems: 'center',
|
|
32
22
|
justifyContent: 'center'
|
|
33
23
|
},
|
|
34
24
|
text: {
|
|
25
|
+
textAlign: 'center',
|
|
35
26
|
fontSize: 16,
|
|
36
27
|
marginTop: 20,
|
|
37
28
|
lineHeight: 25
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["React","View","Image","Text","StyleSheet","logo","require","ErrorOnParams","message","styles","container","
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["React","View","Image","Text","StyleSheet","logo","require","ErrorOnParams","message","styles","container","text","create","flex","alignItems","justifyContent","textAlign","fontSize","marginTop","lineHeight","button","backgroundColor","color","borderColor","borderWidth","borderRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","fontWeight"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,KAAf,EAAsBC,IAAtB,EAA4BC,UAA5B,QAA8C,cAA9C;;AAEA,MAAMC,IAAI,GAAGC,OAAO,CAAC,4BAAD,CAApB;;AAIA,SAASC,aAAT,CAAuB;AAAEC,EAAAA;AAAF,CAAvB,EAAgD;AAC9C,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACC;AAApB,kBACE,oBAAC,KAAD;AAAO,IAAA,MAAM,EAAEL;AAAf,IADF,eAEE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEI,MAAM,CAACE;AAApB,KAA2BH,OAA3B,CAFF,CADF;AAMD;;AAED,MAAMC,MAAM,GAAGL,UAAU,CAACQ,MAAX,CAAkB;AAC/BF,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,UAAU,EAAE,QAFH;AAGTC,IAAAA,cAAc,EAAE;AAHP,GADoB;AAM/BJ,EAAAA,IAAI,EAAE;AACJK,IAAAA,SAAS,EAAE,QADP;AAEJC,IAAAA,QAAQ,EAAE,EAFN;AAGJC,IAAAA,SAAS,EAAE,EAHP;AAIJC,IAAAA,UAAU,EAAE;AAJR,GANyB;AAY/BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,eAAe,EAAE,MADX;AAENC,IAAAA,KAAK,EAAE,SAFD;AAGNC,IAAAA,WAAW,EAAE,MAHP;AAINC,IAAAA,WAAW,EAAE,CAJP;AAKNC,IAAAA,YAAY,EAAE,CALR;AAMNC,IAAAA,UAAU,EAAE,EANN;AAONC,IAAAA,aAAa,EAAE,EAPT;AAQNC,IAAAA,WAAW,EAAE,EARP;AASNC,IAAAA,YAAY,EAAE,EATR;AAUNZ,IAAAA,QAAQ,EAAE,EAVJ;AAWNC,IAAAA,SAAS,EAAE,EAXL;AAYNY,IAAAA,UAAU,EAAE;AAZN;AAZuB,CAAlB,CAAf;AA4BA,eAAevB,aAAf","sourcesContent":["import React from 'react';\nimport { View, Image, Text, StyleSheet } from 'react-native';\n\nconst logo = require('../../img/iamport-logo.png');\n\ntype ErrorProps = { message: string };\n\nfunction ErrorOnParams({ message }: ErrorProps) {\n return (\n <View style={styles.container}>\n <Image source={logo} />\n <Text style={styles.text}>{message}</Text>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n text: {\n textAlign: 'center',\n fontSize: 16,\n marginTop: 20,\n lineHeight: 25,\n },\n button: {\n backgroundColor: '#fff',\n color: '#ff0000',\n borderColor: '#333',\n borderWidth: 1,\n borderRadius: 3,\n paddingTop: 10,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n fontSize: 14,\n marginTop: 20,\n fontWeight: 'bold',\n },\n});\n\nexport default ErrorOnParams;\n"]}
|
|
@@ -6,26 +6,18 @@ const logo = require('../../img/iamport-logo.png');
|
|
|
6
6
|
function Loading() {
|
|
7
7
|
return /*#__PURE__*/React.createElement(View, {
|
|
8
8
|
style: styles.container
|
|
9
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
10
|
-
style: styles.contents
|
|
11
9
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
12
|
-
style: styles.contents,
|
|
13
10
|
source: logo
|
|
14
11
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
15
12
|
style: styles.text
|
|
16
|
-
}, "\uC7A0\uC2DC\uB9CC \uAE30\uB2E4\uB824\uC8FC\uC138\uC694..."))
|
|
13
|
+
}, "\uC7A0\uC2DC\uB9CC \uAE30\uB2E4\uB824\uC8FC\uC138\uC694..."));
|
|
17
14
|
}
|
|
18
15
|
|
|
19
16
|
const styles = StyleSheet.create({
|
|
20
|
-
container: {
|
|
21
|
-
flex: 1,
|
|
22
|
-
alignItems: 'center',
|
|
23
|
-
flexDirection: 'row',
|
|
24
|
-
justifyContent: 'center'
|
|
25
|
-
},
|
|
26
|
-
contents: {
|
|
17
|
+
container: {
|
|
27
18
|
flex: 1,
|
|
28
19
|
alignItems: 'center',
|
|
20
|
+
flexDirection: 'column',
|
|
29
21
|
justifyContent: 'center'
|
|
30
22
|
},
|
|
31
23
|
text: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["React","View","Image","Text","StyleSheet","logo","require","Loading","styles","container","
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["React","View","Image","Text","StyleSheet","logo","require","Loading","styles","container","text","create","flex","alignItems","flexDirection","justifyContent","fontSize","marginTop","lineHeight"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,KAAf,EAAsBC,IAAtB,EAA4BC,UAA5B,QAA8C,cAA9C;;AAEA,MAAMC,IAAI,GAAGC,OAAO,CAAC,4BAAD,CAApB;;AAEA,SAASC,OAAT,GAAmB;AACjB,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACC;AAApB,kBACE,oBAAC,KAAD;AAAO,IAAA,MAAM,EAAEJ;AAAf,IADF,eAEE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEG,MAAM,CAACE;AAApB,kEAFF,CADF;AAMD;;AAED,MAAMF,MAAM,GAAGJ,UAAU,CAACO,MAAX,CAAkB;AAC/BF,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,UAAU,EAAE,QAFH;AAGTC,IAAAA,aAAa,EAAE,QAHN;AAITC,IAAAA,cAAc,EAAE;AAJP,GADoB;AAO/BL,EAAAA,IAAI,EAAE;AACJM,IAAAA,QAAQ,EAAE,EADN;AAEJC,IAAAA,SAAS,EAAE,EAFP;AAGJC,IAAAA,UAAU,EAAE;AAHR;AAPyB,CAAlB,CAAf;AAcA,eAAeX,OAAf","sourcesContent":["import React from 'react';\nimport { View, Image, Text, StyleSheet } from 'react-native';\n\nconst logo = require('../../img/iamport-logo.png');\n\nfunction Loading() {\n return (\n <View style={styles.container}>\n <Image source={logo} />\n <Text style={styles.text}>잠시만 기다려주세요...</Text>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n text: {\n fontSize: 20,\n marginTop: 20,\n lineHeight: 25,\n },\n});\n\nexport default Loading;\n"]}
|
|
@@ -23,6 +23,12 @@ function Payment({
|
|
|
23
23
|
const [isInicisTransPaid, setIsInicisTransPaid] = useState(false);
|
|
24
24
|
const webview = /*#__PURE__*/createRef();
|
|
25
25
|
const smilepayRef = useRef(false);
|
|
26
|
+
let redirectUrl = IMPConst.M_REDIRECT_URL;
|
|
27
|
+
|
|
28
|
+
if (data.m_redirect_url !== undefined && data.m_redirect_url.trim() !== '') {
|
|
29
|
+
redirectUrl = data.m_redirect_url;
|
|
30
|
+
}
|
|
31
|
+
|
|
26
32
|
useEffect(() => {
|
|
27
33
|
const {
|
|
28
34
|
pg
|
|
@@ -67,7 +73,7 @@ function Payment({
|
|
|
67
73
|
var _webview$current;
|
|
68
74
|
|
|
69
75
|
(_webview$current = webview.current) === null || _webview$current === void 0 ? void 0 : _webview$current.injectJavaScript(`
|
|
70
|
-
window.location.href = "${
|
|
76
|
+
window.location.href = "${redirectUrl}?${iamportUrl.getInicisTransQuery(redirectUrl)}";
|
|
71
77
|
`);
|
|
72
78
|
} else {
|
|
73
79
|
setIsInicisTransPaid(true);
|
|
@@ -97,7 +103,7 @@ function Payment({
|
|
|
97
103
|
};
|
|
98
104
|
|
|
99
105
|
Linking.addEventListener('url', handleOpenURL);
|
|
100
|
-
}, [data, isInicisTransPaid, webview]);
|
|
106
|
+
}, [data, isInicisTransPaid, redirectUrl, webview]);
|
|
101
107
|
|
|
102
108
|
const removeLoadingNeeded = () => {
|
|
103
109
|
if (showLoading && Platform.OS === 'android') {
|
|
@@ -138,23 +144,17 @@ function Payment({
|
|
|
138
144
|
|
|
139
145
|
if (validation.getIsValid()) {
|
|
140
146
|
const {
|
|
141
|
-
wrapper,
|
|
142
147
|
loadingContainer,
|
|
143
148
|
webViewContainer
|
|
144
149
|
} = viewStyles;
|
|
145
|
-
return /*#__PURE__*/React.createElement(
|
|
146
|
-
|
|
147
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
148
|
-
style: webViewContainer
|
|
149
|
-
}, /*#__PURE__*/React.createElement(WebView, {
|
|
150
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(WebView, {
|
|
151
|
+
containerStyle: webViewContainer,
|
|
150
152
|
ref: webview,
|
|
151
153
|
source: webviewSource,
|
|
152
154
|
onLoadEnd: () => {
|
|
153
155
|
if (!isWebViewLoaded) {
|
|
154
156
|
var _webview$current5;
|
|
155
157
|
|
|
156
|
-
data.m_redirect_url = IMPConst.M_REDIRECT_URL;
|
|
157
|
-
|
|
158
158
|
if (data.pg.startsWith('eximbay')) {
|
|
159
159
|
data.popup = false;
|
|
160
160
|
}
|
|
@@ -191,25 +191,19 @@ function Payment({
|
|
|
191
191
|
/* PG사가 callback을 지원하는 경우, 결제결과를 받아 callback을 실행한다 */
|
|
192
192
|
,
|
|
193
193
|
onMessage: e => {
|
|
194
|
-
const {
|
|
195
|
-
data
|
|
196
|
-
} = e.nativeEvent;
|
|
197
194
|
/**
|
|
198
195
|
* [v1.6.0] 다날의 경우 response에 주문명(name)이 포함되어 있는데
|
|
199
196
|
* 주문명에 %가 들어갈 경우, decodeURIComponent시 URI malformed 에러가 발생하는 것 대비해
|
|
200
197
|
* 우선 encodeURIComponent를 한 후, decodeURIComponent가 끝나면
|
|
201
198
|
* 최종적으로 decodeURIComponent를 한 번 더 한다
|
|
202
199
|
*/
|
|
200
|
+
const encoded = encodeURIComponent(e.nativeEvent.data);
|
|
201
|
+
const decoded = decodeURIComponent(encoded);
|
|
202
|
+
const response = JSON.parse(decoded);
|
|
203
203
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
while (decodeURIComponent(response) !== data) {
|
|
207
|
-
response = decodeURIComponent(response);
|
|
204
|
+
if (typeof callback === 'function') {
|
|
205
|
+
callback(response);
|
|
208
206
|
}
|
|
209
|
-
|
|
210
|
-
response = decodeURIComponent(response);
|
|
211
|
-
response = JSON.parse(response);
|
|
212
|
-
callback(response);
|
|
213
207
|
},
|
|
214
208
|
originWhitelist: ['*'] // https://github.com/facebook/react-native/issues/19986
|
|
215
209
|
,
|
|
@@ -217,7 +211,8 @@ function Payment({
|
|
|
217
211
|
onShouldStartLoadWithRequest: request => {
|
|
218
212
|
const {
|
|
219
213
|
url
|
|
220
|
-
} = request;
|
|
214
|
+
} = request; // console.log(`url: ${url}`);
|
|
215
|
+
|
|
221
216
|
const iamportUrl = new IamportUrl(url);
|
|
222
217
|
|
|
223
218
|
if (iamportUrl.isAppUrl()) {
|
|
@@ -236,8 +231,11 @@ function Payment({
|
|
|
236
231
|
return false;
|
|
237
232
|
}
|
|
238
233
|
|
|
239
|
-
if (iamportUrl.isPaymentOver()) {
|
|
240
|
-
callback
|
|
234
|
+
if (iamportUrl.isPaymentOver(redirectUrl)) {
|
|
235
|
+
if (typeof callback === 'function') {
|
|
236
|
+
callback(iamportUrl.getQuery());
|
|
237
|
+
}
|
|
238
|
+
|
|
241
239
|
return false;
|
|
242
240
|
}
|
|
243
241
|
|
|
@@ -252,7 +250,7 @@ function Payment({
|
|
|
252
250
|
|
|
253
251
|
return true;
|
|
254
252
|
}
|
|
255
|
-
})
|
|
253
|
+
}), showLoading && /*#__PURE__*/React.createElement(View, {
|
|
256
254
|
style: loadingContainer
|
|
257
255
|
}, loading || /*#__PURE__*/React.createElement(Loading, null)));
|
|
258
256
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["React","createRef","useEffect","useRef","useState","ValidationForPayment","ErrorOnParams","Linking","Platform","View","IMPConst","IamportUrl","WebView","viewStyles","Loading","Payment","userCode","tierCode","data","loading","callback","webviewSource","setWebviewSource","html","WEBVIEW_SOURCE_HTML","isWebViewLoaded","setIsWebViewLoaded","showLoading","setShowLoading","isInicisTransPaid","setIsInicisTransPaid","webview","smilepayRef","pg","startsWith","OS","current","baseUrl","SMILEPAY_BASE_URL","handleOpenURL","event","pay_method","iamportUrl","url","injectJavaScript","M_REDIRECT_URL","getInicisTransQuery","queryParameters","getQuery","scheme","niceTransRedirectionUrl","app_scheme","toLowerCase","callbackparam1","getStringifiedQuery","addEventListener","removeLoadingNeeded","isIframeWayPayment","customer_uid","validation","getIsValid","wrapper","loadingContainer","webViewContainer","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,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,SAA3B,EAAsCC,MAAtC,EAA8CC,QAA9C,QAA8D,OAA9D;AAEA,OAAOC,oBAAP,MAAiC,kCAAjC;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AACA,SAASC,OAAT,EAAkBC,QAAlB,EAA4BC,IAA5B,QAAwC,cAAxC;AACA,SAASC,QAAT,QAAyB,iBAAzB;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,OAAP,MAAoB,sBAApB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,OAAP,MAAoB,YAApB;;AAWA,SAASC,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,IAAoClB,QAAQ,CAAgB;AAChEmB,IAAAA,IAAI,EAAEb,QAAQ,CAACc;AADiD,GAAhB,CAAlD;AAGA,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwCtB,QAAQ,CAAC,KAAD,CAAtD;AACA,QAAM,CAACuB,WAAD,EAAcC,cAAd,IAAgCxB,QAAQ,CAAC,IAAD,CAA9C;AACA,QAAM,CAACyB,iBAAD,EAAoBC,oBAApB,IAA4C1B,QAAQ,CAAC,KAAD,CAA1D;AACA,QAAM2B,OAAO,gBAAG9B,SAAS,EAAzB;AACA,QAAM+B,WAAW,GAAG7B,MAAM,CAAC,KAAD,CAA1B;AAEAD,EAAAA,SAAS,CAAC,MAAM;AACd,UAAM;AAAE+B,MAAAA;AAAF,QAASf,IAAf;;AACA,QACEe,EAAE,CAACC,UAAH,CAAc,UAAd,KACA1B,QAAQ,CAAC2B,EAAT,KAAgB,KADhB,IAEA,CAACH,WAAW,CAACI,OAHf,EAIE;AACA;AACN;AACA;AACA;AACA;AACMd,MAAAA,gBAAgB,CAAC,EACf,GAAGD,aADY;AAEfgB,QAAAA,OAAO,EAAE3B,QAAQ,CAAC4B;AAFH,OAAD,CAAhB;AAIAN,MAAAA,WAAW,CAACI,OAAZ,GAAsB,IAAtB;AACD;AACF,GAlBQ,EAkBN,CAAClB,IAAD,EAAOG,aAAP,CAlBM,CAAT;AAoBAnB,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMqC,aAAa,GAAIC,KAAD,IAA4B;AAChD,YAAM;AAAEP,QAAAA,EAAF;AAAMQ,QAAAA;AAAN,UAAqBvB,IAA3B;;AACA,UAAIuB,UAAU,KAAK,OAAnB,EAA4B;AAC1B,cAAMC,UAAU,GAAG,IAAI/B,UAAJ,CAAe6B,KAAK,CAACG,GAArB,CAAnB;AACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACQ,YAAIV,EAAE,CAACC,UAAH,CAAc,cAAd,KAAiC1B,QAAQ,CAAC2B,EAAT,KAAgB,KAArD,EAA4D;AAC1D,cAAIN,iBAAJ,EAAuB;AAAA;;AACrB,gCAAAE,OAAO,CAACK,OAAR,sEAAiBQ,gBAAjB,CAAmC;AAC/C,wCACgBlC,QAAQ,CAACmC,cACV,IAAGH,UAAU,CAACI,mBAAX,EAAiC;AACnD,aAJY;AAKD,WAND,MAMO;AACLhB,YAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD;AACF;AAED;;;AACA,YAAIG,EAAE,CAACC,UAAH,CAAc,MAAd,CAAJ,EAA2B;AAAA;;AACzB,gBAAMa,eAAe,GAAGL,UAAU,CAACM,QAAX,EAAxB;AACA,gBAAMC,MAAM,GAAGP,UAAU,CAACO,MAA1B;AACA,cAAIC,uBAAJ;;AACA,cAAID,MAAM,0BAAK/B,IAAI,CAACiC,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,+BAAAtB,OAAO,CAACK,OAAR,wEAAiBQ,gBAAjB,CAAmC;AAC7C,sCAAsCM,uBAAwB,IAAGR,UAAU,CAACY,mBAAX,EAAiC;AAClG,WAFU;AAGD;AACF;AACF,KA3CD;;AA4CA/C,IAAAA,OAAO,CAACgD,gBAAR,CAAyB,KAAzB,EAAgChB,aAAhC;AACD,GA9CQ,EA8CN,CAACrB,IAAD,EAAOW,iBAAP,EAA0BE,OAA1B,CA9CM,CAAT;;AAgDA,QAAMyB,mBAAmB,GAAG,MAAM;AAChC,QAAI7B,WAAW,IAAInB,QAAQ,CAAC2B,EAAT,KAAgB,SAAnC,EAA8C;AAC5C;AACA,UAAIV,eAAJ,EAAqB;AACnB;AACA,eAAO,IAAP;AACD;;AACD,aAAOgC,kBAAkB,EAAzB;AACD,KAR+B,CAShC;;;AACA,WAAO,KAAP;AACD,GAXD;;AAaA,QAAMA,kBAAkB,GAAG,MAAM;AAC/B,UAAM;AAAExB,MAAAA,EAAF;AAAMQ,MAAAA,UAAN;AAAkBiB,MAAAA;AAAlB,QAAmCxC,IAAzC;;AACA,QAAIe,EAAE,CAACC,UAAH,CAAc,cAAd,KAAiCwB,YAArC,EAAmD;AACjD;AACA,aAAO,IAAP;AACD;;AACD,QAAIzB,EAAE,CAACC,UAAH,CAAc,WAAd,KAA8BO,UAAU,KAAK,OAAjD,EAA0D;AACxD;AACA,aAAO,IAAP;AACD;;AACD,WACER,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,QAAMyB,UAAU,GAAG,IAAItD,oBAAJ,CACjBW,QADiB,EAEjBG,OAFiB,EAGjBC,QAHiB,EAIjBF,IAJiB,CAAnB;;AAMA,MAAIyC,UAAU,CAACC,UAAX,EAAJ,EAA6B;AAC3B,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA,gBAAX;AAA6BC,MAAAA;AAA7B,QAAkDlD,UAAxD;AACA,wBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEgD;AAAb,oBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEE;AAAb,oBACE,oBAAC,OAAD;AACE,MAAA,GAAG,EAAEhC,OADP;AAEE,MAAA,MAAM,EAAEV,aAFV;AAGE,MAAA,SAAS,EAAE,MAAM;AACf,YAAI,CAACI,eAAL,EAAsB;AAAA;;AACpBP,UAAAA,IAAI,CAAC8C,cAAL,GAAsBtD,QAAQ,CAACmC,cAA/B;;AACA,cAAI3B,IAAI,CAACe,EAAL,CAAQC,UAAR,CAAmB,SAAnB,CAAJ,EAAmC;AACjChB,YAAAA,IAAI,CAAC+C,KAAL,GAAa,KAAb;AACD;;AAED,cAAIhD,QAAJ,EAAc;AAAA;;AACZ,iCAAAc,OAAO,CAACK,OAAR,wEAAiBQ,gBAAjB,CAAmC;AACrD,0DAA0D5B,QAAS,OAAMC,QAAS;AAClF,mBAFkB;AAGD,WAJD,MAIO;AAAA;;AACL,iCAAAc,OAAO,CAACK,OAAR,wEAAiBQ,gBAAjB,CAAmC;AACrD,wDAAwD5B,QAAS;AACjE,mBAFkB;AAGD;;AACD,+BAAAe,OAAO,CAACK,OAAR,wEAAiBQ,gBAAjB,CAAmC;AACnD;AACA,sCAAsCsB,IAAI,CAACC,SAAL,CAChBjD,IADgB,CAEhB;AACtB;AACA;AACA;AACA,iBARgB;AASAQ,UAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD,SA1Bc,CA4Bf;;;AACA,YAAI8B,mBAAmB,EAAvB,EAA2B;AACzB5B,UAAAA,cAAc,CAAC,KAAD,CAAd;AACD;AACF;AACD;AApCF;AAqCE,MAAA,SAAS,EAAGwC,CAAD,IAAO;AAChB,cAAM;AAAElD,UAAAA;AAAF,YAAWkD,CAAC,CAACC,WAAnB;AACA;AACd;AACA;AACA;AACA;AACA;;AACc,YAAIC,QAAQ,GAAGC,kBAAkB,CAACrD,IAAD,CAAjC;;AACA,eAAOsD,kBAAkB,CAACF,QAAD,CAAlB,KAAiCpD,IAAxC,EAA8C;AAC5CoD,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;AACAlD,QAAAA,QAAQ,CAACkD,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;AAAE/B,UAAAA;AAAF,YAAU+B,OAAhB;AACA,cAAMhC,UAAU,GAAG,IAAI/B,UAAJ,CAAegC,GAAf,CAAnB;;AACA,YAAID,UAAU,CAACiC,QAAX,EAAJ,EAA2B;AACzB;AACAjC,UAAAA,UAAU,CAACkC,SAAX,GAAuBC,KAAvB,CAA8BT,CAAD,IAAO;AAClC,kBAAM;AAAEU,cAAAA,IAAF;AAAQC,cAAAA;AAAR,gBAAoBX,CAA1B;AACAhD,YAAAA,QAAQ,CAAC;AACP4D,cAAAA,WAAW,EAAE,KADN;AAEPC,cAAAA,UAAU,EAAEH,IAFL;AAGPI,cAAAA,SAAS,EAAEH;AAHJ,aAAD,CAAR;AAKD,WAPD;AASA,iBAAO,KAAP;AACD;;AACD,YAAIrC,UAAU,CAACyC,aAAX,EAAJ,EAAgC;AAC9B/D,UAAAA,QAAQ,CAACsB,UAAU,CAACM,QAAX,EAAD,CAAR;AACA,iBAAO,KAAP;AACD;;AACD,YACEvB,eAAe,IACfE,WADA,IAEAe,UAAU,CAAC0C,cAAX,EAHF,EAIE;AACA;AAChB;AACA;AACA;AACA;AACgBxD,UAAAA,cAAc,CAAC,KAAD,CAAd;AACD;;AACD,eAAO,IAAP;AACD;AAxFH,MADF,CADF,EA6FGD,WAAW,iBACV,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEmC;AAAb,OAAgC3C,OAAO,iBAAI,oBAAC,OAAD,OAA3C,CA9FJ,CADF;AAmGD;;AAED,sBAAO,oBAAC,aAAD;AAAe,IAAA,OAAO,EAAEwC,UAAU,CAAC0B,UAAX;AAAxB,IAAP;AACD;;AAED,eAAetE,OAAf","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"]}
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["React","createRef","useEffect","useRef","useState","ValidationForPayment","ErrorOnParams","Linking","Platform","View","IMPConst","IamportUrl","WebView","viewStyles","Loading","Payment","userCode","tierCode","data","loading","callback","webviewSource","setWebviewSource","html","WEBVIEW_SOURCE_HTML","isWebViewLoaded","setIsWebViewLoaded","showLoading","setShowLoading","isInicisTransPaid","setIsInicisTransPaid","webview","smilepayRef","redirectUrl","M_REDIRECT_URL","m_redirect_url","undefined","trim","pg","startsWith","OS","current","baseUrl","SMILEPAY_BASE_URL","handleOpenURL","event","pay_method","iamportUrl","url","injectJavaScript","getInicisTransQuery","queryParameters","getQuery","scheme","niceTransRedirectionUrl","app_scheme","toLowerCase","callbackparam1","getStringifiedQuery","addEventListener","removeLoadingNeeded","isIframeWayPayment","customer_uid","validation","getIsValid","loadingContainer","webViewContainer","popup","JSON","stringify","e","encoded","encodeURIComponent","nativeEvent","decoded","decodeURIComponent","response","parse","request","isAppUrl","launchApp","catch","code","message","imp_success","error_code","error_msg","isPaymentOver","isIframeLoaded","getMessage"],"mappings":"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","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 let redirectUrl = IMPConst.M_REDIRECT_URL;\n if (data.m_redirect_url !== undefined && data.m_redirect_url.trim() !== '') {\n redirectUrl = data.m_redirect_url;\n }\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 = \"${redirectUrl}?${iamportUrl.getInicisTransQuery(\n redirectUrl\n )}\";\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, redirectUrl, 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 { loadingContainer, webViewContainer } = viewStyles;\n return (\n <>\n <WebView\n containerStyle={webViewContainer}\n ref={webview}\n source={webviewSource}\n onLoadEnd={() => {\n if (!isWebViewLoaded) {\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 /**\n * [v1.6.0] 다날의 경우 response에 주문명(name)이 포함되어 있는데\n * 주문명에 %가 들어갈 경우, decodeURIComponent시 URI malformed 에러가 발생하는 것 대비해\n * 우선 encodeURIComponent를 한 후, decodeURIComponent가 끝나면\n * 최종적으로 decodeURIComponent를 한 번 더 한다\n */\n const encoded = encodeURIComponent(e.nativeEvent.data);\n const decoded = decodeURIComponent(encoded);\n const response = JSON.parse(decoded);\n if (typeof callback === 'function') {\n callback(response);\n }\n }}\n originWhitelist={['*']} // https://github.com/facebook/react-native/issues/19986\n sharedCookiesEnabled={true}\n onShouldStartLoadWithRequest={(request) => {\n const { url } = request;\n // console.log(`url: ${url}`);\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(redirectUrl)) {\n if (typeof callback === 'function') {\n callback(iamportUrl.getQuery());\n }\n return false;\n }\n if (isWebViewLoaded && showLoading && iamportUrl.isIframeLoaded()) {\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 {showLoading && (\n <View style={loadingContainer}>{loading || <Loading />}</View>\n )}\n </>\n );\n }\n\n return <ErrorOnParams message={validation.getMessage()} />;\n}\n\nexport default Payment;\n"]}
|
|
@@ -27,7 +27,7 @@ let IMPConst;
|
|
|
27
27
|
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
|
|
28
28
|
|
|
29
29
|
<script type='text/javascript' src='https://code.jquery.com/jquery-latest.min.js' ></script>
|
|
30
|
-
<script type='text/javascript' src='https://cdn.iamport.kr/js/iamport.payment-1.
|
|
30
|
+
<script type='text/javascript' src='https://cdn.iamport.kr/js/iamport.payment-1.2.0.js'></script>
|
|
31
31
|
</head>
|
|
32
32
|
<body></body>
|
|
33
33
|
</html>
|
|
@@ -55,12 +55,14 @@ let IMPConst;
|
|
|
55
55
|
LPAY: 'lpayapp',
|
|
56
56
|
SSGPAY: 'shinsegaeeasypayment',
|
|
57
57
|
KPAY: 'kpay',
|
|
58
|
+
KBANKPAY: 'ukbanksmartbanknonloginpay',
|
|
58
59
|
PAYNOW: 'lguthepay-xpay',
|
|
59
60
|
WOORIWONCARD: 'com.wooricard.smartapp',
|
|
60
61
|
LPOINT: 'lmslpay',
|
|
61
62
|
KTFAUTH: 'ktauthexternalcall',
|
|
62
63
|
LGTAUTH: 'upluscorporation',
|
|
63
|
-
SKTAUTH: 'tauthlink'
|
|
64
|
+
SKTAUTH: 'tauthlink',
|
|
65
|
+
WOORIWONBANK: 'wooribank'
|
|
64
66
|
};
|
|
65
67
|
const ANDROID_PACKAGE = _IMPConst.ANDROID_PACKAGE = {
|
|
66
68
|
PACKAGE_ISP: 'kvp.jjy.MispAndroid320',
|
|
@@ -85,12 +87,14 @@ let IMPConst;
|
|
|
85
87
|
PACKAGE_LPAY: 'com.lotte.lpay',
|
|
86
88
|
PACKAGE_SSGPAY: 'com.ssg.serviceapp.android.egiftcertificate',
|
|
87
89
|
PACKAGE_KPAY: 'com.inicis.kpay',
|
|
90
|
+
PACKAGE_KBANKPAY: 'com.kbankwith.smartbank',
|
|
88
91
|
PACKAGE_PAYNOW: 'com.lguplus.paynow',
|
|
89
92
|
PACKAGE_WOORIWONCARD: 'com.wooricard.smartapp',
|
|
90
93
|
PACKAGE_LPOINT: 'com.lottemembers.android',
|
|
91
94
|
PACKAGE_KTFAUTH: 'com.kt.ktauth',
|
|
92
95
|
PACKAGE_LGTAUTH: 'com.lguplus.smartotp',
|
|
93
|
-
PACKAGE_SKTAUTH: 'com.sktelecom.tauth'
|
|
96
|
+
PACKAGE_SKTAUTH: 'com.sktelecom.tauth',
|
|
97
|
+
PACKAGE_WOORIWONBANK: 'com.wooribank.smart.npib'
|
|
94
98
|
};
|
|
95
99
|
})(IMPConst || (IMPConst = {}));
|
|
96
100
|
|
|
@@ -1 +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":";;;AACS,QAAMA,EAAE,kBAAG,CAChB,cADgB,EAEhB,QAFgB,EAGhB,OAHgB,EAIhB,KAJgB,EAKhB,aALgB,EAMhB,MANgB,EAOhB,OAPgB,EAQhB,OARgB,EAShB,UATgB,EAUhB,OAVgB,EAWhB,YAXgB,EAYhB,MAZgB,EAahB,QAbgB,EAchB,WAdgB,EAehB,OAfgB,EAgBhB,SAhBgB,EAiBhB,QAjBgB,EAkBhB,SAlBgB,EAmBhB,UAnBgB,EAoBhB,UApBgB,EAqBhB,MArBgB,EAsBhB,QAtBgB,EAuBhB,QAvBgB,EAwBhB,YAxBgB,EAyBhB,SAzBgB,EA0BhB,SA1BgB,CAAX;AA6BA,QAAMC,UAAU,0BAAG,CACxB,MADwB,EAExB,OAFwB,EAGxB,OAHwB,EAIxB,OAJwB,EAKxB,SALwB,EAMxB,MANwB,EAOxB,aAPwB,EAQxB,cARwB,EASxB,YATwB,EAUxB,WAVwB,EAWxB,UAXwB,EAYxB,MAZwB,EAaxB,OAbwB,EAcxB,QAdwB,EAexB,SAfwB,EAgBxB;AACA,YAjBwB,EAiBZ;AACZ,UAlBwB,EAkBd;AACV,UAnBwB,EAmBd;AACV,UApBwB,EAoBd;AACV,UArBwB,EAqBd;AACV,WAtBwB,CAsBb;AAtBa,GAAnB;AAwBA,QAAMC,QAAQ,wBAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,CAAjB;AACA,QAAMC,QAAQ,wBAAG,CAAC,IAAD,EAAO,IAAP,CAAjB;AACA,QAAMC,eAAe,+BAAG,CAC7B,QAD6B,EAE7B,cAF6B,EAG7B,OAH6B,EAI7B,MAJ6B,EAK7B,SAL6B,CAAxB;AAOA,QAAMC,QAAQ,wBAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,MAAtB,CAAjB;AAEA,QAAMC,qBAAqB,qCAAG,sBAA9B;AACA,QAAMC,iBAAiB,iCAAG,6BAA1B;AACA,QAAMC,cAAc,8BAAG,yCAAvB;AACA,QAAMC,cAAc,8BACzB,mDADK;AAEA,QAAMC,WAAW,2BAAG,4BAApB;AACA,QAAMC,iBAAiB,iCAAG,4BAA1B;AAEA,QAAMC,mBAAmB,mCAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAXS;AAaA,QAAMC,iBAAiB,iCAAG;AAC/BC,IAAAA,GAAG,EAAE,WAD0B;AAE/BC,IAAAA,OAAO,EAAE,cAFsB;AAG/BC,IAAAA,UAAU,EAAE,YAHmB;AAI/BC,IAAAA,UAAU,EAAE,aAJmB;AAK/BC,IAAAA,UAAU,EAAE,YALmB;AAM/BC,IAAAA,UAAU,EAAE,YANmB;AAO/BC,IAAAA,QAAQ,EAAE,WAPqB;AAQ/BC,IAAAA,QAAQ,EAAE,aARqB;AAS/BC,IAAAA,OAAO,EAAE,aATsB;AAU/BC,IAAAA,KAAK,EAAE,OAVwB;AAW/BC,IAAAA,WAAW,EAAE,yBAXkB;AAY/BC,IAAAA,IAAI,EAAE,WAZyB;AAa/BC,IAAAA,WAAW,EAAE,uBAbkB;AAc/BC,IAAAA,QAAQ,EAAE,UAdqB;AAe/BC,IAAAA,WAAW,EAAE,2BAfkB;AAgB/BC,IAAAA,MAAM,EAAE,QAhBuB;AAiB/BC,IAAAA,MAAM,EAAE,uBAjBuB;AAkB/BC,IAAAA,QAAQ,EAAE,eAlBqB;AAmB/BC,IAAAA,SAAS,EAAE,cAnBoB;AAoB/BC,IAAAA,IAAI,EAAE,SApByB;AAqB/BC,IAAAA,MAAM,EAAE,sBArBuB;AAsB/BC,IAAAA,IAAI,EAAE,MAtByB;AAuB/BC,IAAAA,
|
|
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","KBANKPAY","PAYNOW","WOORIWONCARD","LPOINT","KTFAUTH","LGTAUTH","SKTAUTH","WOORIWONBANK","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_KBANKPAY","PACKAGE_PAYNOW","PACKAGE_WOORIWONCARD","PACKAGE_LPOINT","PACKAGE_KTFAUTH","PACKAGE_LGTAUTH","PACKAGE_SKTAUTH","PACKAGE_WOORIWONBANK","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.2.0.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 KBANKPAY: 'ukbanksmartbanknonloginpay',\n PAYNOW: 'lguthepay-xpay',\n WOORIWONCARD: 'com.wooricard.smartapp',\n LPOINT: 'lmslpay',\n KTFAUTH: 'ktauthexternalcall',\n LGTAUTH: 'upluscorporation',\n SKTAUTH: 'tauthlink',\n WOORIWONBANK: 'wooribank',\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_KBANKPAY: 'com.kbankwith.smartbank',\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 PACKAGE_WOORIWONBANK: 'com.wooribank.smart.npib',\n } as const;\n}\n\nexport { IMPConst };\n"]}
|
|
@@ -39,8 +39,7 @@ class IamportUrl {
|
|
|
39
39
|
this.path = scheme + '://' + host;
|
|
40
40
|
this.scheme = scheme;
|
|
41
41
|
} else if (s.startsWith('package')) {
|
|
42
|
-
|
|
43
|
-
this.package = p;
|
|
42
|
+
this.package = s.split('=')[1];
|
|
44
43
|
}
|
|
45
44
|
});
|
|
46
45
|
} else {
|
|
@@ -56,8 +55,8 @@ class IamportUrl {
|
|
|
56
55
|
return this.url;
|
|
57
56
|
}
|
|
58
57
|
|
|
59
|
-
isPaymentOver() {
|
|
60
|
-
return this.url.includes(
|
|
58
|
+
isPaymentOver(redirectUrl) {
|
|
59
|
+
return this.url.includes(redirectUrl);
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
isAppUrl() {
|
|
@@ -132,6 +131,7 @@ class IamportUrl {
|
|
|
132
131
|
return IMPConst.IOS_MARKET_PREFIX + 'id1201113419';
|
|
133
132
|
|
|
134
133
|
case 'com.wooricard.wcard':
|
|
134
|
+
// 우리WON카드
|
|
135
135
|
return IMPConst.IOS_MARKET_PREFIX + 'id1499598869';
|
|
136
136
|
|
|
137
137
|
case 'nhallonepayansimclick':
|
|
@@ -166,6 +166,14 @@ class IamportUrl {
|
|
|
166
166
|
// 토스
|
|
167
167
|
return IMPConst.IOS_MARKET_PREFIX + 'id839333328';
|
|
168
168
|
|
|
169
|
+
case 'newsmartpib':
|
|
170
|
+
// 우리WON뱅킹
|
|
171
|
+
return IMPConst.IOS_MARKET_PREFIX + 'id1470181651';
|
|
172
|
+
|
|
173
|
+
case 'ukbanksmartbanknonloginpay':
|
|
174
|
+
// 케이뱅크 페이
|
|
175
|
+
return IMPConst.IOS_MARKET_PREFIX + 'id1178872627';
|
|
176
|
+
|
|
169
177
|
default:
|
|
170
178
|
return this.url;
|
|
171
179
|
}
|
|
@@ -241,6 +249,9 @@ class IamportUrl {
|
|
|
241
249
|
case IMPConst.ANDROID_APPSCHEME.KPAY:
|
|
242
250
|
return IMPConst.ANDROID_MARKET_PREFIX + IMPConst.ANDROID_PACKAGE.PACKAGE_KPAY;
|
|
243
251
|
|
|
252
|
+
case IMPConst.ANDROID_APPSCHEME.KBANKPAY:
|
|
253
|
+
return IMPConst.ANDROID_MARKET_PREFIX + IMPConst.ANDROID_PACKAGE.PACKAGE_KBANKPAY;
|
|
254
|
+
|
|
244
255
|
case IMPConst.ANDROID_APPSCHEME.PAYNOW:
|
|
245
256
|
return IMPConst.ANDROID_MARKET_PREFIX + IMPConst.ANDROID_PACKAGE.PACKAGE_PAYNOW;
|
|
246
257
|
|
|
@@ -259,6 +270,9 @@ class IamportUrl {
|
|
|
259
270
|
case IMPConst.ANDROID_APPSCHEME.SKTAUTH:
|
|
260
271
|
return IMPConst.ANDROID_MARKET_PREFIX + IMPConst.ANDROID_PACKAGE.PACKAGE_SKTAUTH;
|
|
261
272
|
|
|
273
|
+
case IMPConst.ANDROID_APPSCHEME.WOORIWONBANK:
|
|
274
|
+
return IMPConst.ANDROID_MARKET_PREFIX + IMPConst.ANDROID_PACKAGE.PACKAGE_WOORIWONBANK;
|
|
275
|
+
|
|
262
276
|
default:
|
|
263
277
|
return this.url;
|
|
264
278
|
}
|
|
@@ -276,18 +290,18 @@ class IamportUrl {
|
|
|
276
290
|
return queryString.extract(decodedUrl);
|
|
277
291
|
}
|
|
278
292
|
|
|
279
|
-
getInicisTransQuery() {
|
|
293
|
+
getInicisTransQuery(redirectUrl) {
|
|
280
294
|
const {
|
|
281
295
|
m_redirect_url,
|
|
282
296
|
imp_uid,
|
|
283
297
|
merchant_uid
|
|
284
298
|
} = this.getQuery();
|
|
285
299
|
const inicisTransQuery = {
|
|
286
|
-
imp_uid
|
|
300
|
+
imp_uid,
|
|
287
301
|
merchant_uid
|
|
288
302
|
};
|
|
289
303
|
|
|
290
|
-
if (m_redirect_url !== null && m_redirect_url !== void 0 && m_redirect_url.includes(
|
|
304
|
+
if (m_redirect_url !== null && m_redirect_url !== void 0 && m_redirect_url.includes(redirectUrl)) {
|
|
291
305
|
inicisTransQuery.merchant_uid = typeof merchant_uid === 'object' ? merchant_uid[0] : merchant_uid;
|
|
292
306
|
} else {
|
|
293
307
|
inicisTransQuery.merchant_uid = merchant_uid;
|
|
@@ -297,19 +311,13 @@ class IamportUrl {
|
|
|
297
311
|
}
|
|
298
312
|
|
|
299
313
|
async launchApp() {
|
|
300
|
-
if (Platform.OS === 'ios') {
|
|
301
|
-
if (await Linking.canOpenURL(this.url)) {
|
|
302
|
-
return await Linking.openURL(this.getAppUrl());
|
|
303
|
-
}
|
|
304
|
-
|
|
314
|
+
if (Platform.OS === 'ios' || Platform.OS === 'android') {
|
|
305
315
|
try {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
try {
|
|
312
|
-
return await Linking.openURL(this.getAppUrl());
|
|
316
|
+
if (await Linking.canOpenURL(this.url)) {
|
|
317
|
+
return await Linking.openURL(this.getAppUrl());
|
|
318
|
+
} else {
|
|
319
|
+
return await Linking.openURL(this.getAppUrl());
|
|
320
|
+
}
|
|
313
321
|
} catch (e) {
|
|
314
322
|
return await Linking.openURL(this.getMarketUrl());
|
|
315
323
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["IamportUrl.ts"],"names":["queryString","Linking","Platform","IMPConst","IamportUrl","constructor","url","splittedUrl","replace","split","scheme","OS","path","isAppUrl","includes","intentUrl","host","args","forEach","s","startsWith","p","package","getUrl","isPaymentOver","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","parse","getStringifiedQuery","decodedUrl","decodeURIComponent","extract","getInicisTransQuery","m_redirect_url","imp_uid","merchant_uid","inicisTransQuery","stringify","launchApp","canOpenURL","openURL","e"],"mappings":";;AAAA,OAAOA,WAAP,MAAwB,cAAxB;AACA,SAASC,OAAT,EAAkBC,QAAlB,QAAkC,cAAlC;AACA,SAASC,QAAT,QAAyB,cAAzB;;AAEA,MAAMC,UAAN,CAAiB;AAIG;AAElBC,EAAAA,WAAW,CAACC,GAAD,EAAc;AAAA;;AAAA;;AAAA;;AAAA;;AACvB,SAAKA,GAAL,GAAWA,GAAX;AACA,QAAIC,WAAW,GAAGD,GAAG,CAACE,OAAJ,CAAY,KAAZ,EAAmB,GAAnB,EAAwBC,KAAxB,CAA8B,GAA9B,CAAlB;AACA,SAAKC,MAAL,GAAcH,WAAW,CAAC,CAAD,CAAzB;;AACA,QAAIL,QAAQ,CAACS,EAAT,KAAgB,KAApB,EAA2B;AACzB,WAAKC,IAAL,GACE,KAAKF,MAAL,KAAgB,OAAhB,GAA2B,WAAUH,WAAW,CAAC,CAAD,CAAI,EAApD,GAAwD,KAAKD,GAD/D;AAED,KAHD,MAGO,IAAIJ,QAAQ,CAACS,EAAT,KAAgB,SAApB,EAA+B;AACpC,UAAI,KAAKE,QAAL,EAAJ,EAAqB;AACnB,YAAI,KAAKH,MAAL,CAAYI,QAAZ,CAAqB,QAArB,CAAJ,EAAoC;AAClC,cAAIC,SAAS,GAAGR,WAAW,CAAC,CAAD,CAAX,CAAeE,KAAf,CAAqB,UAArB,CAAhB;AACA,cAAIO,IAAI,GAAGD,SAAS,CAAC,CAAD,CAApB;AACA,cAAIE,IAAI,GAAGF,SAAS,CAAC,CAAD,CAAT,CAAaN,KAAb,CAAmB,GAAnB,CAAX;;AAEA,cAAI,KAAKC,MAAL,KAAgB,QAApB,EAA8B;AAC5B,iBAAKA,MAAL,GAAc,KAAKA,MAAL,CAAYD,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAd;AACA,iBAAKG,IAAL,GAAY,KAAKF,MAAL,GAAc,KAAd,GAAsBM,IAAlC;AACD;;AACDC,UAAAA,IAAI,CAACC,OAAL,CAAcC,CAAD,IAAO;AAClB,gBAAIA,CAAC,CAACC,UAAF,CAAa,QAAb,CAAJ,EAA4B;AAC1B,kBAAIV,MAAM,GAAGS,CAAC,CAACV,KAAF,CAAQ,GAAR,EAAa,CAAb,CAAb;AACA,mBAAKG,IAAL,GAAYF,MAAM,GAAG,KAAT,GAAiBM,IAA7B;AACA,mBAAKN,MAAL,GAAcA,MAAd;AACD,aAJD,MAIO,IAAIS,CAAC,CAACC,UAAF,CAAa,SAAb,CAAJ,EAA6B;AAClC,kBAAIC,CAAC,GAAGF,CAAC,CAACV,KAAF,CAAQ,GAAR,EAAa,CAAb,CAAR;AACA,mBAAKa,OAAL,GAAeD,CAAf;AACD;AACF,WATD;AAUD,SAnBD,MAmBO;AACL,eAAKT,IAAL,GAAY,KAAKN,GAAjB;AACD;AACF,OAvBD,MAuBO;AACL,aAAKM,IAAL,GAAY,KAAKN,GAAjB;AACD;AACF;AACF;;AAEDiB,EAAAA,MAAM,GAAG;AACP,WAAO,KAAKjB,GAAZ;AACD;;AAEDkB,EAAAA,aAAa,GAAG;AACd,WAAO,KAAKlB,GAAL,CAASQ,QAAT,CAAkBX,QAAQ,CAACsB,cAA3B,CAAP;AACD;;AAEDZ,EAAAA,QAAQ,GAAG;AACT,WAAO,CAAC,CAAC,MAAD,EAAS,OAAT,EAAkB,aAAlB,EAAiCC,QAAjC,CAA0C,KAAKJ,MAA/C,CAAR;AACD;;AAEDgB,EAAAA,cAAc,GAAG;AACf,WACE,KAAKpB,GAAL,KAAa,aAAb,IAA8B,CAAC,KAAKA,GAAL,CAASc,UAAT,CAAoBjB,QAAQ,CAACwB,WAA7B,CADjC;AAGD;;AAEDC,EAAAA,SAAS,GAAG;AACV,WAAO,KAAKhB,IAAZ;AACD;;AAEDiB,EAAAA,YAAY,GAAG;AACb,QAAI3B,QAAQ,CAACS,EAAT,KAAgB,KAApB,EAA2B;AACzB,cAAQ,KAAKD,MAAb;AACE,aAAK,cAAL;AAAqB;AACnB,iBAAOP,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,WAAL;AAAkB;AAChB,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,yBAAL;AAAgC;AAC9B,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,uBAAL;AAA8B;AAC5B,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,QAAL;AAAe;AACb,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,2BAAL;AAAkC;AAChC,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,eAAL;AAAsB;AACpB,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,cAAL;AAAqB;AACnB,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,UAAL;AAAiB;AACf,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,eAAL;AAAsB;AACpB,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,cAApC;;AACF,aAAK,OAAL;AAAc;AACZ,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,WAAL;AAAkB;AAChB,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,SAAL;AAAgB;AACd,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,cAApC;;AACF,aAAK,UAAL;AAAiB;AACf,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,cAApC;;AACF,aAAK,qBAAL;AACE,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,cAApC;;AACF,aAAK,uBAAL;AAA8B;AAC5B,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,cAApC;;AACF,aAAK,mBAAL;AAA0B;AACxB,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,cAApC;;AACF,aAAK,sBAAL;AAA6B;AAC3B,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,uBAAL;AAA8B;AAC5B,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,gBAAL;AAAuB;AACrB,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,SAAL;AAAgB;AACd,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF,aAAK,UAAL;AAAiB;AACf,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,cAApC;;AACF,aAAK,WAAL;AAAkB;AAChB,iBAAO3B,QAAQ,CAAC2B,iBAAT,GAA6B,aAApC;;AACF;AACE,iBAAO,KAAKxB,GAAZ;AAhDJ;AAkDD,KAnDD,MAmDO,IAAIJ,QAAQ,CAACS,EAAT,KAAgB,SAApB,EAA+B;AACpC,UAAI,KAAKW,OAAL,IAAgB,IAApB,EAA0B;AACxB,eAAOnB,QAAQ,CAAC4B,qBAAT,GAAiC,KAAKT,OAA7C;AACD;;AACD,cAAQ,KAAKZ,MAAb;AACE,aAAKP,QAAQ,CAAC6B,iBAAT,CAA2BC,GAAhC;AACE,iBACE9B,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBC,WAF3B;;AAIF,aAAKhC,QAAQ,CAAC6B,iBAAT,CAA2BI,OAAhC;AACE,iBACEjC,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBG,eAF3B;;AAIF,aAAKlC,QAAQ,CAAC6B,iBAAT,CAA2BM,UAAhC;AACE,iBACEnC,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBK,kBAF3B;;AAIF,aAAKpC,QAAQ,CAAC6B,iBAAT,CAA2BQ,UAAhC;AACE,iBACErC,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBO,kBAF3B;;AAIF,aAAKtC,QAAQ,CAAC6B,iBAAT,CAA2BU,UAAhC;AACE,iBACEvC,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBS,kBAF3B;;AAIF,aAAKxC,QAAQ,CAAC6B,iBAAT,CAA2BY,UAAhC;AACE,iBACEzC,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBW,kBAF3B;;AAIF,aAAK1C,QAAQ,CAAC6B,iBAAT,CAA2Bc,QAAhC;AACE,iBACE3C,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBa,gBAF3B;;AAIF,aAAK5C,QAAQ,CAAC6B,iBAAT,CAA2BgB,QAAhC;AACE,iBACE7C,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBe,gBAF3B;;AAIF,aAAK9C,QAAQ,CAAC6B,iBAAT,CAA2BkB,OAAhC;AACE,iBACE/C,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBiB,eAF3B;;AAIF,aAAKhD,QAAQ,CAAC6B,iBAAT,CAA2BoB,KAAhC;AACE,iBACEjD,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBmB,aAF3B;;AAIF,aAAKlD,QAAQ,CAAC6B,iBAAT,CAA2BsB,WAAhC;AACE,iBACEnD,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBqB,mBAF3B;;AAIF,aAAKpD,QAAQ,CAAC6B,iBAAT,CAA2BwB,IAAhC;AACE,iBACErD,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBuB,YAF3B;;AAIF,aAAKtD,QAAQ,CAAC6B,iBAAT,CAA2B0B,WAAhC;AACE,iBACEvD,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyByB,mBAF3B;;AAIF,aAAKxD,QAAQ,CAAC6B,iBAAT,CAA2B4B,QAAhC;AACE,iBACEzD,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyB2B,gBAF3B;;AAIF,aAAK1D,QAAQ,CAAC6B,iBAAT,CAA2B8B,WAAhC;AACE,iBACE3D,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyB6B,mBAF3B;;AAIF,aAAK5D,QAAQ,CAAC6B,iBAAT,CAA2BgC,MAAhC;AACE,iBACE7D,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyB+B,cAF3B;;AAIF,aAAK9D,QAAQ,CAAC6B,iBAAT,CAA2BkC,MAAhC;AACE,iBACE/D,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBiC,cAF3B;;AAIF,aAAKhE,QAAQ,CAAC6B,iBAAT,CAA2BoC,QAAhC;AACE,iBACEjE,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBmC,gBAF3B;;AAIF,aAAKlE,QAAQ,CAAC6B,iBAAT,CAA2BsC,SAAhC;AACE,iBACEnE,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBqC,iBAF3B;;AAIF,aAAKpE,QAAQ,CAAC6B,iBAAT,CAA2BwC,IAAhC;AACE,iBACErE,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBuC,YAF3B;;AAIF,aAAKtE,QAAQ,CAAC6B,iBAAT,CAA2B0C,MAAhC;AACE,iBACEvE,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyByC,cAF3B;;AAIF,aAAKxE,QAAQ,CAAC6B,iBAAT,CAA2B4C,IAAhC;AACE,iBACEzE,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyB2C,YAF3B;;AAIF,aAAK1E,QAAQ,CAAC6B,iBAAT,CAA2B8C,MAAhC;AACE,iBACE3E,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyB6C,cAF3B;;AAIF,aAAK5E,QAAQ,CAAC6B,iBAAT,CAA2BgD,YAAhC;AACE,iBACE7E,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyB+C,oBAF3B;;AAIF,aAAK9E,QAAQ,CAAC6B,iBAAT,CAA2BkD,MAAhC;AACE,iBACE/E,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBiD,cAF3B;;AAIF,aAAKhF,QAAQ,CAAC6B,iBAAT,CAA2BoD,OAAhC;AACE,iBACEjF,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBmD,eAF3B;;AAIF,aAAKlF,QAAQ,CAAC6B,iBAAT,CAA2BsD,OAAhC;AACE,iBACEnF,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBqD,eAF3B;;AAIF,aAAKpF,QAAQ,CAAC6B,iBAAT,CAA2BwD,OAAhC;AACE,iBACErF,QAAQ,CAAC4B,qBAAT,GACA5B,QAAQ,CAAC+B,eAAT,CAAyBuD,eAF3B;;AAIF;AACE,iBAAO,KAAKnF,GAAZ;AA9IJ;AAgJD,KApJM,MAoJA;AACL,aAAO,KAAKA,GAAZ;AACD;AACF;;AAEDoF,EAAAA,QAAQ,GAAG;AACT,WAAO1F,WAAW,CAAC2F,KAAZ,CAAkB,KAAKC,mBAAL,EAAlB,CAAP;AACD;;AAEDA,EAAAA,mBAAmB,GAAG;AACpB,UAAMC,UAAU,GAAGC,kBAAkB,CAAC,KAAKxF,GAAN,CAArC;AACA,WAAON,WAAW,CAAC+F,OAAZ,CAAoBF,UAApB,CAAP;AACD;;AAEDG,EAAAA,mBAAmB,GAAG;AACpB,UAAM;AAAEC,MAAAA,cAAF;AAAkBC,MAAAA,OAAlB;AAA2BC,MAAAA;AAA3B,QAA4C,KAAKT,QAAL,EAAlD;AACA,UAAMU,gBAAgB,GAAG;AACvBF,MAAAA,OAAO,EAAEA,OADc;AAEvBC,MAAAA;AAFuB,KAAzB;;AAIA,QAAIF,cAAJ,aAAIA,cAAJ,eAAIA,cAAc,CAAEnF,QAAhB,CAAyBX,QAAQ,CAACsB,cAAlC,CAAJ,EAAuD;AACrD2E,MAAAA,gBAAgB,CAACD,YAAjB,GACE,OAAOA,YAAP,KAAwB,QAAxB,GAAmCA,YAAY,CAAE,CAAF,CAA/C,GAAsDA,YADxD;AAED,KAHD,MAGO;AACLC,MAAAA,gBAAgB,CAACD,YAAjB,GAAgCA,YAAhC;AACD;;AACD,WAAOnG,WAAW,CAACqG,SAAZ,CAAsBD,gBAAtB,CAAP;AACD;;AAEc,QAATE,SAAS,GAAG;AAChB,QAAIpG,QAAQ,CAACS,EAAT,KAAgB,KAApB,EAA2B;AACzB,UAAI,MAAMV,OAAO,CAACsG,UAAR,CAAmB,KAAKjG,GAAxB,CAAV,EAAwC;AACtC,eAAO,MAAML,OAAO,CAACuG,OAAR,CAAgB,KAAK5E,SAAL,EAAhB,CAAb;AACD;;AACD,UAAI;AACF,eAAO,MAAM3B,OAAO,CAACuG,OAAR,CAAgB,KAAK5E,SAAL,EAAhB,CAAb;AACD,OAFD,CAEE,OAAO6E,CAAP,EAAU;AACV,eAAO,MAAMxG,OAAO,CAACuG,OAAR,CAAgB,KAAK3E,YAAL,EAAhB,CAAb;AACD;AACF,KATD,MASO,IAAI3B,QAAQ,CAACS,EAAT,KAAgB,SAApB,EAA+B;AACpC,UAAI;AACF,eAAO,MAAMV,OAAO,CAACuG,OAAR,CAAgB,KAAK5E,SAAL,EAAhB,CAAb;AACD,OAFD,CAEE,OAAO6E,CAAP,EAAU;AACV,eAAO,MAAMxG,OAAO,CAACuG,OAAR,CAAgB,KAAK3E,YAAL,EAAhB,CAAb;AACD;AACF;AACF;;AAvTc;;AA0TjB,eAAezB,UAAf","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"]}
|
|
1
|
+
{"version":3,"sources":["IamportUrl.ts"],"names":["queryString","Linking","Platform","IMPConst","IamportUrl","constructor","url","splittedUrl","replace","split","scheme","OS","path","isAppUrl","includes","intentUrl","host","args","forEach","s","startsWith","package","getUrl","isPaymentOver","redirectUrl","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","KBANKPAY","PACKAGE_KBANKPAY","PAYNOW","PACKAGE_PAYNOW","WOORIWONCARD","PACKAGE_WOORIWONCARD","LPOINT","PACKAGE_LPOINT","KTFAUTH","PACKAGE_KTFAUTH","LGTAUTH","PACKAGE_LGTAUTH","SKTAUTH","PACKAGE_SKTAUTH","WOORIWONBANK","PACKAGE_WOORIWONBANK","getQuery","parse","getStringifiedQuery","decodedUrl","decodeURIComponent","extract","getInicisTransQuery","m_redirect_url","imp_uid","merchant_uid","inicisTransQuery","stringify","launchApp","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 this.package = s.split('=')[1];\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(redirectUrl: string) {\n return this.url.includes(redirectUrl);\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': // 우리WON카드\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 case 'newsmartpib': // 우리WON뱅킹\n return IMPConst.IOS_MARKET_PREFIX + 'id1470181651';\n case 'ukbanksmartbanknonloginpay': // 케이뱅크 페이\n return IMPConst.IOS_MARKET_PREFIX + 'id1178872627';\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.KBANKPAY:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_KBANKPAY\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 case IMPConst.ANDROID_APPSCHEME.WOORIWONBANK:\n return (\n IMPConst.ANDROID_MARKET_PREFIX +\n IMPConst.ANDROID_PACKAGE.PACKAGE_WOORIWONBANK\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(redirectUrl: string) {\n const { m_redirect_url, imp_uid, merchant_uid } = this.getQuery();\n const inicisTransQuery = { imp_uid, merchant_uid };\n if (m_redirect_url?.includes(redirectUrl)) {\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' || Platform.OS === 'android') {\n try {\n if (await Linking.canOpenURL(this.url)) {\n return await Linking.openURL(this.getAppUrl() as string);\n } else {\n return await Linking.openURL(this.getAppUrl() as string);\n }\n } catch (e) {\n return await Linking.openURL(this.getMarketUrl());\n }\n }\n }\n}\n\nexport default IamportUrl;\n"]}
|