iamport-react-native 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +1 -1
  2. package/android/gradle.properties +4 -4
  3. package/lib/commonjs/components/Certification/index.js +10 -36
  4. package/lib/commonjs/components/Certification/index.js.map +1 -1
  5. package/lib/commonjs/components/ErrorOnParams/index.js +4 -10
  6. package/lib/commonjs/components/ErrorOnParams/index.js.map +1 -1
  7. package/lib/commonjs/components/Loading/index.js +0 -7
  8. package/lib/commonjs/components/Loading/index.js.map +1 -1
  9. package/lib/commonjs/components/Payment/index.js +18 -63
  10. package/lib/commonjs/components/Payment/index.js.map +1 -1
  11. package/lib/commonjs/constants/index.js +15 -10
  12. package/lib/commonjs/constants/index.js.map +1 -1
  13. package/lib/commonjs/index.js +4 -10
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/styles.js +0 -3
  16. package/lib/commonjs/styles.js.map +1 -1
  17. package/lib/commonjs/utils/IamportUrl.js +6 -86
  18. package/lib/commonjs/utils/IamportUrl.js.map +1 -1
  19. package/lib/commonjs/utils/Validation.js +4 -64
  20. package/lib/commonjs/utils/Validation.js.map +1 -1
  21. package/lib/commonjs/utils/ValidationForPayment.js +0 -20
  22. package/lib/commonjs/utils/ValidationForPayment.js.map +1 -1
  23. package/lib/module/components/Certification/index.js +10 -24
  24. package/lib/module/components/Certification/index.js.map +1 -1
  25. package/lib/module/components/ErrorOnParams/index.js +4 -6
  26. package/lib/module/components/ErrorOnParams/index.js.map +1 -1
  27. package/lib/module/components/Loading/index.js +0 -3
  28. package/lib/module/components/Loading/index.js.map +1 -1
  29. package/lib/module/components/Payment/index.js +18 -51
  30. package/lib/module/components/Payment/index.js.map +1 -1
  31. package/lib/module/constants/index.js +15 -11
  32. package/lib/module/constants/index.js.map +1 -1
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/styles.js.map +1 -1
  35. package/lib/module/utils/IamportUrl.js +6 -82
  36. package/lib/module/utils/IamportUrl.js.map +1 -1
  37. package/lib/module/utils/Validation.js +3 -63
  38. package/lib/module/utils/Validation.js.map +1 -1
  39. package/lib/module/utils/ValidationForPayment.js +0 -18
  40. package/lib/module/utils/ValidationForPayment.js.map +1 -1
  41. package/lib/typescript/components/Certification/index.d.ts +3 -1
  42. package/lib/typescript/components/Certification/index.d.ts.map +1 -0
  43. package/lib/typescript/components/ErrorOnParams/index.d.ts +3 -1
  44. package/lib/typescript/components/ErrorOnParams/index.d.ts.map +1 -0
  45. package/lib/typescript/components/Loading/index.d.ts +2 -0
  46. package/lib/typescript/components/Loading/index.d.ts.map +1 -0
  47. package/lib/typescript/components/Payment/index.d.ts +3 -1
  48. package/lib/typescript/components/Payment/index.d.ts.map +1 -0
  49. package/lib/typescript/constants/index.d.ts +3 -2
  50. package/lib/typescript/constants/index.d.ts.map +1 -0
  51. package/lib/typescript/index.d.ts +1 -0
  52. package/lib/typescript/index.d.ts.map +1 -0
  53. package/lib/typescript/styles.d.ts +1 -0
  54. package/lib/typescript/styles.d.ts.map +1 -0
  55. package/lib/typescript/utils/IamportUrl.d.ts +1 -0
  56. package/lib/typescript/utils/IamportUrl.d.ts.map +1 -0
  57. package/lib/typescript/utils/Validation.d.ts +1 -0
  58. package/lib/typescript/utils/Validation.d.ts.map +1 -0
  59. package/lib/typescript/utils/ValidationForPayment.d.ts +1 -0
  60. package/lib/typescript/utils/ValidationForPayment.d.ts.map +1 -0
  61. package/package.json +20 -17
  62. package/src/constants/index.ts +3 -2
  63. package/src/utils/IamportUrl.ts +4 -3
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  아임포트 리액트 네이티브 모듈입니다.
5
5
 
6
6
  ## 버전 정보
7
- 최신버전은 [v2.0.2](https://github.com/iamport/iamport-react-native/tree/v2.0.2)입니다.
7
+ 최신버전은 [v2.0.4](https://github.com/iamport/iamport-react-native/tree/v2.0.4)입니다.
8
8
  버전 히스토리는 [버전 정보](./manuals/VERSION.md)를 참고하세요.
9
9
 
10
10
  ## 지원 정보
@@ -1,4 +1,4 @@
1
- IamportReactNative_kotlinVersion=1.3.50
2
- IamportReactNative_compileSdkVersion=29
3
- IamportReactNative_buildToolsVersion=29.0.2
4
- IamportReactNative_targetSdkVersion=29
1
+ IamportReactNative_kotlinVersion=1.7.20
2
+ IamportReactNative_compileSdkVersion=31
3
+ IamportReactNative_buildToolsVersion=33.0.1
4
+ IamportReactNative_targetSdkVersion=31
@@ -4,49 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _reactNative = require("react-native");
11
-
12
9
  var _reactNativeWebview = require("react-native-webview");
13
-
14
10
  var _Loading = _interopRequireDefault(require("../Loading"));
15
-
16
11
  var _ErrorOnParams = _interopRequireDefault(require("../ErrorOnParams"));
17
-
18
12
  var _Validation = require("../../utils/Validation");
19
-
20
13
  var _constants = require("../../constants");
21
-
22
14
  var _styles = _interopRequireDefault(require("../../styles"));
23
-
24
15
  var _IamportUrl = _interopRequireDefault(require("../../utils/IamportUrl"));
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  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
18
  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 Certification({
33
- userCode,
34
- tierCode,
35
- data,
36
- loading,
37
- callback
38
- }) {
19
+ function Certification(_ref) {
20
+ let {
21
+ userCode,
22
+ tierCode,
23
+ data,
24
+ loading,
25
+ callback
26
+ } = _ref;
39
27
  const [isWebViewLoaded, setIsWebViewLoaded] = (0, _react.useState)(false);
40
28
  const webview = /*#__PURE__*/(0, _react.createRef)();
41
29
  const validation = new _Validation.Validation(userCode, loading, callback, data);
42
30
  let redirectUrl = _constants.IMPConst.M_REDIRECT_URL;
43
-
44
31
  if (data.m_redirect_url !== undefined && data.m_redirect_url.trim() !== '') {
45
32
  redirectUrl = data.m_redirect_url;
46
33
  } else {
47
34
  data.m_redirect_url = redirectUrl;
48
35
  }
49
-
50
36
  if (validation.getIsValid()) {
51
37
  const {
52
38
  loadingContainer,
@@ -61,22 +47,18 @@ function Certification({
61
47
  onLoadEnd: () => {
62
48
  if (!isWebViewLoaded) {
63
49
  var _webview$current3;
64
-
65
50
  // html이 load되고 최초 한번만 inject javascript
66
51
  if (tierCode) {
67
52
  var _webview$current;
68
-
69
53
  (_webview$current = webview.current) === null || _webview$current === void 0 ? void 0 : _webview$current.injectJavaScript(`
70
54
  setTimeout(function() { IMP.agency("${userCode}", "${tierCode}"); });
71
55
  `);
72
56
  } else {
73
57
  var _webview$current2;
74
-
75
58
  (_webview$current2 = webview.current) === null || _webview$current2 === void 0 ? void 0 : _webview$current2.injectJavaScript(`
76
59
  setTimeout(function() { IMP.init("${userCode}"); });
77
60
  `);
78
61
  }
79
-
80
62
  (_webview$current3 = webview.current) === null || _webview$current3 === void 0 ? void 0 : _webview$current3.injectJavaScript(`
81
63
  setTimeout(function() {
82
64
  IMP.certification(${JSON.stringify(data)}, function(response) {
@@ -89,13 +71,10 @@ function Certification({
89
71
  },
90
72
  onMessage: e => {
91
73
  let data = e.nativeEvent.data;
92
-
93
74
  if (decodeURIComponent(data) !== data) {
94
75
  data = decodeURIComponent(data);
95
76
  }
96
-
97
77
  let response = JSON.parse(data);
98
-
99
78
  if (typeof callback === 'function') {
100
79
  callback(response);
101
80
  }
@@ -109,10 +88,9 @@ function Certification({
109
88
  onShouldStartLoadWithRequest: request => {
110
89
  const {
111
90
  url
112
- } = request; // console.log('url: ' + url);
113
-
91
+ } = request;
92
+ // console.log('url: ' + url);
114
93
  const iamportUrl = new _IamportUrl.default(url);
115
-
116
94
  if (iamportUrl.isAppUrl()) {
117
95
  /* 3rd-party 앱 오픈 */
118
96
  iamportUrl.launchApp().catch(e => {
@@ -128,22 +106,18 @@ function Certification({
128
106
  });
129
107
  return false;
130
108
  }
131
-
132
109
  if (iamportUrl.isPaymentOver(redirectUrl)) {
133
110
  callback(iamportUrl.getQuery());
134
111
  return false;
135
112
  }
136
-
137
113
  return true;
138
114
  }
139
115
  }));
140
116
  }
141
-
142
117
  return /*#__PURE__*/_react.default.createElement(_ErrorOnParams.default, {
143
118
  message: validation.getMessage()
144
119
  });
145
120
  }
146
-
147
121
  var _default = Certification;
148
122
  exports.default = _default;
149
123
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["Certification","userCode","tierCode","data","loading","callback","isWebViewLoaded","setIsWebViewLoaded","webview","validation","Validation","redirectUrl","IMPConst","M_REDIRECT_URL","m_redirect_url","undefined","trim","getIsValid","loadingContainer","webViewContainer","viewStyles","html","WEBVIEW_SOURCE_HTML","current","injectJavaScript","JSON","stringify","e","nativeEvent","decodeURIComponent","response","parse","request","url","iamportUrl","IamportUrl","isAppUrl","launchApp","catch","code","message","imp_success","error_code","error_msg","isPaymentOver","getQuery","getMessage"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;;;;;;;AAUA,SAASA,aAAT,CAAuB;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,QAAZ;AAAsBC,EAAAA,IAAtB;AAA4BC,EAAAA,OAA5B;AAAqCC,EAAAA;AAArC,CAAvB,EAA+E;AAC7E,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwC,qBAAS,KAAT,CAA9C;AACA,QAAMC,OAAO,gBAAG,uBAAhB;AACA,QAAMC,UAAU,GAAG,IAAIC,sBAAJ,CAAeT,QAAf,EAAyBG,OAAzB,EAAkCC,QAAlC,EAA4CF,IAA5C,CAAnB;AACA,MAAIQ,WAAW,GAAGC,oBAASC,cAA3B;;AACA,MAAIV,IAAI,CAACW,cAAL,KAAwBC,SAAxB,IAAqCZ,IAAI,CAACW,cAAL,CAAoBE,IAApB,OAA+B,EAAxE,EAA4E;AAC1EL,IAAAA,WAAW,GAAGR,IAAI,CAACW,cAAnB;AACD,GAFD,MAEO;AACLX,IAAAA,IAAI,CAACW,cAAL,GAAsBH,WAAtB;AACD;;AAED,MAAIF,UAAU,CAACQ,UAAX,EAAJ,EAA6B;AAC3B,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,QAAyCC,eAA/C;AACA,wBACE,yEACE,6BAAC,2BAAD;AACE,MAAA,cAAc,EAAED,gBADlB;AAEE,MAAA,GAAG,EAAEX,OAFP;AAGE,MAAA,MAAM,EAAE;AAAEa,QAAAA,IAAI,EAAET,oBAASU;AAAjB,OAHV;AAIE,MAAA,SAAS,EAAE,MAAM;AACf,YAAI,CAAChB,eAAL,EAAsB;AAAA;;AACpB;AACA,cAAIJ,QAAJ,EAAc;AAAA;;AACZ,gCAAAM,OAAO,CAACe,OAAR,sEAAiBC,gBAAjB,CAAmC;AACnD,gDAAgDvB,QAAS,OAAMC,QAAS;AACxE,SAFgB;AAGD,WAJD,MAIO;AAAA;;AACL,iCAAAM,OAAO,CAACe,OAAR,wEAAiBC,gBAAjB,CAAmC;AACnD,8CAA8CvB,QAAS;AACvD,SAFgB;AAGD;;AACD,+BAAAO,OAAO,CAACe,OAAR,wEAAiBC,gBAAjB,CAAmC;AACjD;AACA,gCAAgCC,IAAI,CAACC,SAAL,CAAevB,IAAf,CAAqB;AACrD;AACA;AACA;AACA,SANc;AAOAI,UAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;AACF,OAzBH;AA0BE,MAAA,SAAS,EAAGoB,CAAD,IAAO;AAChB,YAAIxB,IAAI,GAAGwB,CAAC,CAACC,WAAF,CAAczB,IAAzB;;AACA,YAAI0B,kBAAkB,CAAC1B,IAAD,CAAlB,KAA6BA,IAAjC,EAAuC;AACrCA,UAAAA,IAAI,GAAG0B,kBAAkB,CAAC1B,IAAD,CAAzB;AACD;;AACD,YAAI2B,QAAQ,GAAGL,IAAI,CAACM,KAAL,CAAW5B,IAAX,CAAf;;AAEA,YAAI,OAAOE,QAAP,KAAoB,UAAxB,EAAoC;AAClCA,UAAAA,QAAQ,CAACyB,QAAD,CAAR;AACD;AACF,OApCH;AAqCE,MAAA,mBAAmB,MArCrB;AAsCE,MAAA,aAAa,EAAE,mBACb,6BAAC,iBAAD;AAAM,QAAA,KAAK,EAAEZ;AAAb,SAAgCd,OAAO,iBAAI,6BAAC,gBAAD,OAA3C,CAvCJ;AAyCE,MAAA,eAAe,EAAE,CAAC,GAAD,CAzCnB,CAyC0B;AAzC1B;AA0CE,MAAA,4BAA4B,EAAG4B,OAAD,IAAa;AACzC,cAAM;AAAEC,UAAAA;AAAF,YAAUD,OAAhB,CADyC,CAEzC;;AACA,cAAME,UAAU,GAAG,IAAIC,mBAAJ,CAAeF,GAAf,CAAnB;;AACA,YAAIC,UAAU,CAACE,QAAX,EAAJ,EAA2B;AACzB;AACAF,UAAAA,UAAU,CAACG,SAAX,GAAuBC,KAAvB,CAA8BX,CAAD,IAAO;AAClC,kBAAM;AAAEY,cAAAA,IAAF;AAAQC,cAAAA;AAAR,gBAAoBb,CAA1B;AACAtB,YAAAA,QAAQ,CAAC;AACPoC,cAAAA,WAAW,EAAE,KADN;AAEPC,cAAAA,UAAU,EAAEH,IAFL;AAGPI,cAAAA,SAAS,EAAEH;AAHJ,aAAD,CAAR;AAKD,WAPD;AASA,iBAAO,KAAP;AACD;;AACD,YAAIN,UAAU,CAACU,aAAX,CAAyBjC,WAAzB,CAAJ,EAA2C;AACzCN,UAAAA,QAAQ,CAAC6B,UAAU,CAACW,QAAX,EAAD,CAAR;AACA,iBAAO,KAAP;AACD;;AAED,eAAO,IAAP;AACD;AAjEH,MADF,CADF;AAuED;;AAED,sBAAO,6BAAC,sBAAD;AAAe,IAAA,OAAO,EAAEpC,UAAU,CAACqC,UAAX;AAAxB,IAAP;AACD;;eAEc9C,a","sourcesContent":["import React, { createRef, useState } from 'react';\nimport { View } from 'react-native';\nimport { WebView } from 'react-native-webview';\n\nimport Loading from '../Loading';\nimport ErrorOnParams from '../ErrorOnParams';\n\nimport { IMPData, Validation } from '../../utils/Validation';\nimport { IMPConst } from '../../constants';\n\nimport viewStyles from '../../styles';\nimport IamportUrl from '../../utils/IamportUrl';\n\ntype Props = {\n userCode: string;\n tierCode?: string;\n data: IMPData.CertificationData;\n loading?: any;\n callback: (response: any) => any;\n};\n\nfunction Certification({ userCode, tierCode, data, loading, callback }: Props) {\n const [isWebViewLoaded, setIsWebViewLoaded] = useState(false);\n const webview = createRef<WebView>();\n const validation = new Validation(userCode, loading, callback, data);\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 } else {\n data.m_redirect_url = redirectUrl;\n }\n\n if (validation.getIsValid()) {\n const { loadingContainer, webViewContainer } = viewStyles;\n return (\n <>\n <WebView\n containerStyle={webViewContainer}\n ref={webview}\n source={{ html: IMPConst.WEBVIEW_SOURCE_HTML }}\n onLoadEnd={() => {\n if (!isWebViewLoaded) {\n // html이 load되고 최초 한번만 inject javascript\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.certification(${JSON.stringify(data)}, function(response) {\n window.ReactNativeWebView.postMessage(JSON.stringify(response));\n });\n });\n `);\n setIsWebViewLoaded(true);\n }\n }}\n onMessage={(e) => {\n let data = e.nativeEvent.data;\n if (decodeURIComponent(data) !== data) {\n data = decodeURIComponent(data);\n }\n let response = JSON.parse(data);\n\n if (typeof callback === 'function') {\n callback(response);\n }\n }}\n startInLoadingState\n renderLoading={() => (\n <View style={loadingContainer}>{loading || <Loading />}</View>\n )}\n originWhitelist={['*']} // https://github.com/facebook/react-native/issues/19986\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 callback(iamportUrl.getQuery());\n return false;\n }\n\n return true;\n }}\n />\n </>\n );\n }\n\n return <ErrorOnParams message={validation.getMessage()} />;\n}\n\nexport default Certification;\n"]}
1
+ {"version":3,"names":["Certification","userCode","tierCode","data","loading","callback","isWebViewLoaded","setIsWebViewLoaded","useState","webview","createRef","validation","Validation","redirectUrl","IMPConst","M_REDIRECT_URL","m_redirect_url","undefined","trim","getIsValid","loadingContainer","webViewContainer","viewStyles","html","WEBVIEW_SOURCE_HTML","current","injectJavaScript","JSON","stringify","e","nativeEvent","decodeURIComponent","response","parse","request","url","iamportUrl","IamportUrl","isAppUrl","launchApp","catch","code","message","imp_success","error_code","error_msg","isPaymentOver","getQuery","getMessage"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -4,18 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _reactNative = require("react-native");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  const logo = require('../../img/iamport-logo.png');
15
-
16
- function ErrorOnParams({
17
- message
18
- }) {
11
+ function ErrorOnParams(_ref) {
12
+ let {
13
+ message
14
+ } = _ref;
19
15
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
20
16
  style: styles.container
21
17
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
@@ -24,7 +20,6 @@ function ErrorOnParams({
24
20
  style: styles.text
25
21
  }, message));
26
22
  }
27
-
28
23
  const styles = _reactNative.StyleSheet.create({
29
24
  container: {
30
25
  flex: 1,
@@ -52,7 +47,6 @@ const styles = _reactNative.StyleSheet.create({
52
47
  fontWeight: 'bold'
53
48
  }
54
49
  });
55
-
56
50
  var _default = ErrorOnParams;
57
51
  exports.default = _default;
58
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["logo","require","ErrorOnParams","message","styles","container","text","StyleSheet","create","flex","alignItems","justifyContent","textAlign","fontSize","marginTop","lineHeight","button","backgroundColor","color","borderColor","borderWidth","borderRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","fontWeight"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,MAAMA,IAAI,GAAGC,OAAO,CAAC,4BAAD,CAApB;;AAIA,SAASC,aAAT,CAAuB;AAAEC,EAAAA;AAAF,CAAvB,EAAgD;AAC9C,sBACE,6BAAC,iBAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACC;AAApB,kBACE,6BAAC,kBAAD;AAAO,IAAA,MAAM,EAAEL;AAAf,IADF,eAEE,6BAAC,iBAAD;AAAM,IAAA,KAAK,EAAEI,MAAM,CAACE;AAApB,KAA2BH,OAA3B,CAFF,CADF;AAMD;;AAED,MAAMC,MAAM,GAAGG,wBAAWC,MAAX,CAAkB;AAC/BH,EAAAA,SAAS,EAAE;AACTI,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,UAAU,EAAE,QAFH;AAGTC,IAAAA,cAAc,EAAE;AAHP,GADoB;AAM/BL,EAAAA,IAAI,EAAE;AACJM,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;;eA4BexB,a","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"]}
1
+ {"version":3,"names":["logo","require","ErrorOnParams","message","styles","container","text","StyleSheet","create","flex","alignItems","justifyContent","textAlign","fontSize","marginTop","lineHeight","button","backgroundColor","color","borderColor","borderWidth","borderRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","fontWeight"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA;AACA;AAA6D;AAE7D,MAAMA,IAAI,GAAGC,OAAO,CAAC,4BAA4B,CAAC;AAIlD,SAASC,aAAa,OAA0B;EAAA,IAAzB;IAAEC;EAAoB,CAAC;EAC5C,oBACE,6BAAC,iBAAI;IAAC,KAAK,EAAEC,MAAM,CAACC;EAAU,gBAC5B,6BAAC,kBAAK;IAAC,MAAM,EAAEL;EAAK,EAAG,eACvB,6BAAC,iBAAI;IAAC,KAAK,EAAEI,MAAM,CAACE;EAAK,GAAEH,OAAO,CAAQ,CACrC;AAEX;AAEA,MAAMC,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDL,IAAI,EAAE;IACJM,SAAS,EAAE,QAAQ;IACnBC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE;EACd,CAAC;EACDC,MAAM,EAAE;IACNC,eAAe,EAAE,MAAM;IACvBC,KAAK,EAAE,SAAS;IAChBC,WAAW,EAAE,MAAM;IACnBC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE,CAAC;IACfC,UAAU,EAAE,EAAE;IACdC,aAAa,EAAE,EAAE;IACjBC,WAAW,EAAE,EAAE;IACfC,YAAY,EAAE,EAAE;IAChBZ,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbY,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAAC,eAEYxB,aAAa;AAAA"}
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _reactNative = require("react-native");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  const logo = require('../../img/iamport-logo.png');
15
-
16
11
  function Loading() {
17
12
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
18
13
  style: styles.container
@@ -22,7 +17,6 @@ function Loading() {
22
17
  style: styles.text
23
18
  }, "\uC7A0\uC2DC\uB9CC \uAE30\uB2E4\uB824\uC8FC\uC138\uC694..."));
24
19
  }
25
-
26
20
  const styles = _reactNative.StyleSheet.create({
27
21
  container: {
28
22
  flex: 1,
@@ -36,7 +30,6 @@ const styles = _reactNative.StyleSheet.create({
36
30
  lineHeight: 25
37
31
  }
38
32
  });
39
-
40
33
  var _default = Loading;
41
34
  exports.default = _default;
42
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["logo","require","Loading","styles","container","text","StyleSheet","create","flex","alignItems","flexDirection","justifyContent","fontSize","marginTop","lineHeight"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,MAAMA,IAAI,GAAGC,OAAO,CAAC,4BAAD,CAApB;;AAEA,SAASC,OAAT,GAAmB;AACjB,sBACE,6BAAC,iBAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACC;AAApB,kBACE,6BAAC,kBAAD;AAAO,IAAA,MAAM,EAAEJ;AAAf,IADF,eAEE,6BAAC,iBAAD;AAAM,IAAA,KAAK,EAAEG,MAAM,CAACE;AAApB,kEAFF,CADF;AAMD;;AAED,MAAMF,MAAM,GAAGG,wBAAWC,MAAX,CAAkB;AAC/BH,EAAAA,SAAS,EAAE;AACTI,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,UAAU,EAAE,QAFH;AAGTC,IAAAA,aAAa,EAAE,QAHN;AAITC,IAAAA,cAAc,EAAE;AAJP,GADoB;AAO/BN,EAAAA,IAAI,EAAE;AACJO,IAAAA,QAAQ,EAAE,EADN;AAEJC,IAAAA,SAAS,EAAE,EAFP;AAGJC,IAAAA,UAAU,EAAE;AAHR;AAPyB,CAAlB,CAAf;;eAceZ,O","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"]}
1
+ {"version":3,"names":["logo","require","Loading","styles","container","text","StyleSheet","create","flex","alignItems","flexDirection","justifyContent","fontSize","marginTop","lineHeight"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA;AACA;AAA6D;AAE7D,MAAMA,IAAI,GAAGC,OAAO,CAAC,4BAA4B,CAAC;AAElD,SAASC,OAAO,GAAG;EACjB,oBACE,6BAAC,iBAAI;IAAC,KAAK,EAAEC,MAAM,CAACC;EAAU,gBAC5B,6BAAC,kBAAK;IAAC,MAAM,EAAEJ;EAAK,EAAG,eACvB,6BAAC,iBAAI;IAAC,KAAK,EAAEG,MAAM,CAACE;EAAK,gEAAqB,CACzC;AAEX;AAEA,MAAMF,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,cAAc,EAAE;EAClB,CAAC;EACDN,IAAI,EAAE;IACJO,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAAC,eAEYZ,OAAO;AAAA"}
@@ -4,38 +4,26 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _ValidationForPayment = _interopRequireDefault(require("../../utils/ValidationForPayment"));
11
-
12
9
  var _ErrorOnParams = _interopRequireDefault(require("../ErrorOnParams"));
13
-
14
10
  var _reactNative = require("react-native");
15
-
16
11
  var _constants = require("../../constants");
17
-
18
12
  var _IamportUrl = _interopRequireDefault(require("../../utils/IamportUrl"));
19
-
20
13
  var _reactNativeWebview = _interopRequireDefault(require("react-native-webview"));
21
-
22
14
  var _styles = _interopRequireDefault(require("../../styles"));
23
-
24
15
  var _Loading = _interopRequireDefault(require("../Loading"));
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  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
18
  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
- }) {
19
+ function Payment(_ref) {
20
+ let {
21
+ userCode,
22
+ tierCode,
23
+ data,
24
+ loading,
25
+ callback
26
+ } = _ref;
39
27
  const [webviewSource, setWebviewSource] = (0, _react.useState)({
40
28
  html: _constants.IMPConst.WEBVIEW_SOURCE_HTML
41
29
  });
@@ -45,25 +33,23 @@ function Payment({
45
33
  const webview = /*#__PURE__*/(0, _react.createRef)();
46
34
  const smilepayRef = (0, _react.useRef)(false);
47
35
  let redirectUrl = _constants.IMPConst.M_REDIRECT_URL;
48
-
49
36
  if (data.m_redirect_url !== undefined && data.m_redirect_url.trim() !== '') {
50
37
  redirectUrl = data.m_redirect_url;
51
38
  } else {
52
39
  data.m_redirect_url = redirectUrl;
53
40
  }
54
-
55
41
  (0, _react.useEffect)(() => {
56
42
  const {
57
43
  pg
58
44
  } = data;
59
-
60
45
  if (pg.startsWith('smilepay') && _reactNative.Platform.OS === 'ios' && !smilepayRef.current) {
61
46
  /**
62
47
  * [feature/smilepay] IOS - 스마일페이 대비 코드 작성
63
48
  * 스마일페이 결제창을 iframe 방식으로 띄우기 때문에 WKWebView에서 서드 파티 쿠키가 허용되지 않아
64
49
  * WKWebView의 baseUrl을 강제로 스마일페이 URL로 적용
65
50
  */
66
- setWebviewSource({ ...webviewSource,
51
+ setWebviewSource({
52
+ ...webviewSource,
67
53
  baseUrl: _constants.IMPConst.SMILEPAY_BASE_URL
68
54
  });
69
55
  smilepayRef.current = true;
@@ -75,7 +61,6 @@ function Payment({
75
61
  pg,
76
62
  pay_method
77
63
  } = data;
78
-
79
64
  if (pay_method === 'trans') {
80
65
  const iamportUrl = new _IamportUrl.default(event.url);
81
66
  /**
@@ -90,11 +75,9 @@ function Payment({
90
75
  * 따라서 현재 handleOpenURL이 트리거 되는 사유가 1번 때문인지 5번 때문인지 구분이 필요하여
91
76
  * 이를 위한 isInicisTransPaid 플래그 추가
92
77
  */
93
-
94
78
  if (pg.startsWith('html5_inicis') && _reactNative.Platform.OS === 'ios') {
95
79
  if (isInicisTransPaid) {
96
80
  var _webview$current;
97
-
98
81
  (_webview$current = webview.current) === null || _webview$current === void 0 ? void 0 : _webview$current.injectJavaScript(`
99
82
  window.location.href = "${redirectUrl}?${iamportUrl.getInicisTransQuery(redirectUrl)}";
100
83
  `);
@@ -102,32 +85,26 @@ function Payment({
102
85
  setIsInicisTransPaid(true);
103
86
  }
104
87
  }
105
- /* 나이스 - 실시간 계좌이체 대비 */
106
-
107
88
 
89
+ /* 나이스 - 실시간 계좌이체 대비 */
108
90
  if (pg.startsWith('nice')) {
109
91
  var _data$app_scheme, _webview$current2;
110
-
111
92
  const queryParameters = iamportUrl.getQuery();
112
93
  const scheme = iamportUrl.scheme;
113
94
  let niceTransRedirectionUrl;
114
-
115
95
  if (scheme === ((_data$app_scheme = data.app_scheme) === null || _data$app_scheme === void 0 ? void 0 : _data$app_scheme.toLowerCase())) {
116
96
  if (queryParameters.callbackparam1 != null) {
117
97
  niceTransRedirectionUrl = queryParameters.callbackparam1;
118
98
  }
119
99
  }
120
-
121
100
  (_webview$current2 = webview.current) === null || _webview$current2 === void 0 ? void 0 : _webview$current2.injectJavaScript(`
122
101
  window.location.href = "${niceTransRedirectionUrl}?${iamportUrl.getStringifiedQuery()}";
123
102
  `);
124
103
  }
125
104
  }
126
105
  };
127
-
128
106
  _reactNative.Linking.addEventListener('url', handleOpenURL);
129
107
  }, [data, isInicisTransPaid, redirectUrl, webview]);
130
-
131
108
  const removeLoadingNeeded = () => {
132
109
  if (showLoading && _reactNative.Platform.OS === 'android') {
133
110
  // 로딩상태. 안드로이드 플랫폼
@@ -135,36 +112,28 @@ function Payment({
135
112
  // 웹뷰 로드 끝. 리디렉션 방식
136
113
  return true;
137
114
  }
138
-
139
115
  return isIframeWayPayment();
140
- } // IOS
141
-
142
-
116
+ }
117
+ // IOS
143
118
  return false;
144
119
  };
145
-
146
120
  const isIframeWayPayment = () => {
147
121
  const {
148
122
  pg,
149
123
  pay_method,
150
124
  customer_uid
151
125
  } = data;
152
-
153
126
  if (pg.startsWith('html5_inicis') && customer_uid) {
154
127
  // 이니시스 빌링결제
155
128
  return true;
156
129
  }
157
-
158
130
  if (pg.startsWith('mobilians') && pay_method === 'phone') {
159
131
  // 모빌리언스 휴대폰 소액결제
160
132
  return true;
161
133
  }
162
-
163
134
  return pg.startsWith('danal') || pg.startsWith('danal_tpay') || pg.startsWith('smilepay') || pg.startsWith('payco') || pg.startsWith('bluewalnut');
164
135
  };
165
-
166
136
  const validation = new _ValidationForPayment.default(userCode, loading, callback, data);
167
-
168
137
  if (validation.getIsValid()) {
169
138
  const {
170
139
  loadingContainer,
@@ -177,25 +146,20 @@ function Payment({
177
146
  onLoadEnd: () => {
178
147
  if (!isWebViewLoaded) {
179
148
  var _webview$current5;
180
-
181
149
  if (data.pg.startsWith('eximbay')) {
182
150
  data.popup = false;
183
151
  }
184
-
185
152
  if (tierCode) {
186
153
  var _webview$current3;
187
-
188
154
  (_webview$current3 = webview.current) === null || _webview$current3 === void 0 ? void 0 : _webview$current3.injectJavaScript(`
189
155
  setTimeout(function() { IMP.agency("${userCode}", "${tierCode}"); });
190
156
  `);
191
157
  } else {
192
158
  var _webview$current4;
193
-
194
159
  (_webview$current4 = webview.current) === null || _webview$current4 === void 0 ? void 0 : _webview$current4.injectJavaScript(`
195
160
  setTimeout(function() { IMP.init("${userCode}"); });
196
161
  `);
197
162
  }
198
-
199
163
  (_webview$current5 = webview.current) === null || _webview$current5 === void 0 ? void 0 : _webview$current5.injectJavaScript(`
200
164
  setTimeout(function() {
201
165
  IMP.request_pay(${JSON.stringify(data)}, function(response) {
@@ -204,15 +168,14 @@ function Payment({
204
168
  });
205
169
  `);
206
170
  setIsWebViewLoaded(true);
207
- } // only for Android
208
-
171
+ }
209
172
 
173
+ // only for Android
210
174
  if (removeLoadingNeeded()) {
211
175
  setShowLoading(false);
212
176
  }
213
177
  }
214
- /* PG사가 callback을 지원하는 경우, 결제결과를 받아 callback을 실행한다 */
215
- ,
178
+ /* PG사가 callback을 지원하는 경우, 결제결과를 받아 callback을 실행한다 */,
216
179
  onMessage: e => {
217
180
  /**
218
181
  * [v1.6.0] 다날의 경우 response에 주문명(name)이 포함되어 있는데
@@ -223,7 +186,6 @@ function Payment({
223
186
  const encoded = encodeURIComponent(e.nativeEvent.data);
224
187
  const decoded = decodeURIComponent(encoded);
225
188
  const response = JSON.parse(decoded);
226
-
227
189
  if (typeof callback === 'function') {
228
190
  callback(response);
229
191
  }
@@ -234,10 +196,9 @@ function Payment({
234
196
  onShouldStartLoadWithRequest: request => {
235
197
  const {
236
198
  url
237
- } = request; // console.log(`url: ${url}`);
238
-
199
+ } = request;
200
+ // console.log(`url: ${url}`);
239
201
  const iamportUrl = new _IamportUrl.default(url);
240
-
241
202
  if (iamportUrl.isAppUrl()) {
242
203
  /* 3rd-party 앱 오픈 */
243
204
  iamportUrl.launchApp().catch(e => {
@@ -253,15 +214,12 @@ function Payment({
253
214
  });
254
215
  return false;
255
216
  }
256
-
257
217
  if (iamportUrl.isPaymentOver(redirectUrl)) {
258
218
  if (typeof callback === 'function') {
259
219
  callback(iamportUrl.getQuery());
260
220
  }
261
-
262
221
  return false;
263
222
  }
264
-
265
223
  if (isWebViewLoaded && showLoading && iamportUrl.isIframeLoaded()) {
266
224
  /**
267
225
  * only for IOS
@@ -270,19 +228,16 @@ function Payment({
270
228
  */
271
229
  setShowLoading(false);
272
230
  }
273
-
274
231
  return true;
275
232
  }
276
233
  }), showLoading && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
277
234
  style: loadingContainer
278
235
  }, loading || /*#__PURE__*/_react.default.createElement(_Loading.default, null)));
279
236
  }
280
-
281
237
  return /*#__PURE__*/_react.default.createElement(_ErrorOnParams.default, {
282
238
  message: validation.getMessage()
283
239
  });
284
240
  }
285
-
286
241
  var _default = Payment;
287
242
  exports.default = _default;
288
243
  //# sourceMappingURL=index.js.map
@@ -1 +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","redirectUrl","M_REDIRECT_URL","m_redirect_url","undefined","trim","pg","startsWith","Platform","OS","current","baseUrl","SMILEPAY_BASE_URL","handleOpenURL","event","pay_method","iamportUrl","IamportUrl","url","injectJavaScript","getInicisTransQuery","queryParameters","getQuery","scheme","niceTransRedirectionUrl","app_scheme","toLowerCase","callbackparam1","getStringifiedQuery","Linking","addEventListener","removeLoadingNeeded","isIframeWayPayment","customer_uid","validation","ValidationForPayment","getIsValid","loadingContainer","webViewContainer","viewStyles","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 } else {\n data.m_redirect_url = redirectUrl;\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"]}
1
+ {"version":3,"names":["Payment","userCode","tierCode","data","loading","callback","webviewSource","setWebviewSource","useState","html","IMPConst","WEBVIEW_SOURCE_HTML","isWebViewLoaded","setIsWebViewLoaded","showLoading","setShowLoading","isInicisTransPaid","setIsInicisTransPaid","webview","createRef","smilepayRef","useRef","redirectUrl","M_REDIRECT_URL","m_redirect_url","undefined","trim","useEffect","pg","startsWith","Platform","OS","current","baseUrl","SMILEPAY_BASE_URL","handleOpenURL","event","pay_method","iamportUrl","IamportUrl","url","injectJavaScript","getInicisTransQuery","queryParameters","getQuery","scheme","niceTransRedirectionUrl","app_scheme","toLowerCase","callbackparam1","getStringifiedQuery","Linking","addEventListener","removeLoadingNeeded","isIframeWayPayment","customer_uid","validation","ValidationForPayment","getIsValid","loadingContainer","webViewContainer","viewStyles","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"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}