iamport-react-native 2.0.15 → 3.0.1-alpha.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.
Files changed (430) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +12 -2
  3. package/lib/module/components/Certification/index.js +75 -72
  4. package/lib/module/components/Certification/index.js.map +1 -1
  5. package/lib/module/components/ErrorOnParams/index.js +13 -9
  6. package/lib/module/components/ErrorOnParams/index.js.map +1 -1
  7. package/lib/module/components/Loading/index.js +13 -9
  8. package/lib/module/components/Loading/index.js.map +1 -1
  9. package/lib/module/components/Payment/index.js +111 -93
  10. package/lib/module/components/Payment/index.js.map +1 -1
  11. package/lib/module/constants/index.js +2 -0
  12. package/lib/module/constants/index.js.map +1 -1
  13. package/lib/module/index.js +6 -4
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/module/package.json +1 -0
  16. package/lib/module/styles.js +2 -0
  17. package/lib/module/styles.js.map +1 -1
  18. package/lib/module/utils/IamportUrl.js +51 -29
  19. package/lib/module/utils/IamportUrl.js.map +1 -1
  20. package/lib/module/utils/Validation.js +3 -2
  21. package/lib/module/utils/Validation.js.map +1 -1
  22. package/lib/module/utils/ValidationForPayment.js +4 -2
  23. package/lib/module/utils/ValidationForPayment.js.map +1 -1
  24. package/lib/typescript/package.json +1 -0
  25. package/lib/typescript/{components → src/components}/Certification/index.d.ts +1 -2
  26. package/lib/typescript/src/components/Certification/index.d.ts.map +1 -0
  27. package/lib/typescript/src/components/ErrorOnParams/index.d.ts +6 -0
  28. package/lib/typescript/src/components/ErrorOnParams/index.d.ts.map +1 -0
  29. package/lib/typescript/src/components/Loading/index.d.ts +3 -0
  30. package/lib/typescript/src/components/Loading/index.d.ts.map +1 -0
  31. package/lib/typescript/{components → src/components}/Payment/index.d.ts +1 -2
  32. package/lib/typescript/src/components/Payment/index.d.ts.map +1 -0
  33. package/lib/typescript/src/constants/index.d.ts.map +1 -0
  34. package/lib/typescript/src/index.d.ts.map +1 -0
  35. package/lib/typescript/{styles.d.ts → src/styles.d.ts} +2 -2
  36. package/lib/typescript/src/styles.d.ts.map +1 -0
  37. package/lib/typescript/{utils → src/utils}/IamportUrl.d.ts +8 -7
  38. package/lib/typescript/src/utils/IamportUrl.d.ts.map +1 -0
  39. package/lib/typescript/src/utils/Validation.d.ts.map +1 -0
  40. package/lib/typescript/src/utils/ValidationForPayment.d.ts.map +1 -0
  41. package/package.json +81 -74
  42. package/src/components/Certification/index.tsx +7 -7
  43. package/src/components/ErrorOnParams/index.tsx +1 -2
  44. package/src/components/Loading/index.tsx +1 -2
  45. package/src/components/Payment/index.tsx +31 -7
  46. package/src/utils/IamportUrl.ts +54 -26
  47. package/.circleci/config.yml +0 -98
  48. package/.editorconfig +0 -15
  49. package/.gitattributes +0 -3
  50. package/.gitignore +0 -69
  51. package/.yarnrc +0 -3
  52. package/.yarnrc.yml +0 -1
  53. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  54. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  55. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  56. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  57. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  58. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  59. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  60. package/android/.gradle/8.9/gc.properties +0 -0
  61. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  62. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  63. package/android/.gradle/vcs-1/gc.properties +0 -0
  64. package/android/build.gradle +0 -128
  65. package/android/gradle.properties +0 -4
  66. package/android/src/main/AndroidManifest.xml +0 -4
  67. package/android/src/main/java/com/iamportreactnative/IamportReactNativePackage.kt +0 -17
  68. package/android/src/main/java/com/iamportreactnative/IamportReactNativeViewManager.kt +0 -20
  69. package/babel.config.js +0 -3
  70. package/example/.gitignore +0 -69
  71. package/example/README.md +0 -44
  72. package/example/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
  73. package/example/android/.gradle/7.5.1/checksums/md5-checksums.bin +0 -0
  74. package/example/android/.gradle/7.5.1/checksums/sha1-checksums.bin +0 -0
  75. package/example/android/.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  76. package/example/android/.gradle/7.5.1/dependencies-accessors/gc.properties +0 -0
  77. package/example/android/.gradle/7.5.1/executionHistory/executionHistory.lock +0 -0
  78. package/example/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
  79. package/example/android/.gradle/7.5.1/fileHashes/fileHashes.bin +0 -0
  80. package/example/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
  81. package/example/android/.gradle/7.5.1/gc.properties +0 -0
  82. package/example/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  83. package/example/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  84. package/example/android/.gradle/vcs-1/gc.properties +0 -0
  85. package/example/android/app/build.gradle +0 -183
  86. package/example/android/app/debug.keystore +0 -0
  87. package/example/android/app/proguard-rules.pro +0 -10
  88. package/example/android/app/src/debug/AndroidManifest.xml +0 -8
  89. package/example/android/app/src/debug/java/com/example/iamportreactnative/ReactNativeFlipper.java +0 -69
  90. package/example/android/app/src/main/AndroidManifest.xml +0 -34
  91. package/example/android/app/src/main/java/com/example/iamportreactnative/MainActivity.java +0 -15
  92. package/example/android/app/src/main/java/com/example/iamportreactnative/MainApplication.java +0 -80
  93. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  94. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  95. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  96. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  97. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  98. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  99. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  100. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  101. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  102. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  103. package/example/android/app/src/main/res/values/strings.xml +0 -3
  104. package/example/android/app/src/main/res/values/styles.xml +0 -9
  105. package/example/android/build.gradle +0 -21
  106. package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  107. package/example/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  108. package/example/android/gradle.properties +0 -44
  109. package/example/android/gradlew +0 -183
  110. package/example/android/gradlew.bat +0 -103
  111. package/example/android/settings.gradle +0 -9
  112. package/example/app.json +0 -4
  113. package/example/babel.config.js +0 -11
  114. package/example/index.js +0 -5
  115. package/example/ios/File.swift +0 -8
  116. package/example/ios/Gemfile +0 -7
  117. package/example/ios/Gemfile.lock +0 -99
  118. package/example/ios/IamportReactNativeExample/AppDelegate.h +0 -15
  119. package/example/ios/IamportReactNativeExample/AppDelegate.mm +0 -138
  120. package/example/ios/IamportReactNativeExample/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
  121. package/example/ios/IamportReactNativeExample/Images.xcassets/Contents.json +0 -6
  122. package/example/ios/IamportReactNativeExample/Info.plist +0 -121
  123. package/example/ios/IamportReactNativeExample/LaunchScreen.storyboard +0 -58
  124. package/example/ios/IamportReactNativeExample/main.m +0 -16
  125. package/example/ios/IamportReactNativeExample-Bridging-Header.h +0 -3
  126. package/example/ios/IamportReactNativeExample.xcodeproj/project.pbxproj +0 -969
  127. package/example/ios/IamportReactNativeExample.xcodeproj/xcshareddata/xcschemes/IamportReactNativeExample.xcscheme +0 -99
  128. package/example/ios/IamportReactNativeExample.xcworkspace/contents.xcworkspacedata +0 -10
  129. package/example/ios/IamportReactNativeExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  130. package/example/ios/Podfile +0 -57
  131. package/example/ios/Podfile.lock +0 -756
  132. package/example/metro.config.js +0 -66
  133. package/example/package.json +0 -40
  134. package/example/src/App.tsx +0 -17
  135. package/example/src/Certification/index.tsx +0 -30
  136. package/example/src/CertificationResult/index.tsx +0 -79
  137. package/example/src/CertificationTest/index.tsx +0 -214
  138. package/example/src/Home/index.tsx +0 -87
  139. package/example/src/Loading/index.tsx +0 -12
  140. package/example/src/NavigationService.tsx +0 -127
  141. package/example/src/Payment/index.tsx +0 -28
  142. package/example/src/PaymentResult/index.tsx +0 -96
  143. package/example/src/PaymentTest/index.tsx +0 -383
  144. package/example/src/Picker/index.tsx +0 -60
  145. package/example/src/constants.ts +0 -274
  146. package/example/src/utils.ts +0 -83
  147. package/example/yarn.lock +0 -7358
  148. package/exampleForExpo/.buckconfig +0 -6
  149. package/exampleForExpo/.expo/README.md +0 -8
  150. package/exampleForExpo/.expo/devices.json +0 -3
  151. package/exampleForExpo/.gitattributes +0 -1
  152. package/exampleForExpo/.gitignore +0 -125
  153. package/exampleForExpo/.idea/.gitignore +0 -3
  154. package/exampleForExpo/.idea/caches/deviceStreaming.xml +0 -549
  155. package/exampleForExpo/.idea/exampleForExpo.iml +0 -9
  156. package/exampleForExpo/.idea/misc.xml +0 -6
  157. package/exampleForExpo/.idea/modules.xml +0 -8
  158. package/exampleForExpo/.idea/vcs.xml +0 -6
  159. package/exampleForExpo/.idea/workspace.xml +0 -53
  160. package/exampleForExpo/README.md +0 -58
  161. package/exampleForExpo/__tests__/App.js +0 -10
  162. package/exampleForExpo/android/.gitignore +0 -21
  163. package/exampleForExpo/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
  164. package/exampleForExpo/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
  165. package/exampleForExpo/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
  166. package/exampleForExpo/android/.gradle/7.5.1/gc.properties +0 -0
  167. package/exampleForExpo/android/.gradle/vcs-1/gc.properties +0 -0
  168. package/exampleForExpo/android/app/BUCK +0 -55
  169. package/exampleForExpo/android/app/build.gradle +0 -362
  170. package/exampleForExpo/android/app/build_defs.bzl +0 -19
  171. package/exampleForExpo/android/app/debug.keystore +0 -0
  172. package/exampleForExpo/android/app/proguard-rules.pro +0 -14
  173. package/exampleForExpo/android/app/src/debug/AndroidManifest.xml +0 -7
  174. package/exampleForExpo/android/app/src/debug/java/kr/iamport/exampleForExpo/ReactNativeFlipper.java +0 -69
  175. package/exampleForExpo/android/app/src/main/AndroidManifest.xml +0 -34
  176. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/MainActivity.java +0 -83
  177. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/MainApplication.java +0 -106
  178. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/MainApplicationReactNativeHost.java +0 -117
  179. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/components/MainComponentsRegistry.java +0 -36
  180. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +0 -48
  181. package/exampleForExpo/android/app/src/main/jni/CMakeLists.txt +0 -7
  182. package/exampleForExpo/android/app/src/main/jni/MainApplicationModuleProvider.cpp +0 -32
  183. package/exampleForExpo/android/app/src/main/jni/MainApplicationModuleProvider.h +0 -16
  184. package/exampleForExpo/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +0 -45
  185. package/exampleForExpo/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +0 -38
  186. package/exampleForExpo/android/app/src/main/jni/MainComponentsRegistry.cpp +0 -65
  187. package/exampleForExpo/android/app/src/main/jni/MainComponentsRegistry.h +0 -32
  188. package/exampleForExpo/android/app/src/main/jni/OnLoad.cpp +0 -11
  189. package/exampleForExpo/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -36
  190. package/exampleForExpo/android/app/src/main/res/drawable/splashscreen.xml +0 -4
  191. package/exampleForExpo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  192. package/exampleForExpo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  193. package/exampleForExpo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  194. package/exampleForExpo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  195. package/exampleForExpo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  196. package/exampleForExpo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  197. package/exampleForExpo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  198. package/exampleForExpo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  199. package/exampleForExpo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  200. package/exampleForExpo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  201. package/exampleForExpo/android/app/src/main/res/values/colors.xml +0 -4
  202. package/exampleForExpo/android/app/src/main/res/values/strings.xml +0 -3
  203. package/exampleForExpo/android/app/src/main/res/values/styles.xml +0 -17
  204. package/exampleForExpo/android/app/src/main/res/values-night/colors.xml +0 -1
  205. package/exampleForExpo/android/build.gradle +0 -65
  206. package/exampleForExpo/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  207. package/exampleForExpo/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  208. package/exampleForExpo/android/gradle.properties +0 -53
  209. package/exampleForExpo/android/gradlew +0 -240
  210. package/exampleForExpo/android/gradlew.bat +0 -91
  211. package/exampleForExpo/android/settings.gradle +0 -17
  212. package/exampleForExpo/app.json +0 -16
  213. package/exampleForExpo/babel.config.js +0 -11
  214. package/exampleForExpo/index.js +0 -9
  215. package/exampleForExpo/ios/.gitignore +0 -30
  216. package/exampleForExpo/ios/.xcode.env +0 -11
  217. package/exampleForExpo/ios/Podfile +0 -61
  218. package/exampleForExpo/ios/Podfile.lock +0 -734
  219. package/exampleForExpo/ios/Podfile.properties.json +0 -3
  220. package/exampleForExpo/ios/exampleForExpo/AppDelegate.h +0 -9
  221. package/exampleForExpo/ios/exampleForExpo/AppDelegate.mm +0 -166
  222. package/exampleForExpo/ios/exampleForExpo/Images.xcassets/AppIcon.appiconset/Contents.json +0 -38
  223. package/exampleForExpo/ios/exampleForExpo/Images.xcassets/Contents.json +0 -6
  224. package/exampleForExpo/ios/exampleForExpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json +0 -21
  225. package/exampleForExpo/ios/exampleForExpo/Images.xcassets/SplashScreenBackground.imageset/image.png +0 -0
  226. package/exampleForExpo/ios/exampleForExpo/Info.plist +0 -118
  227. package/exampleForExpo/ios/exampleForExpo/SplashScreen.storyboard +0 -43
  228. package/exampleForExpo/ios/exampleForExpo/Supporting/Expo.plist +0 -16
  229. package/exampleForExpo/ios/exampleForExpo/exampleForExpo.entitlements +0 -8
  230. package/exampleForExpo/ios/exampleForExpo/main.m +0 -10
  231. package/exampleForExpo/ios/exampleForExpo/noop-file.swift +0 -4
  232. package/exampleForExpo/ios/exampleForExpo.xcodeproj/project.pbxproj +0 -544
  233. package/exampleForExpo/ios/exampleForExpo.xcodeproj/xcshareddata/xcschemes/exampleForExpo.xcscheme +0 -88
  234. package/exampleForExpo/ios/exampleForExpo.xcworkspace/contents.xcworkspacedata +0 -10
  235. package/exampleForExpo/ios/exampleForExpo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  236. package/exampleForExpo/metro.config.js +0 -62
  237. package/exampleForExpo/package.json +0 -40
  238. package/exampleForExpo/src/App.js +0 -14
  239. package/exampleForExpo/src/Certification/index.js +0 -25
  240. package/exampleForExpo/src/CertificationResult/index.js +0 -61
  241. package/exampleForExpo/src/CertificationTest/index.js +0 -151
  242. package/exampleForExpo/src/Home/index.js +0 -80
  243. package/exampleForExpo/src/Loading/index.js +0 -10
  244. package/exampleForExpo/src/NavigationService.js +0 -102
  245. package/exampleForExpo/src/Payment/index.js +0 -23
  246. package/exampleForExpo/src/PaymentResult/index.js +0 -82
  247. package/exampleForExpo/src/PaymentTest/index.js +0 -313
  248. package/exampleForExpo/src/Picker/index.js +0 -19
  249. package/exampleForExpo/src/constants.js +0 -322
  250. package/exampleForExpo/src/utils.js +0 -116
  251. package/exampleForExpo/yarn.lock +0 -9498
  252. package/exampleForManagedExpo/.expo-shared/assets.json +0 -4
  253. package/exampleForManagedExpo/.gitignore +0 -22
  254. package/exampleForManagedExpo/App.js +0 -11
  255. package/exampleForManagedExpo/README.md +0 -33
  256. package/exampleForManagedExpo/app.json +0 -90
  257. package/exampleForManagedExpo/assets/adaptive-icon.png +0 -0
  258. package/exampleForManagedExpo/assets/favicon.png +0 -0
  259. package/exampleForManagedExpo/assets/icon.png +0 -0
  260. package/exampleForManagedExpo/assets/splash.png +0 -0
  261. package/exampleForManagedExpo/babel.config.js +0 -11
  262. package/exampleForManagedExpo/metro.config.js +0 -62
  263. package/exampleForManagedExpo/package.json +0 -36
  264. package/exampleForManagedExpo/src/Certification/index.js +0 -25
  265. package/exampleForManagedExpo/src/CertificationResult/index.js +0 -61
  266. package/exampleForManagedExpo/src/CertificationTest/index.js +0 -151
  267. package/exampleForManagedExpo/src/Home/index.js +0 -80
  268. package/exampleForManagedExpo/src/Loading/index.js +0 -10
  269. package/exampleForManagedExpo/src/NavigationService.js +0 -102
  270. package/exampleForManagedExpo/src/Payment/index.js +0 -23
  271. package/exampleForManagedExpo/src/PaymentResult/index.js +0 -82
  272. package/exampleForManagedExpo/src/PaymentTest/index.js +0 -313
  273. package/exampleForManagedExpo/src/Picker/index.js +0 -19
  274. package/exampleForManagedExpo/src/constants.js +0 -322
  275. package/exampleForManagedExpo/src/utils.js +0 -116
  276. package/exampleForManagedExpo/yarn.lock +0 -9411
  277. package/exampleForWebView/.buckconfig +0 -6
  278. package/exampleForWebView/.eslintrc.js +0 -4
  279. package/exampleForWebView/.gitattributes +0 -3
  280. package/exampleForWebView/.gitignore +0 -68
  281. package/exampleForWebView/.prettierrc.js +0 -7
  282. package/exampleForWebView/.watchmanconfig +0 -1
  283. package/exampleForWebView/README.md +0 -77
  284. package/exampleForWebView/__tests__/App-test.tsx +0 -14
  285. package/exampleForWebView/_editorconfig +0 -3
  286. package/exampleForWebView/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
  287. package/exampleForWebView/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
  288. package/exampleForWebView/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
  289. package/exampleForWebView/android/.gradle/7.5.1/gc.properties +0 -0
  290. package/exampleForWebView/android/.gradle/vcs-1/gc.properties +0 -0
  291. package/exampleForWebView/android/app/BUCK +0 -55
  292. package/exampleForWebView/android/app/build.gradle +0 -313
  293. package/exampleForWebView/android/app/build_defs.bzl +0 -19
  294. package/exampleForWebView/android/app/debug.keystore +0 -0
  295. package/exampleForWebView/android/app/proguard-rules.pro +0 -10
  296. package/exampleForWebView/android/app/src/debug/AndroidManifest.xml +0 -13
  297. package/exampleForWebView/android/app/src/debug/java/com/exampleforwebview/ReactNativeFlipper.java +0 -73
  298. package/exampleForWebView/android/app/src/main/AndroidManifest.xml +0 -26
  299. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/MainActivity.java +0 -48
  300. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/MainApplication.java +0 -91
  301. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/MainApplicationReactNativeHost.java +0 -116
  302. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/components/MainComponentsRegistry.java +0 -36
  303. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +0 -48
  304. package/exampleForWebView/android/app/src/main/jni/CMakeLists.txt +0 -7
  305. package/exampleForWebView/android/app/src/main/jni/MainApplicationModuleProvider.cpp +0 -32
  306. package/exampleForWebView/android/app/src/main/jni/MainApplicationModuleProvider.h +0 -16
  307. package/exampleForWebView/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +0 -45
  308. package/exampleForWebView/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +0 -38
  309. package/exampleForWebView/android/app/src/main/jni/MainComponentsRegistry.cpp +0 -65
  310. package/exampleForWebView/android/app/src/main/jni/MainComponentsRegistry.h +0 -32
  311. package/exampleForWebView/android/app/src/main/jni/OnLoad.cpp +0 -11
  312. package/exampleForWebView/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -36
  313. package/exampleForWebView/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  314. package/exampleForWebView/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  315. package/exampleForWebView/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  316. package/exampleForWebView/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  317. package/exampleForWebView/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  318. package/exampleForWebView/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  319. package/exampleForWebView/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  320. package/exampleForWebView/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  321. package/exampleForWebView/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  322. package/exampleForWebView/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  323. package/exampleForWebView/android/app/src/main/res/values/strings.xml +0 -3
  324. package/exampleForWebView/android/app/src/main/res/values/styles.xml +0 -9
  325. package/exampleForWebView/android/build.gradle +0 -51
  326. package/exampleForWebView/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  327. package/exampleForWebView/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  328. package/exampleForWebView/android/gradle.properties +0 -40
  329. package/exampleForWebView/android/gradlew +0 -234
  330. package/exampleForWebView/android/gradlew.bat +0 -89
  331. package/exampleForWebView/android/settings.gradle +0 -11
  332. package/exampleForWebView/app.json +0 -4
  333. package/exampleForWebView/babel.config.js +0 -11
  334. package/exampleForWebView/index.js +0 -9
  335. package/exampleForWebView/ios/.xcode.env +0 -11
  336. package/exampleForWebView/ios/Podfile +0 -43
  337. package/exampleForWebView/ios/Podfile.lock +0 -748
  338. package/exampleForWebView/ios/exampleForWebView/AppDelegate.h +0 -8
  339. package/exampleForWebView/ios/exampleForWebView/AppDelegate.mm +0 -133
  340. package/exampleForWebView/ios/exampleForWebView/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
  341. package/exampleForWebView/ios/exampleForWebView/Images.xcassets/Contents.json +0 -6
  342. package/exampleForWebView/ios/exampleForWebView/Info.plist +0 -96
  343. package/exampleForWebView/ios/exampleForWebView/LaunchScreen.storyboard +0 -47
  344. package/exampleForWebView/ios/exampleForWebView/main.m +0 -10
  345. package/exampleForWebView/ios/exampleForWebView.xcodeproj/project.pbxproj +0 -723
  346. package/exampleForWebView/ios/exampleForWebView.xcodeproj/xcshareddata/xcschemes/exampleForWebView.xcscheme +0 -88
  347. package/exampleForWebView/ios/exampleForWebView.xcworkspace/contents.xcworkspacedata +0 -10
  348. package/exampleForWebView/ios/exampleForWebView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  349. package/exampleForWebView/ios/exampleForWebViewTests/Info.plist +0 -24
  350. package/exampleForWebView/ios/exampleForWebViewTests/exampleForWebViewTests.m +0 -66
  351. package/exampleForWebView/manuals/CERTIFICATION.md +0 -223
  352. package/exampleForWebView/manuals/PAYMENT.md +0 -232
  353. package/exampleForWebView/metro.config.js +0 -61
  354. package/exampleForWebView/package.json +0 -54
  355. package/exampleForWebView/src/App.tsx +0 -50
  356. package/exampleForWebView/src/Certification.tsx +0 -54
  357. package/exampleForWebView/src/Home.tsx +0 -49
  358. package/exampleForWebView/src/Loading.tsx +0 -23
  359. package/exampleForWebView/src/Payment.tsx +0 -65
  360. package/exampleForWebView/yarn.lock +0 -7362
  361. package/iamport-react-native.podspec +0 -19
  362. package/ios/IamportReactNative-Bridging-Header.h +0 -1
  363. package/ios/IamportReactNative.xcodeproj/project.pbxproj +0 -293
  364. package/ios/IamportReactNativeViewManager.m +0 -12
  365. package/ios/IamportReactNativeViewManager.swift +0 -32
  366. package/lib/commonjs/components/Certification/index.js +0 -121
  367. package/lib/commonjs/components/Certification/index.js.map +0 -1
  368. package/lib/commonjs/components/ErrorOnParams/index.js +0 -50
  369. package/lib/commonjs/components/ErrorOnParams/index.js.map +0 -1
  370. package/lib/commonjs/components/Loading/index.js +0 -34
  371. package/lib/commonjs/components/Loading/index.js.map +0 -1
  372. package/lib/commonjs/components/Payment/index.js +0 -225
  373. package/lib/commonjs/components/Payment/index.js.map +0 -1
  374. package/lib/commonjs/constants/index.js +0 -114
  375. package/lib/commonjs/constants/index.js.map +0 -1
  376. package/lib/commonjs/img/iamport-logo.png +0 -0
  377. package/lib/commonjs/index.js +0 -29
  378. package/lib/commonjs/index.js.map +0 -1
  379. package/lib/commonjs/styles.js +0 -27
  380. package/lib/commonjs/styles.js.map +0 -1
  381. package/lib/commonjs/utils/IamportUrl.js +0 -289
  382. package/lib/commonjs/utils/IamportUrl.js.map +0 -1
  383. package/lib/commonjs/utils/Validation.js +0 -109
  384. package/lib/commonjs/utils/Validation.js.map +0 -1
  385. package/lib/commonjs/utils/ValidationForPayment.js +0 -112
  386. package/lib/commonjs/utils/ValidationForPayment.js.map +0 -1
  387. package/lib/typescript/components/Certification/index.d.ts.map +0 -1
  388. package/lib/typescript/components/ErrorOnParams/index.d.ts +0 -7
  389. package/lib/typescript/components/ErrorOnParams/index.d.ts.map +0 -1
  390. package/lib/typescript/components/Loading/index.d.ts +0 -4
  391. package/lib/typescript/components/Loading/index.d.ts.map +0 -1
  392. package/lib/typescript/components/Payment/index.d.ts.map +0 -1
  393. package/lib/typescript/constants/index.d.ts.map +0 -1
  394. package/lib/typescript/index.d.ts.map +0 -1
  395. package/lib/typescript/styles.d.ts.map +0 -1
  396. package/lib/typescript/utils/IamportUrl.d.ts.map +0 -1
  397. package/lib/typescript/utils/Validation.d.ts.map +0 -1
  398. package/lib/typescript/utils/ValidationForPayment.d.ts.map +0 -1
  399. package/manuals/CALLBACK.md +0 -72
  400. package/manuals/EXAMPLE.md +0 -168
  401. package/manuals/EXPO.md +0 -246
  402. package/manuals/INSTALL.md +0 -31
  403. package/manuals/SETTING.md +0 -140
  404. package/manuals/SUPPORT.md +0 -35
  405. package/manuals/TRANS.md +0 -77
  406. package/manuals/VERSION.md +0 -187
  407. package/manuals/assets/after-linking-iamport.png +0 -0
  408. package/manuals/assets/after-linking-webview.png +0 -0
  409. package/manuals/assets/allow-arbitrary.gif +0 -0
  410. package/manuals/assets/android-studio-avd-manager.png +0 -0
  411. package/manuals/assets/android-studio-build.png +0 -0
  412. package/manuals/assets/app-scheme-registry.gif +0 -0
  413. package/manuals/assets/expo-eject.png +0 -0
  414. package/manuals/assets/ios-emulator-certification.png +0 -0
  415. package/manuals/assets/ios-emulator-home.png +0 -0
  416. package/manuals/assets/ios-emulator-payment.png +0 -0
  417. package/manuals/assets/ios-trans-create-header-file-1.png +0 -0
  418. package/manuals/assets/ios-trans-create-header-file-2.png +0 -0
  419. package/manuals/assets/ios-trans-create-objectivec-file-1.png +0 -0
  420. package/manuals/assets/ios-trans-create-objectivec-file-2.png +0 -0
  421. package/manuals/assets/ios-trans-result.png +0 -0
  422. package/manuals/assets/webview-peer-dependency.png +0 -0
  423. package/scripts/bootstrap.js +0 -24
  424. package/tsconfig.build.json +0 -9
  425. package/tsconfig.json +0 -26
  426. package/yarn.lock +0 -6174
  427. /package/lib/typescript/{constants → src/constants}/index.d.ts +0 -0
  428. /package/lib/typescript/{index.d.ts → src/index.d.ts} +0 -0
  429. /package/lib/typescript/{utils → src/utils}/Validation.d.ts +0 -0
  430. /package/lib/typescript/{utils → src/utils}/ValidationForPayment.d.ts +0 -0
@@ -1,72 +0,0 @@
1
- # 콜백 함수 설정하기
2
- 아임포트 리액트 네이티브 모듈 콜백 함수 설정을 위한 안내입니다.
3
-
4
- 콜백 함수는 필수입력 필드로, 결제/본인인증 완료 후 라우트를 이동하도록 로직을 작성해야합니다.
5
- [react-navigation](https://github.com/react-navigation/react-navigation)을 통해 라우터를 변경하는 경우, 아래와 같이 [push 함수](https://reactnavigation.org/docs/stack-actions/#push)가 아닌 [replace 함수](https://reactnavigation.org/docs/stack-actions/#replace)를 사용해야 합니다.
6
- push 함수를 사용할 경우, 결제 완료 후 라우터가 변경되더라도 유저가 뒤로가기를 했을 경우 아임포트 모듈이 다시 렌더링됩니다.
7
- 하지만 replace 함수를 사용하면, 결제 완료 후 라우터가 변경되고 유저가 뒤로가기를 하면 원래 결제하기 직전 화면으로 넘어가게 됩니다.
8
-
9
- ### 잘못된 사용 예제
10
- ```javascript
11
- function callback(response) {
12
- navigation.push('Result', response); // [에러] push 함수 사용
13
- }
14
- ```
15
-
16
- ### 올바른 사용 예제
17
- ```javascript
18
- function callback(response) {
19
- navigation.replace('Result', response);
20
- }
21
- ```
22
-
23
- ### 결과에 따라 로직 작성하기
24
- 콜백 함수의 첫번째 인자(response)는 결제/본인인증 결과를 담고 있는 오브젝트로 아래와 같이 구성되어 있습니다.
25
- 자세한 내용은 아임포트 공식 문서 [IMP.request_pay - param, rsp 객체 - Callback 함수의 rsp 객제](https://docs.iamport.kr/tech/imp#callback)를 참고해주세요.
26
-
27
- | key | Description |
28
- | ------------- | ------------------ |
29
- | success | 성공 여부 |
30
- | imp_uid | 아임포트 번호 |
31
- | merchant_uid | 주문번호 |
32
- | error_msg | 실패한 경우, 에러메시지 |
33
-
34
- response에 따라 결제/본인인증 성공/실패 여부를 판단해 아래와 같이 각기 다른 로직을 구성할 수 있습니다.
35
- 아래 코드는 예시일 뿐 실제 결제 성공/실패여부는 결제 유효성 검사 후 아임포트 REST API로 결제내역을 조회해 판단해야 합니다.
36
- 자세한 내용은 아임포트 공식 문서 [일반결제 연동하기 - STEP5. 서버에서 거래 검증 및 데이터 동기화](https://docs.iamport.kr/implementation/payment#server-side-logic)를 참고해주세요.
37
-
38
- ```javascript
39
- import React from 'react';
40
- import { View, Text } from 'react-native';
41
-
42
- function Result({ navigation }) {
43
- const success = navigation.getParam('success');
44
- const imp_uid = navigation.getParam('imp_uid');
45
- const merchant_uid = navigation.getParam('merchant_uid');
46
-
47
- return (
48
- <View>
49
- <Text>{`결제/본인인증에 ${success ? '성공' : '실패'}하였습니다.`}</Text>
50
- <View>
51
- <View>
52
- <Text>아임포트 번호</Text>
53
- <Text>{imp_uid || '없음'}</Text>
54
- </View>
55
- <View>
56
- <Text>주문 번호</Text>
57
- <Text>{merchant_uid || '없음'}</Text>
58
- </View>
59
- {
60
- !success &&
61
- <View>
62
- <Text>에러 메시지</Text>
63
- <Text>{error_msg || '없음'}</Text>
64
- </View>
65
- }
66
- </View>
67
- </View>
68
- );
69
- }
70
-
71
- export default Result;
72
- ```
@@ -1,168 +0,0 @@
1
- # 예제 프로젝트
2
- 아임포트 리액트 네이티브 모듈 예제 안내입니다.
3
-
4
- `iamport-react-native`에서는 4가지의 예제를 통해 서로 다른 개발 스택에서 결제 모듈을 사용하는 방법을 안내드리고 있습니다.
5
- 예제별 상세 설명은 각 예제 폴더의 README 파일을 확인해주시기 바랍니다.
6
-
7
- 예제 실행을 위해서는 `iamport-react-native` 모듈을 clone받은 후 루트 디렉토리에서 다음의 명령어를 실행합니다.
8
- ```shell
9
- $ yarn
10
- ```
11
- 그 후 각 예제 프로젝트의 폴더로 이동해 예제별 설명을 따라 앱을 빌드 및 실행할 수 있습니다.
12
-
13
- ## 1. [example](../example/README.md)
14
- 일반적인 형태의 리액트 네이티브 애플리케이션입니다.
15
- 타입스크립트로 작성되었습니다.
16
-
17
- ## 2. [exampleForWebView](../exampleForWebView/README.md)
18
- 기존에 만들어진 웹 페이지를 웹뷰에 띄워 결제를 진행하는 예제입니다.
19
- [iamport-react-example](https://github.com/iamport/iamport-react-example)과 함께 동작할 수 있도록 제작되었습니다.
20
- 타입스크립트로 작성되었습니다.
21
-
22
- ## 3. [exampleForExpo](../exampleForExpo/README.md)
23
- Expo bare 프로젝트 입니다.
24
- Expo에서 eject를 실행해 android 및 ios 폴더를 생성 후 직접 앱을 빌드하는 경우를 가정합니다.
25
- 자바스크립트로 작성되었습니다.
26
-
27
- ## 4. [exampleForManagedExpo](../exampleForManagedExpo/README.md)
28
- Expo managed 프로젝트입니다.
29
- Expo에서 eject하지 않고 앱을 개발하는 경우를 가정합니다.
30
- 자바스크립트로 작성되었습니다.
31
-
32
- ## 일반/정기결제 코드 예시
33
- ```javascript
34
- import React from 'react';
35
- /* 아임포트 결제모듈을 불러옵니다. */
36
- import IMP from 'iamport-react-native';
37
-
38
- /* 로딩 컴포넌트를 불러옵니다. */
39
- import Loading from './Loading';
40
-
41
- export function Payment({ navigation }) {
42
- /* [필수입력] 결제 종료 후, 라우터를 변경하고 결과를 전달합니다. */
43
- function callback(response) {
44
- navigation.replace('PaymentResult', response);
45
- }
46
-
47
- /* [필수입력] 결제에 필요한 데이터를 입력합니다. */
48
- const data = {
49
- pg: 'html5_inicis',
50
- pay_method: 'card',
51
- name: '아임포트 결제데이터 분석',
52
- merchant_uid: `mid_${new Date().getTime()}`,
53
- amount: '39000',
54
- buyer_name: '홍길동',
55
- buyer_tel: '01012345678',
56
- buyer_email: 'example@naver.com',
57
- buyer_addr: '서울시 강남구 신사동 661-16',
58
- buyer_postcode: '06018',
59
- app_scheme: 'example',
60
- // [Deprecated v1.0.3]: m_redirect_url
61
- };
62
-
63
- return (
64
- <IMP.Payment
65
- userCode={'iamport'} // 가맹점 식별코드
66
- tierCode={'AAA'} // 티어 코드: agency 기능 사용자에 한함
67
- loading={<Loading />} // 로딩 컴포넌트
68
- data={data} // 결제 데이터
69
- callback={callback} // 결제 종료 후 콜백
70
- />
71
- );
72
- }
73
-
74
- export default Payment;
75
- ```
76
-
77
- | Prop | Type | Description | Required |
78
- |------------------| ------------- |-----------------------------------------------------------------| ---------- |
79
- | userCode | string | 가맹점 식별코드 | true |
80
- | tierCode | string | agency 기능 사용자의 하위 가맹점 코드 3자리 | false |
81
- | data | object | 결제에 필요한 정보 [자세히 보기](https://docs.iamport.kr/sdk/javascript-sdk#request_pay) | true |
82
- | - m_redirect_url | string | 결제 후 이동할 url | false |
83
- | callback | function | 결제 후 실행 될 함수 [자세히보기](https://docs.iamport.kr/sdk/javascript-sdk) | true |
84
- | loading | RN 컴포넌트 | 웹뷰 로드시 보여질 컴포넌트 | false |
85
-
86
-
87
- ## 휴대폰 본인인증 코드 예시
88
- ```javascript
89
- import React from 'react';
90
- /* 아임포트 본인인증 모듈을 불러옵니다. */
91
- import IMP from 'iamport-react-native';
92
-
93
- /* 로딩 컴포넌트를 불러옵니다. */
94
- import Loading from './Loading';
95
-
96
- export function Certification({ navigation }) {
97
- /* [필수입력] 본인인증 종료 후, 라우터를 변경하고 결과를 전달합니다. */
98
- function callback(response) {
99
- navigation.replace('CertificationResult', response);
100
- }
101
-
102
- /* [필수입력] 본인인증에 필요한 데이터를 입력합니다. */
103
- const data = {
104
- merchant_uid: `mid_${new Date().getTime()}`,
105
- company: '아임포트',
106
- carrier: 'SKT',
107
- name: '홍길동',
108
- phone: '01012341234',
109
- min_age: '',
110
- };
111
-
112
- return (
113
- <IMP.Certification
114
- userCode={'iamport'} // 가맹점 식별코드
115
- tierCode={'AAA'} // 티어 코드: agency 기능 사용자에 한함
116
- loading={<Loading />} // 로딩 컴포넌트
117
- data={data} // 본인인증 데이터
118
- callback={callback} // 본인인증 종료 후 콜백
119
- />
120
- );
121
- }
122
-
123
- export default Certification;
124
- ```
125
-
126
- | Prop | Type | Description | Required |
127
- | ------------- | ------------- | ---------------------------------- | ---------- |
128
- | userCode | string | 가맹점 식별코드 | true |
129
- | tierCode | string | agency 기능 사용자의 하위 가맹점 코드 3자리 | false |
130
- | data | object | 본인인증에 필요한 정보 [자세히 보기](https://https://docs.iamport.kr/tech/mobile-authentication#call-authentication) | true |
131
- | - merchant_uid| string | 가맹점 주문번호 | false |
132
- | - company | string | 회사명 또는 URL | false |
133
- | - carrier | string | 통신사 | false |
134
- | - name | string | 본인인증 할 이름 | false |
135
- | - phone | number | 본인인증 할 전화번호 | false |
136
- | - min_age | number | 본인인증 허용 최소 연령 | false |
137
- | callback | function | 본인인증 후 실행 될 함수 | true |
138
- | loading | RN 컴포넌트 | 웹뷰 로드시 보여질 컴포넌트 | false |
139
-
140
- ## 웹뷰 로딩 컴포넌트 코드 예시
141
- 웹뷰가 로드되기 전 보여질 로딩 화면을 컴포넌트로 생성해 loading 파라메터로 넘깁니다.
142
- 미 입력시 아임포트가 보여주는 default 로딩 페이지가 렌더링됩니다. 아래는 로딩 컴포넌트 코드 작성 예시입니다.
143
-
144
- ```javascript
145
- import React from 'react';
146
- import { View, Text, StyleSheet } from 'react-native';
147
-
148
- export function Loading() {
149
- const { container } = styles;
150
- return (
151
- <View style={container}>
152
- <Text>잠시만 기다려주세요...</Text>
153
- </View>
154
- );
155
- }
156
-
157
- const styles = StyleSheet.create({
158
- container: {
159
- flex: 1,
160
- },
161
- });
162
-
163
- export default Loading;
164
- ```
165
-
166
- 로딩 컴포넌트 및 웹뷰 컴포넌트(IMP.Certification, IMP Payment)를 감싸고 있는 최상단 View 컴포넌트의 스타일 속성을 지정할때 주의해야합니다.
167
- 별도의 설정 없이 작성할 경우, 컴포넌트들이 전체화면으로 보이지 않을 수 있습니다.
168
- 따라서 스타일 속성을 지정할 때, 각 컴포넌트의 `flex`값을 1로 설정해주셔야 합니다.
package/manuals/EXPO.md DELETED
@@ -1,246 +0,0 @@
1
- # Expo에서 아임포트 연동하기
2
-
3
- `iamport-react-native`는 Expo 환경에서 사용하실 수 있습니다.
4
- 또한 eject를 하지 않아도 사용 가능합니다.
5
-
6
- 이 문서에서는 eject를 하지 않은 managed 프로젝트와 eject를 한 bare 프로젝트 양 쪽에서 Expo를 설정하는 방법을 설명하고 있습니다.
7
-
8
- ## Expo CLI 설치하기
9
- ```
10
- $ npm install -g expo-cli
11
- ```
12
-
13
- ## 1. managed 프로젝트
14
-
15
- managed 프로젝트는 Expo의 가장 기초적인 프로젝트 생성 방식으로 플랫폼별 네이티브 코드 없이 오직 자바스크립트 및 타입스크립트만으로 앱을 개발하는 방식입니다.
16
- Expo 자체 서버에서 빌드 및 배포를 모두 처리할 수 있습니다.
17
- `ios`및 `android` 폴더가 없기 때문에 필요한 설정들은 `app.json`에 적어주셔야 합니다.
18
-
19
- ### 1-1. Expo 서버 빌드를 위한 설정
20
-
21
- managed로 개발하는 경우 빌드를 Expo 서버에서 원격으로 진행하게 되며 그에 따른 [필수 값들](https://docs.expo.dev/distribution/building-standalone-apps/#2-configure-appjson)을 채워야 합니다.
22
-
23
- - `name`, `icon`, `version`, 그리고 `slug`는 앱 공통 설정으로 필수입니다.
24
- - `ios`의 `bundleIdentifier` 및 `buildNumber`는 iOS 앱 배포 및 빌드를 위해 필수입니다.
25
- - `android`의 `package` 및 `versionCode`는 안드로이드 앱 배포 및 빌드를 위해 필수입니다.
26
-
27
- ```json
28
- // app.json
29
- {
30
- "expo": {
31
- "name": "Your App Name",
32
- "icon": "./path/to/your/app-icon.png",
33
- "version": "1.0.0",
34
- "slug": "your-app-slug",
35
- "ios": {
36
- "bundleIdentifier": "com.yourcompany.yourappname",
37
- "buildNumber": "1.0.0"
38
- },
39
- "android": {
40
- "package": "com.yourcompany.yourappname",
41
- "versionCode": 1
42
- }
43
- }
44
- }
45
- ```
46
-
47
- ### 1-2. 외부 앱 실행을 위한 설정
48
-
49
- Expo bare 프로젝트나 일반 리액트 네이티브 프로젝트의 경우 AndroidManifest.xml 및 Info.plist에 앱 scheme [관련 설정](./SETTING.md)을 작성하지만, managed 프로젝트의 경우 네이티브 코드가 없어 app.json에 대신 설정을 적어주셔야 합니다.
50
-
51
- 먼저 안드로이드를 위한 외부 앱 설정에 필요한 expo-build-properties를 설치합니다.
52
-
53
- ```sh
54
- npx expo install expo-build-properties
55
- ```
56
-
57
- - `ios.infoPlist.LSApplicationQueriesSchemes`에는 외부 앱 리스트를 작성합니다.
58
- - `ios.infoPlist.NSAppTransportSecurity`의 두 항목을 `YES`로 설정합니다.
59
- - `android.intentFilters`에 개발하시는 앱의 scheme을 설정합니다.
60
- - `plugins`에 expo-build-properties를 이용해 안드로이드 외부 앱 리스트를 추가로 작성합니다.
61
-
62
- ```json
63
- // app.json
64
- {
65
- "expo": {
66
- ...,
67
- "ios": {
68
- ...
69
- "infoPlist": {
70
- "LSApplicationQueriesSchemes": [
71
- "kftc-bankpay",
72
- "ispmobile",
73
- "itms-apps",
74
- "hdcardappcardansimclick",
75
- "smhyundaiansimclick",
76
- "shinhan-sr-ansimclick",
77
- "smshinhanansimclick",
78
- "kb-acp",
79
- "mpocket.online.ansimclick",
80
- "ansimclickscard",
81
- "ansimclickipcollect",
82
- "vguardstart",
83
- "samsungpay",
84
- "scardcertiapp",
85
- "lottesmartpay",
86
- "lotteappcard",
87
- "cloudpay",
88
- "nhappcardansimclick",
89
- "nonghyupcardansimclick",
90
- "citispay",
91
- "citicardappkr",
92
- "citimobileapp",
93
- "kakaotalk",
94
- "payco",
95
- "chaipayment",
96
- "kb-auth",
97
- "hyundaicardappcardid",
98
- "com.wooricard.wcard",
99
- "lmslpay",
100
- "lguthepay-xpay",
101
- "liivbank",
102
- "supertoss",
103
- "kakaobank"
104
- ],
105
- "NSAppTransportSecurity": {
106
- "NSAllowsArbitraryLoads": true,
107
- "NSAllowsArbitraryLoadsInWebContent": true
108
- }
109
- }
110
- },
111
- ...
112
- "android": {
113
- ...
114
- "intentFilters": [
115
- {
116
- "action": "VIEW",
117
- "category": [
118
- "DEFAULT",
119
- "BROWSABLE"
120
- ],
121
- "data": {
122
- "scheme": "exampleformanagedexpo"
123
- }
124
- }
125
- ]
126
- },
127
- ...
128
- "plugins": [
129
- [
130
- "expo-build-properties",
131
- {
132
- "android": {
133
- "manifestQueries": [
134
- {
135
- "intent": {
136
- "action": "android.intent.action.VIEW",
137
- "category": "android.intent.category.BROWSABLE",
138
- "data": {
139
- "scheme": "https"
140
- }
141
- },
142
- "package": [
143
- "kvp.jjy.MispAndroid320",
144
- "com.kftc.bankpay.android",
145
- "com.kbstar.liivbank",
146
- "com.nh.cashcardapp",
147
- "kr.co.kfcc.mobilebank",
148
- "com.knb.psb",
149
- "com.kakao.talk",
150
- "com.mysmilepay.app",
151
- "finance.chai.app",
152
- "com.nhnent.payapp",
153
- "com.hyundaicard.appcard",
154
- "viva.republica.toss",
155
- "com.shcard.smartpay",
156
- "com.shinhan.smartcaremgr",
157
- "com.hanaskard.paycla",
158
- "kr.co.samsungcard.mpocket",
159
- "com.kbcard.cxh.appcard",
160
- "nh.smart.nhallonepay",
161
- "kr.co.citibank.citimobile",
162
- "com.lcacApp",
163
- "com.lotte.lpay",
164
- "com.ssg.serviceapp.android.egiftcertificate",
165
- "com.inicis.kpay",
166
- "com.kbankwith.smartbank",
167
- "com.lguplus.paynow",
168
- "com.wooricard.smartapp",
169
- "com.lottemembers.android",
170
- "com.kt.ktauth",
171
- "com.lguplus.smartotp",
172
- "com.sktelecom.tauth",
173
- "com.wooribank.smart.npib",
174
- "com.kakaobank.channel"
175
- ]
176
- }
177
- ]
178
- }
179
- }
180
- ]
181
- ]
182
- }
183
- }
184
- ```
185
-
186
- ### 1-3. 예제
187
-
188
- - [예제 코드 작성하기](./EXAMPLE.md)
189
- - [예제 프로젝트 실행하기](../exampleForManagedExpo/README.md)
190
-
191
- ## 2. bare 프로젝트
192
-
193
- bare 프로젝트는 기존 managed 프로젝트에서 eject를 실행해 네이티브 코드를 사용하고자 하는 개발 방식입니다.
194
- Expo 자체 서버에서 bare 프로젝트의 빌드를 지원하고 있지 않기 때문에 앱 배포를 위해서는 로컬에서 직접 빌드하게 됩니다.
195
-
196
- ### 2-1. 설정 파일(app.json) 확인하기
197
-
198
- 원활한 ejecting을 위해 아래와 같이 설정되어 있는지 확인합니다.
199
-
200
- ```
201
- // app.json
202
- {
203
- "expo": {
204
- "name": "Your App Name",
205
- "icon": "./path/to/your/app-icon.png",
206
- "version": "1.0.0",
207
- "slug": "your-app-slug",
208
- "sdkVersion": "XX.0.0",
209
- "ios": {
210
- "bundleIdentifier": "com.yourcompany.yourappname"
211
- },
212
- "android": {
213
- "package": "com.yourcompany.yourappname"
214
- }
215
- }
216
- }
217
- ```
218
-
219
- - IOS의 `bundleIdentifier`값과 Android의 `package`값에 알맞은 값을 넣어야 합니다.
220
- - `name`, `icon` 그리고 `version` 필드는 필수입력입니다.
221
- - 보다 자세한 내용은 엑스포 공식문서 [Configuration with app.json](https://docs.expo.dev/workflow/configuration)을 참고해주세요.
222
-
223
- ### 2-2. EJECT 하기
224
-
225
- 프로젝트 폴더에서 expo 명령어를 통해 eject 합니다. `android`와 `ios` 폴더가 생성되며 필요한 dependency들이 설치됩니다.
226
-
227
- ```shell
228
- $ expo eject
229
- ```
230
-
231
- ### 2-3. [아임포트 설치 및 링킹하기](./INSTALL.md)
232
- ```shell
233
- $ yarn add iamport-react-native
234
- $ yarn add react-native-webview
235
- ```
236
-
237
- ### 2-4. 설정하기
238
- - [IOS 설정하기](./SETTING.md)
239
- - [실시간 계좌이체 설정하기](./TRANS.md)
240
-
241
- ###2-5. 예제
242
-
243
- - [예제 코드 작성하기](./EXAMPLE.md)
244
- - [예제 프로젝트 실행하기](../exampleForExpo/README.md)
245
-
246
- ### 2-6 [콜백 함수 설정하기](./CALLBACK.md)
@@ -1,31 +0,0 @@
1
- # 설치하기
2
- 아임포트 리액트 네이티브 모듈 설치 안내입니다.
3
- 아래 명령어를 통해 아임포트 모듈을 귀하의 리액트 네이티브 프로젝트에 추가할 수 있습니다.
4
- `react-native-webview` 모듈은 아임포트 모듈을 사용하기 위해 꼭 필요하기 때문에 반드시 함께 설치해야 합니다.
5
-
6
- ```shell
7
- $ npm install iamport-react-native --save
8
- $ npm install react-native-webview --save
9
- ```
10
- 또는
11
- ```shell
12
- $ yarn add iamport-react-native
13
- $ yarn add react-native-webview
14
- ```
15
-
16
- `iamport-react-native`는 `v10.8.3` 이상의 `react-native-webview`를 필요로 합니다.
17
- 위 명령어대로 `iamport-react-native` 플러그인을 설치했을 때 다음과 같은 Warning Message가 나온다면 기존에 설치된 `react-native-webview` 플러그인을 업데이트해주세요.
18
-
19
- ![](../manuals/assets/webview-peer-dependency.png)
20
-
21
- `react-native` `v0.60.0` 부터는 auto linking 및 jetifier 자동 적용이 지원됩니다.
22
- 다만 자동으로 링크가 되어도 iOS의 경우 `pod install`은 직접 실행해주셔야 합니다.
23
-
24
- 구 버전의 `react-native`를 사용하신다면 업데이트해주셔야 별도의 링크 작업 없이 아임포트 모듈을 사용하실 수 있습니다.
25
-
26
- 설치를 성공적으로 마쳤을 경우, 아래와 같은 화면을 보실 수 있습니다.
27
-
28
- ![](assets/after-linking-iamport.png)
29
- ![](assets/after-linking-webview.png)
30
-
31
- [comment]: <> (실패한 경우, 아래 과정을 통해 `iamport-react-native` 모듈을 귀하의 프로젝트에 [수동으로 연결]&#40;https://facebook.github.io/react-native/docs/linking-libraries-ios&#41;시킬 수 있습니다.)
@@ -1,140 +0,0 @@
1
- 아임포트 리액트 네이티브 모듈 설정 안내입니다.
2
-
3
- # 안드로이드 설정하기
4
- 안드로이드에서 아임포트 결제연동 모듈을 사용하기 위해서는 아래 항목을 설정해주셔야 합니다.
5
- 카드사 혹은 간편결제 앱 등을 실행할 수 있도록 외부 앱 리스트를 등록해야 합니다.
6
-
7
- `[프로젝트 폴더]/android/app/src/main/AndroidManifest.xml` 파일을 연 후 아래 내용을 추가합니다.
8
-
9
- ```xml
10
- <queries>
11
- <package android:name="kvp.jjy.MispAndroid320" />
12
- <package android:name="com.kftc.bankpay.android" />
13
- <package android:name="com.kbstar.liivbank" />
14
- <package android:name="com.nh.cashcardapp" />
15
- <package android:name="kr.co.kfcc.mobilebank" />
16
- <package android:name="com.knb.psb" />
17
- <package android:name="com.kakao.talk" />
18
- <package android:name="com.mysmilepay.app" />
19
- <package android:name="finance.chai.app" />
20
- <package android:name="com.nhnent.payapp" />
21
- <package android:name="com.hyundaicard.appcard" />
22
- <package android:name="viva.republica.toss" />
23
- <package android:name="com.shcard.smartpay" />
24
- <package android:name="com.shinhan.smartcaremgr" />
25
- <package android:name="com.hanaskard.paycla" />
26
- <package android:name="kr.co.samsungcard.mpocket" />
27
- <package android:name="com.kbcard.cxh.appcard" />
28
- <package android:name="nh.smart.nhallonepay" />
29
- <package android:name="kr.co.citibank.citimobile" />
30
- <package android:name="com.lcacApp" />
31
- <package android:name="com.lotte.lpay" />
32
- <package android:name="com.ssg.serviceapp.android.egiftcertificate" />
33
- <package android:name="com.inicis.kpay" />
34
- <package android:name="com.kbankwith.smartbank" />
35
- <package android:name="com.lguplus.paynow" />
36
- <package android:name="com.wooricard.smartapp" />
37
- <package android:name="com.lottemembers.android" />
38
- <package android:name="com.kt.ktauth" />
39
- <package android:name="com.lguplus.smartotp" />
40
- <package android:name="com.sktelecom.tauth" />
41
- <package android:name="com.wooribank.smart.npib" />
42
- <package android:name="com.kakaobank.channel" />
43
- <package android:name="com.shinhan.sbanking" />
44
- <intent>
45
- <action android:name="android.intent.action.VIEW" />
46
- <category android:name="android.intent.category.BROWSABLE" />
47
- <data android:scheme="https" />
48
- </intent>
49
- </queries>
50
- ```
51
-
52
- # iOS 설정하기
53
- iOS에서 아임포트 결제연동 모듈을 사용하기 위해서는 아래 3가지 항목을 설정해주셔야 합니다.
54
-
55
- ## 1. App Scheme 등록
56
- 외부 결제 앱(e.g. 페이코, 신한 페이판)에서 결제 후 돌아올 때 사용할 URL identifier를 설정해야 합니다.
57
- ![](assets/app-scheme-registry.gif)
58
- ```xml
59
- <key>CFBundleURLTypes</key>
60
- <array>
61
- <dict>
62
- <key>CFBundleURLSchemes</key>
63
- <array>
64
- <string>myawesomeapp</string>
65
- </array>
66
- </dict>
67
- </array>
68
- ```
69
-
70
- 1. `[프로젝트 폴더]/ios/[프로젝트 이름]/Info.plist` 파일을 연 후 `URL Types`속성을 추가합니다.
71
- 2. `URL Schemes`에 원하는 scheme 값을 입력합니다.
72
-
73
- ## 2. 외부 앱 리스트 등록
74
- 3rd party앱(예) 간편결제 앱)을 실행할 수 있도록 외부 앱 리스트를 등록해야합니다.
75
-
76
- 1. `[프로젝트 폴더]/ios/[프로젝트 이름]/Info.plist` 파일을 오픈합니다.
77
- 2. [LSApplicationQueriesSchemes](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW14) 속성을 추가하고 아래에 외부 앱 리스트를 등록합니다.
78
-
79
- ```xml
80
- <key>LSApplicationQueriesSchemes</key>
81
- <array>
82
- <string>kftc-bankpay</string> <!-- 계좌이체 -->
83
- <string>ispmobile</string> <!-- ISP모바일 -->
84
- <string>itms-apps</string> <!-- 앱스토어 -->
85
- <string>hdcardappcardansimclick</string> <!-- 현대카드-앱카드 -->
86
- <string>smhyundaiansimclick</string> <!-- 현대카드-공인인증서 -->
87
- <string>shinhan-sr-ansimclick</string> <!-- 신한카드-앱카드 -->
88
- <string>smshinhanansimclick</string> <!-- 신한카드-공인인증서 -->
89
- <string>kb-acp</string> <!-- 국민카드-앱카드 -->
90
- <string>mpocket.online.ansimclick</string> <!-- 삼성카드-앱카드 -->
91
- <string>ansimclickscard</string> <!-- 삼성카드-온라인결제 -->
92
- <string>ansimclickipcollect</string> <!-- 삼성카드-온라인결제 -->
93
- <string>vguardstart</string> <!-- 삼성카드-백신 -->
94
- <string>samsungpay</string> <!-- 삼성카드-삼성페이 -->
95
- <string>scardcertiapp</string> <!-- 삼성카드-공인인증서 -->
96
- <string>lottesmartpay</string> <!-- 롯데카드-모바일결제 -->
97
- <string>lotteappcard</string> <!-- 롯데카드-앱카드 -->
98
- <string>cloudpay</string> <!-- 하나카드-앱카드 -->
99
- <string>nhappcardansimclick</string> <!-- 농협카드-앱카드 -->
100
- <string>nonghyupcardansimclick</string> <!-- 농협카드-공인인증서 -->
101
- <string>citispay</string> <!-- 씨티카드-앱카드 -->
102
- <string>citicardappkr</string> <!-- 씨티카드-공인인증서 -->
103
- <string>citimobileapp</string> <!-- 씨티카드-간편결제 -->
104
- <string>kakaotalk</string> <!-- 카카오톡 -->
105
- <string>payco</string> <!-- 페이코 -->
106
- <string>lpayapp</string> <!-- (구)롯데 L페이 -->
107
- <string>hanamopmoasign</string> <!-- 하나카드 공인인증앱 -->
108
- <string>wooripay</string> <!-- (구) 우리페이 -->
109
- <string>nhallonepayansimclick</string> <!-- NH 올원페이 -->
110
- <string>hanawalletmembers</string> <!-- 하나카드(하나멤버스 월렛) -->
111
- <string>chaipayment</string> <!-- 차이 -->
112
- <string>kb-auth</string> <!-- 국민 -->
113
- <string>hyundaicardappcardid</string> <!-- 현대카드 -->
114
- <string>com.wooricard.wcard</string> <!-- 우리won페이 -->
115
- <string>lmslpay</string> <!-- 롯데 L페이 -->
116
- <string>lguthepay-xpay</string> <!-- 페이나우 -->
117
- <string>liivbank</string> <!-- Liiv 국민 -->
118
- <string>supertoss</string> <!-- 토스 -->
119
- <string>newsmartpib</string> <!-- 우리WON뱅킹 -->
120
- <string>ukbanksmartbanknonloginpay</string> <!-- 케이뱅크 페이 -->
121
- <string>kakaobank</string> <!-- 카카오뱅크 -->
122
- </array>
123
- ```
124
-
125
- ## 3. App Transport Security 설정
126
- ![](assets/allow-arbitrary.gif)
127
-
128
- 1. `[프로젝트 폴더]/ios/[프로젝트 이름]/Info.plist` 파일을 오픈합니다.
129
- 2. `App Transport Security` 속성을 추가합니다.
130
- 3. 하부 속성에 `Allow Arbitrary Loads in Web Content`,`Allow Arbitrary Loads` 속성을 추가하고 각각의 값(value)을 `YES`로 변경합니다.
131
-
132
- ```xml
133
- <key>NSAppTransportSecurity</key>
134
- <dict>
135
- <key>NSAllowsArbitraryLoadsInWebContent</key>
136
- <true/>
137
- <key>NSAllowsArbitraryLoads</key>
138
- <true/>
139
- </dict>
140
- ```