iamport-react-native 2.0.13 → 2.0.15

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 (376) hide show
  1. package/.circleci/config.yml +98 -0
  2. package/.editorconfig +15 -0
  3. package/.gitattributes +3 -0
  4. package/.gitignore +69 -0
  5. package/.yarnrc +3 -0
  6. package/.yarnrc.yml +1 -0
  7. package/README.md +1 -1
  8. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  9. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  10. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  11. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  12. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  13. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  14. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  15. package/android/.gradle/8.9/gc.properties +0 -0
  16. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  17. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  18. package/android/.gradle/vcs-1/gc.properties +0 -0
  19. package/babel.config.js +3 -0
  20. package/example/.gitignore +69 -0
  21. package/example/README.md +44 -0
  22. package/example/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
  23. package/example/android/.gradle/7.5.1/checksums/md5-checksums.bin +0 -0
  24. package/example/android/.gradle/7.5.1/checksums/sha1-checksums.bin +0 -0
  25. package/example/android/.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  26. package/example/android/.gradle/7.5.1/dependencies-accessors/gc.properties +0 -0
  27. package/example/android/.gradle/7.5.1/executionHistory/executionHistory.lock +0 -0
  28. package/example/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
  29. package/example/android/.gradle/7.5.1/fileHashes/fileHashes.bin +0 -0
  30. package/example/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
  31. package/example/android/.gradle/7.5.1/gc.properties +0 -0
  32. package/example/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  33. package/example/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  34. package/example/android/.gradle/vcs-1/gc.properties +0 -0
  35. package/example/android/app/build.gradle +183 -0
  36. package/example/android/app/debug.keystore +0 -0
  37. package/example/android/app/proguard-rules.pro +10 -0
  38. package/example/android/app/src/debug/AndroidManifest.xml +8 -0
  39. package/example/android/app/src/debug/java/com/example/iamportreactnative/ReactNativeFlipper.java +69 -0
  40. package/example/android/app/src/main/AndroidManifest.xml +34 -0
  41. package/example/android/app/src/main/java/com/example/iamportreactnative/MainActivity.java +15 -0
  42. package/example/android/app/src/main/java/com/example/iamportreactnative/MainApplication.java +80 -0
  43. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  44. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  45. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  46. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  47. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  48. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  49. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  50. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  51. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  52. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  53. package/example/android/app/src/main/res/values/strings.xml +3 -0
  54. package/example/android/app/src/main/res/values/styles.xml +9 -0
  55. package/example/android/build.gradle +21 -0
  56. package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  57. package/example/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  58. package/example/android/gradle.properties +44 -0
  59. package/example/android/gradlew +183 -0
  60. package/example/android/gradlew.bat +103 -0
  61. package/example/android/settings.gradle +9 -0
  62. package/example/app.json +4 -0
  63. package/example/babel.config.js +11 -0
  64. package/example/index.js +5 -0
  65. package/example/ios/File.swift +8 -0
  66. package/example/ios/Gemfile +7 -0
  67. package/example/ios/Gemfile.lock +99 -0
  68. package/example/ios/IamportReactNativeExample/AppDelegate.h +15 -0
  69. package/example/ios/IamportReactNativeExample/AppDelegate.mm +138 -0
  70. package/example/ios/IamportReactNativeExample/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  71. package/example/ios/IamportReactNativeExample/Images.xcassets/Contents.json +6 -0
  72. package/example/ios/IamportReactNativeExample/Info.plist +121 -0
  73. package/example/ios/IamportReactNativeExample/LaunchScreen.storyboard +58 -0
  74. package/example/ios/IamportReactNativeExample/main.m +16 -0
  75. package/example/ios/IamportReactNativeExample-Bridging-Header.h +3 -0
  76. package/example/ios/IamportReactNativeExample.xcodeproj/project.pbxproj +969 -0
  77. package/example/ios/IamportReactNativeExample.xcodeproj/xcshareddata/xcschemes/IamportReactNativeExample.xcscheme +99 -0
  78. package/example/ios/IamportReactNativeExample.xcworkspace/contents.xcworkspacedata +10 -0
  79. package/example/ios/IamportReactNativeExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  80. package/example/ios/Podfile +57 -0
  81. package/example/ios/Podfile.lock +756 -0
  82. package/example/metro.config.js +66 -0
  83. package/example/package.json +40 -0
  84. package/example/src/App.tsx +17 -0
  85. package/example/src/Certification/index.tsx +30 -0
  86. package/example/src/CertificationResult/index.tsx +79 -0
  87. package/example/src/CertificationTest/index.tsx +214 -0
  88. package/example/src/Home/index.tsx +87 -0
  89. package/example/src/Loading/index.tsx +12 -0
  90. package/example/src/NavigationService.tsx +127 -0
  91. package/example/src/Payment/index.tsx +28 -0
  92. package/example/src/PaymentResult/index.tsx +96 -0
  93. package/example/src/PaymentTest/index.tsx +383 -0
  94. package/example/src/Picker/index.tsx +60 -0
  95. package/example/src/constants.ts +274 -0
  96. package/example/src/utils.ts +83 -0
  97. package/example/yarn.lock +7358 -0
  98. package/exampleForExpo/.buckconfig +6 -0
  99. package/exampleForExpo/.expo/README.md +8 -0
  100. package/exampleForExpo/.expo/devices.json +3 -0
  101. package/exampleForExpo/.gitattributes +1 -0
  102. package/exampleForExpo/.gitignore +125 -0
  103. package/exampleForExpo/.idea/.gitignore +3 -0
  104. package/exampleForExpo/.idea/caches/deviceStreaming.xml +549 -0
  105. package/exampleForExpo/.idea/exampleForExpo.iml +9 -0
  106. package/exampleForExpo/.idea/misc.xml +6 -0
  107. package/exampleForExpo/.idea/modules.xml +8 -0
  108. package/exampleForExpo/.idea/vcs.xml +6 -0
  109. package/exampleForExpo/.idea/workspace.xml +53 -0
  110. package/exampleForExpo/README.md +58 -0
  111. package/exampleForExpo/__tests__/App.js +10 -0
  112. package/exampleForExpo/android/.gitignore +21 -0
  113. package/exampleForExpo/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
  114. package/exampleForExpo/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
  115. package/exampleForExpo/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
  116. package/exampleForExpo/android/.gradle/7.5.1/gc.properties +0 -0
  117. package/exampleForExpo/android/.gradle/vcs-1/gc.properties +0 -0
  118. package/exampleForExpo/android/app/BUCK +55 -0
  119. package/exampleForExpo/android/app/build.gradle +362 -0
  120. package/exampleForExpo/android/app/build_defs.bzl +19 -0
  121. package/exampleForExpo/android/app/debug.keystore +0 -0
  122. package/exampleForExpo/android/app/proguard-rules.pro +14 -0
  123. package/exampleForExpo/android/app/src/debug/AndroidManifest.xml +7 -0
  124. package/exampleForExpo/android/app/src/debug/java/kr/iamport/exampleForExpo/ReactNativeFlipper.java +69 -0
  125. package/exampleForExpo/android/app/src/main/AndroidManifest.xml +34 -0
  126. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/MainActivity.java +83 -0
  127. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/MainApplication.java +106 -0
  128. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/MainApplicationReactNativeHost.java +117 -0
  129. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/components/MainComponentsRegistry.java +36 -0
  130. package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +48 -0
  131. package/exampleForExpo/android/app/src/main/jni/CMakeLists.txt +7 -0
  132. package/exampleForExpo/android/app/src/main/jni/MainApplicationModuleProvider.cpp +32 -0
  133. package/exampleForExpo/android/app/src/main/jni/MainApplicationModuleProvider.h +16 -0
  134. package/exampleForExpo/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +45 -0
  135. package/exampleForExpo/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +38 -0
  136. package/exampleForExpo/android/app/src/main/jni/MainComponentsRegistry.cpp +65 -0
  137. package/exampleForExpo/android/app/src/main/jni/MainComponentsRegistry.h +32 -0
  138. package/exampleForExpo/android/app/src/main/jni/OnLoad.cpp +11 -0
  139. package/exampleForExpo/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  140. package/exampleForExpo/android/app/src/main/res/drawable/splashscreen.xml +4 -0
  141. package/exampleForExpo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  142. package/exampleForExpo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  143. package/exampleForExpo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  144. package/exampleForExpo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  145. package/exampleForExpo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  146. package/exampleForExpo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  147. package/exampleForExpo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  148. package/exampleForExpo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  149. package/exampleForExpo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  150. package/exampleForExpo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  151. package/exampleForExpo/android/app/src/main/res/values/colors.xml +4 -0
  152. package/exampleForExpo/android/app/src/main/res/values/strings.xml +3 -0
  153. package/exampleForExpo/android/app/src/main/res/values/styles.xml +17 -0
  154. package/exampleForExpo/android/app/src/main/res/values-night/colors.xml +1 -0
  155. package/exampleForExpo/android/build.gradle +65 -0
  156. package/exampleForExpo/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  157. package/exampleForExpo/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  158. package/exampleForExpo/android/gradle.properties +53 -0
  159. package/exampleForExpo/android/gradlew +240 -0
  160. package/exampleForExpo/android/gradlew.bat +91 -0
  161. package/exampleForExpo/android/settings.gradle +17 -0
  162. package/exampleForExpo/app.json +16 -0
  163. package/exampleForExpo/babel.config.js +11 -0
  164. package/exampleForExpo/index.js +9 -0
  165. package/exampleForExpo/ios/.gitignore +30 -0
  166. package/exampleForExpo/ios/.xcode.env +11 -0
  167. package/exampleForExpo/ios/Podfile +61 -0
  168. package/exampleForExpo/ios/Podfile.lock +734 -0
  169. package/exampleForExpo/ios/Podfile.properties.json +3 -0
  170. package/exampleForExpo/ios/exampleForExpo/AppDelegate.h +9 -0
  171. package/exampleForExpo/ios/exampleForExpo/AppDelegate.mm +166 -0
  172. package/exampleForExpo/ios/exampleForExpo/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
  173. package/exampleForExpo/ios/exampleForExpo/Images.xcassets/Contents.json +6 -0
  174. package/exampleForExpo/ios/exampleForExpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json +21 -0
  175. package/exampleForExpo/ios/exampleForExpo/Images.xcassets/SplashScreenBackground.imageset/image.png +0 -0
  176. package/exampleForExpo/ios/exampleForExpo/Info.plist +118 -0
  177. package/exampleForExpo/ios/exampleForExpo/SplashScreen.storyboard +43 -0
  178. package/exampleForExpo/ios/exampleForExpo/Supporting/Expo.plist +16 -0
  179. package/exampleForExpo/ios/exampleForExpo/exampleForExpo.entitlements +8 -0
  180. package/exampleForExpo/ios/exampleForExpo/main.m +10 -0
  181. package/exampleForExpo/ios/exampleForExpo/noop-file.swift +4 -0
  182. package/exampleForExpo/ios/exampleForExpo.xcodeproj/project.pbxproj +544 -0
  183. package/exampleForExpo/ios/exampleForExpo.xcodeproj/xcshareddata/xcschemes/exampleForExpo.xcscheme +88 -0
  184. package/exampleForExpo/ios/exampleForExpo.xcworkspace/contents.xcworkspacedata +10 -0
  185. package/exampleForExpo/ios/exampleForExpo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  186. package/exampleForExpo/metro.config.js +62 -0
  187. package/exampleForExpo/package.json +40 -0
  188. package/exampleForExpo/src/App.js +14 -0
  189. package/exampleForExpo/src/Certification/index.js +25 -0
  190. package/exampleForExpo/src/CertificationResult/index.js +61 -0
  191. package/exampleForExpo/src/CertificationTest/index.js +151 -0
  192. package/exampleForExpo/src/Home/index.js +80 -0
  193. package/exampleForExpo/src/Loading/index.js +10 -0
  194. package/exampleForExpo/src/NavigationService.js +102 -0
  195. package/exampleForExpo/src/Payment/index.js +23 -0
  196. package/exampleForExpo/src/PaymentResult/index.js +82 -0
  197. package/exampleForExpo/src/PaymentTest/index.js +313 -0
  198. package/exampleForExpo/src/Picker/index.js +19 -0
  199. package/exampleForExpo/src/constants.js +322 -0
  200. package/exampleForExpo/src/utils.js +116 -0
  201. package/exampleForExpo/yarn.lock +9498 -0
  202. package/exampleForManagedExpo/.expo-shared/assets.json +4 -0
  203. package/exampleForManagedExpo/.gitignore +22 -0
  204. package/exampleForManagedExpo/App.js +11 -0
  205. package/exampleForManagedExpo/README.md +33 -0
  206. package/exampleForManagedExpo/app.json +90 -0
  207. package/exampleForManagedExpo/assets/adaptive-icon.png +0 -0
  208. package/exampleForManagedExpo/assets/favicon.png +0 -0
  209. package/exampleForManagedExpo/assets/icon.png +0 -0
  210. package/exampleForManagedExpo/assets/splash.png +0 -0
  211. package/exampleForManagedExpo/babel.config.js +11 -0
  212. package/exampleForManagedExpo/metro.config.js +62 -0
  213. package/exampleForManagedExpo/package.json +36 -0
  214. package/exampleForManagedExpo/src/Certification/index.js +25 -0
  215. package/exampleForManagedExpo/src/CertificationResult/index.js +61 -0
  216. package/exampleForManagedExpo/src/CertificationTest/index.js +151 -0
  217. package/exampleForManagedExpo/src/Home/index.js +80 -0
  218. package/exampleForManagedExpo/src/Loading/index.js +10 -0
  219. package/exampleForManagedExpo/src/NavigationService.js +102 -0
  220. package/exampleForManagedExpo/src/Payment/index.js +23 -0
  221. package/exampleForManagedExpo/src/PaymentResult/index.js +82 -0
  222. package/exampleForManagedExpo/src/PaymentTest/index.js +313 -0
  223. package/exampleForManagedExpo/src/Picker/index.js +19 -0
  224. package/exampleForManagedExpo/src/constants.js +322 -0
  225. package/exampleForManagedExpo/src/utils.js +116 -0
  226. package/exampleForManagedExpo/yarn.lock +9411 -0
  227. package/exampleForWebView/.buckconfig +6 -0
  228. package/exampleForWebView/.eslintrc.js +4 -0
  229. package/exampleForWebView/.gitattributes +3 -0
  230. package/exampleForWebView/.gitignore +68 -0
  231. package/exampleForWebView/.prettierrc.js +7 -0
  232. package/exampleForWebView/.watchmanconfig +1 -0
  233. package/exampleForWebView/README.md +77 -0
  234. package/exampleForWebView/__tests__/App-test.tsx +14 -0
  235. package/exampleForWebView/_editorconfig +3 -0
  236. package/exampleForWebView/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
  237. package/exampleForWebView/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
  238. package/exampleForWebView/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
  239. package/exampleForWebView/android/.gradle/7.5.1/gc.properties +0 -0
  240. package/exampleForWebView/android/.gradle/vcs-1/gc.properties +0 -0
  241. package/exampleForWebView/android/app/BUCK +55 -0
  242. package/exampleForWebView/android/app/build.gradle +313 -0
  243. package/exampleForWebView/android/app/build_defs.bzl +19 -0
  244. package/exampleForWebView/android/app/debug.keystore +0 -0
  245. package/exampleForWebView/android/app/proguard-rules.pro +10 -0
  246. package/exampleForWebView/android/app/src/debug/AndroidManifest.xml +13 -0
  247. package/exampleForWebView/android/app/src/debug/java/com/exampleforwebview/ReactNativeFlipper.java +73 -0
  248. package/exampleForWebView/android/app/src/main/AndroidManifest.xml +26 -0
  249. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/MainActivity.java +48 -0
  250. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/MainApplication.java +91 -0
  251. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/MainApplicationReactNativeHost.java +116 -0
  252. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/components/MainComponentsRegistry.java +36 -0
  253. package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +48 -0
  254. package/exampleForWebView/android/app/src/main/jni/CMakeLists.txt +7 -0
  255. package/exampleForWebView/android/app/src/main/jni/MainApplicationModuleProvider.cpp +32 -0
  256. package/exampleForWebView/android/app/src/main/jni/MainApplicationModuleProvider.h +16 -0
  257. package/exampleForWebView/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +45 -0
  258. package/exampleForWebView/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +38 -0
  259. package/exampleForWebView/android/app/src/main/jni/MainComponentsRegistry.cpp +65 -0
  260. package/exampleForWebView/android/app/src/main/jni/MainComponentsRegistry.h +32 -0
  261. package/exampleForWebView/android/app/src/main/jni/OnLoad.cpp +11 -0
  262. package/exampleForWebView/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  263. package/exampleForWebView/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  264. package/exampleForWebView/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  265. package/exampleForWebView/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  266. package/exampleForWebView/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  267. package/exampleForWebView/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  268. package/exampleForWebView/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  269. package/exampleForWebView/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  270. package/exampleForWebView/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  271. package/exampleForWebView/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  272. package/exampleForWebView/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  273. package/exampleForWebView/android/app/src/main/res/values/strings.xml +3 -0
  274. package/exampleForWebView/android/app/src/main/res/values/styles.xml +9 -0
  275. package/exampleForWebView/android/build.gradle +51 -0
  276. package/exampleForWebView/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  277. package/exampleForWebView/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  278. package/exampleForWebView/android/gradle.properties +40 -0
  279. package/exampleForWebView/android/gradlew +234 -0
  280. package/exampleForWebView/android/gradlew.bat +89 -0
  281. package/exampleForWebView/android/settings.gradle +11 -0
  282. package/exampleForWebView/app.json +4 -0
  283. package/exampleForWebView/babel.config.js +11 -0
  284. package/exampleForWebView/index.js +9 -0
  285. package/exampleForWebView/ios/.xcode.env +11 -0
  286. package/exampleForWebView/ios/Podfile +43 -0
  287. package/exampleForWebView/ios/Podfile.lock +748 -0
  288. package/exampleForWebView/ios/exampleForWebView/AppDelegate.h +8 -0
  289. package/exampleForWebView/ios/exampleForWebView/AppDelegate.mm +133 -0
  290. package/exampleForWebView/ios/exampleForWebView/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  291. package/exampleForWebView/ios/exampleForWebView/Images.xcassets/Contents.json +6 -0
  292. package/exampleForWebView/ios/exampleForWebView/Info.plist +96 -0
  293. package/exampleForWebView/ios/exampleForWebView/LaunchScreen.storyboard +47 -0
  294. package/exampleForWebView/ios/exampleForWebView/main.m +10 -0
  295. package/exampleForWebView/ios/exampleForWebView.xcodeproj/project.pbxproj +723 -0
  296. package/exampleForWebView/ios/exampleForWebView.xcodeproj/xcshareddata/xcschemes/exampleForWebView.xcscheme +88 -0
  297. package/exampleForWebView/ios/exampleForWebView.xcworkspace/contents.xcworkspacedata +10 -0
  298. package/exampleForWebView/ios/exampleForWebView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  299. package/exampleForWebView/ios/exampleForWebViewTests/Info.plist +24 -0
  300. package/exampleForWebView/ios/exampleForWebViewTests/exampleForWebViewTests.m +66 -0
  301. package/exampleForWebView/manuals/CERTIFICATION.md +223 -0
  302. package/exampleForWebView/manuals/PAYMENT.md +232 -0
  303. package/exampleForWebView/metro.config.js +61 -0
  304. package/exampleForWebView/package.json +54 -0
  305. package/exampleForWebView/src/App.tsx +50 -0
  306. package/exampleForWebView/src/Certification.tsx +54 -0
  307. package/exampleForWebView/src/Home.tsx +49 -0
  308. package/exampleForWebView/src/Loading.tsx +23 -0
  309. package/exampleForWebView/src/Payment.tsx +65 -0
  310. package/exampleForWebView/yarn.lock +7362 -0
  311. package/lib/commonjs/components/Certification/index.js +10 -13
  312. package/lib/commonjs/components/Certification/index.js.map +1 -1
  313. package/lib/commonjs/components/ErrorOnParams/index.js +5 -7
  314. package/lib/commonjs/components/ErrorOnParams/index.js.map +1 -1
  315. package/lib/commonjs/components/Loading/index.js +2 -3
  316. package/lib/commonjs/components/Loading/index.js.map +1 -1
  317. package/lib/commonjs/components/Payment/index.js +10 -13
  318. package/lib/commonjs/components/Payment/index.js.map +1 -1
  319. package/lib/commonjs/constants/index.js +2 -4
  320. package/lib/commonjs/constants/index.js.map +1 -1
  321. package/lib/commonjs/index.js +2 -3
  322. package/lib/commonjs/index.js.map +1 -1
  323. package/lib/commonjs/styles.js +1 -2
  324. package/lib/commonjs/styles.js.map +1 -1
  325. package/lib/commonjs/utils/IamportUrl.js +2 -3
  326. package/lib/commonjs/utils/IamportUrl.js.map +1 -1
  327. package/lib/commonjs/utils/Validation.js +1 -2
  328. package/lib/commonjs/utils/Validation.js.map +1 -1
  329. package/lib/commonjs/utils/ValidationForPayment.js +1 -2
  330. package/lib/commonjs/utils/ValidationForPayment.js.map +1 -1
  331. package/lib/module/components/Certification/index.js +7 -8
  332. package/lib/module/components/Certification/index.js.map +1 -1
  333. package/lib/module/components/ErrorOnParams/index.js +3 -4
  334. package/lib/module/components/ErrorOnParams/index.js.map +1 -1
  335. package/lib/module/components/Loading/index.js.map +1 -1
  336. package/lib/module/components/Payment/index.js +7 -8
  337. package/lib/module/components/Payment/index.js.map +1 -1
  338. package/lib/module/constants/index.js +1 -2
  339. package/lib/module/constants/index.js.map +1 -1
  340. package/lib/module/index.js.map +1 -1
  341. package/lib/module/styles.js.map +1 -1
  342. package/lib/module/utils/IamportUrl.js.map +1 -1
  343. package/lib/module/utils/Validation.js.map +1 -1
  344. package/lib/module/utils/ValidationForPayment.js.map +1 -1
  345. package/lib/typescript/constants/index.d.ts +1 -1
  346. package/lib/typescript/constants/index.d.ts.map +1 -1
  347. package/manuals/CALLBACK.md +72 -0
  348. package/manuals/EXAMPLE.md +168 -0
  349. package/manuals/EXPO.md +246 -0
  350. package/manuals/INSTALL.md +31 -0
  351. package/manuals/SETTING.md +140 -0
  352. package/manuals/SUPPORT.md +35 -0
  353. package/manuals/TRANS.md +77 -0
  354. package/manuals/VERSION.md +187 -0
  355. package/manuals/assets/after-linking-iamport.png +0 -0
  356. package/manuals/assets/after-linking-webview.png +0 -0
  357. package/manuals/assets/allow-arbitrary.gif +0 -0
  358. package/manuals/assets/android-studio-avd-manager.png +0 -0
  359. package/manuals/assets/android-studio-build.png +0 -0
  360. package/manuals/assets/app-scheme-registry.gif +0 -0
  361. package/manuals/assets/expo-eject.png +0 -0
  362. package/manuals/assets/ios-emulator-certification.png +0 -0
  363. package/manuals/assets/ios-emulator-home.png +0 -0
  364. package/manuals/assets/ios-emulator-payment.png +0 -0
  365. package/manuals/assets/ios-trans-create-header-file-1.png +0 -0
  366. package/manuals/assets/ios-trans-create-header-file-2.png +0 -0
  367. package/manuals/assets/ios-trans-create-objectivec-file-1.png +0 -0
  368. package/manuals/assets/ios-trans-create-objectivec-file-2.png +0 -0
  369. package/manuals/assets/ios-trans-result.png +0 -0
  370. package/manuals/assets/webview-peer-dependency.png +0 -0
  371. package/package.json +4 -3
  372. package/scripts/bootstrap.js +24 -0
  373. package/src/constants/index.ts +8 -0
  374. package/tsconfig.build.json +9 -0
  375. package/tsconfig.json +26 -0
  376. package/yarn.lock +6174 -0
@@ -0,0 +1,246 @@
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)
@@ -0,0 +1,31 @@
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;시킬 수 있습니다.)
@@ -0,0 +1,140 @@
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
+ ```
@@ -0,0 +1,35 @@
1
+ # 지원정보
2
+
3
+ 아임포트 리액트 네이티브(이하 RN) 모듈이 지원하는 PG사 및 결제수단 안내입니다.
4
+
5
+ | pg | 이름 | 결제수단 |
6
+ |--------------|---------------------|-----------------------------------------------------------------------------------------------|
7
+ | html5_inicis | 웹 표준 이니시스 | 신용카드, 가상계좌, 실시간 계좌이체(IOS 별도 설정 필요), 휴대폰 소액결제, 삼성페이, KPAY, 문화상품권, 스마트문상, 해피머니 |
8
+ | kcp | NHN KCP | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제, 삼성페이 |
9
+ | kcp_billing | NHN KCP 정기결제 | 신용카드 |
10
+ | uplus | 토스페이먼츠 - (구)LG 유플러스 | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제, 문화상품권, 스마트문상, 도서상품권 |
11
+ | jtnet | JTNET | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제 |
12
+ | nice | 나이스 정보통신 | 신용카드, 가상계좌, 실시간 계좌이체(IOS/안드로이드 별도 설정 필요), 휴대폰 소액결제 |
13
+ | kakaopay | 신 - 카카오페이 | 신용카드 |
14
+ | kakao | 구 - LG CNS 카카오페이 | 신용카드 |
15
+ | danal | 다날 휴대폰 소액결제 | 휴대폰 소액결제 |
16
+ | danal_tpay | 다날 일반결제 | 신용카드, 가상계좌, 실시간 계좌이체 |
17
+ | kicc | 한국정보통신 | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제 |
18
+ | paypal | 페이팔 | 신용카드 |
19
+ | mobilians | 모빌리언스 | 신용카드, 가상계좌(준비중), 실시간 계좌이체(준비중), 휴대폰 소액결제 |
20
+ | payco | 페이코 | 신용카드 |
21
+ | eximbay | 엑심베이 | 신용카드 [주의사항](https://github.com/iamport/iamport-react-native/issues/70#issuecomment-704601908) |
22
+ | settle | 세틀뱅크 | 가상계좌 |
23
+ | naverco | 네이버 체크아웃 | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제 |
24
+ | naverpay | 네이버페이 | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제 |
25
+ | smilepay | 스마일페이 | 신용카드 [주의사항](https://github.com/iamport/iamport-react-native/issues/71) |
26
+ | chai | 차이페이 | 신용카드 |
27
+ | payple | 페이플 | 실시간 계좌이체 |
28
+ | alipay | 알리페이 | 신용카드 |
29
+ | bluewalnut | 블루월넛 | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제 |
30
+ | tosspay | 토스 - 간편결제 | 신용카드 | |
31
+ | smartro | 스마트로 | 신용카드, 가상계좌, 실시간 계좌이체 |
32
+ | tosspayments | 토스페이먼츠 (신 모듈) | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제, 상품권(도서문화상품권, 스마트문상, 컬처랜드), 간편결제 |
33
+ | ksnet | KSNET | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제, 간편결제 |
34
+ | daou | 키움페이(다우데이터, 페이조아) | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제 |
35
+ | nice_v2 | (신) 나이스페이먼츠 | 신용카드, 가상계좌, 실시간 계좌이체, 휴대폰 소액결제, 상품권(컬처랜드), 간편결제 |
@@ -0,0 +1,77 @@
1
+ # 실시간 계좌이체 설정하기
2
+ ## iOS - 웹 표준 이니시스 또는 나이스 정보통신
3
+ iOS에서 `웹 표준 이니시스(이하 이니시스)` 또는 `나이스 정보통신(이하 나이스)` `실시간 계좌이체`를 연동하는 경우 별도 설정이 요구됩니다.
4
+ 이니시스는 결제완료 후 콜백이 실행되지 않고, 나이스는 결제인증 후 결제완료 처리가 되지 않기 때문입니다.
5
+ 이는 이니시스와 나이스 결제모듈 자체 문제입니다.
6
+ 아임포트 RN 모듈은 이에 대응하기 위한 안내를 제공하고 있습니다.
7
+
8
+ Expo 프로젝트의 경우 아래의 Linking 작업들을 하지 않으셔도 됩니다.
9
+
10
+ ### 실시간 계좌이체 결제처리 원리
11
+ 먼저 뱅크페이 앱에서 귀하의 앱으로 복귀할때를 트리거해야 합니다.
12
+ 아임포트 RN 모듈은 트리거 된 순간 이니시스의 경우 콜백을 실행시키고, 나이스의 경우 나이스로 결제정보가 담긴 POST 요청을 보냅니다.
13
+ Objective C는 들어오는(incoming) 앱 링크를 트리거 하기 위해 `openURL` 메소드를 제공합니다.
14
+ 이때 RN `Linking`을 활용해 RN단에서 들어오는 앱 링크를 트리거 하게 만들 수 있습니다.
15
+
16
+ 자세한 내용은 [RN Linking](https://reactnative.dev/docs/linking)을 참고하세요.
17
+
18
+ ### 프로젝트에 openURL 메소드 추가하기
19
+ `*AppDelegate.m` 파일에 아래 코드를 복사합니다.
20
+
21
+ ```objectivec
22
+ // iOS 9.x or newer
23
+ #import <React/RCTLinkingManager.h>
24
+
25
+ - (BOOL)application:(UIApplication *)application
26
+ openURL:(NSURL *)url
27
+ options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
28
+ {
29
+ return [RCTLinkingManager application:application openURL:url options:options];
30
+ }
31
+ ```
32
+
33
+ ```objectivec
34
+ // iOS 8.x or older
35
+ #import <React/RCTLinkingManager.h>
36
+
37
+ - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
38
+ sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
39
+ {
40
+ return [RCTLinkingManager application:application openURL:url
41
+ sourceApplication:sourceApplication annotation:annotation];
42
+ }
43
+ ```
44
+
45
+ ## Android - 나이스 정보통신
46
+ 안드로이드에서는 `나이스` `실시간 계좌이체`를 연동하는 경우 iOS와 같은 이유로 별도 설정이 요구됩니다.
47
+
48
+ ### 실시간 계좌이체 결제처리 원리
49
+ iOS와 동일하게 뱅크페이 앱에서 귀하의 앱으로 복귀할때를 트리거해야 합니다.
50
+ 아임포트 RN 모듈은 트리거 된 순간 나이스로 결제정보가 담긴 POST 요청을 보냅니다.
51
+ 안드로이드에서는 들어오는(incoming) 앱 링크를 트리거하기 위해 deep linking 기능을 제공합니다.
52
+
53
+ ### Intent Filter 추가하고 launchMode 설정하기
54
+ deep linking 기능을 활성화하기 위해 `Intent Filter`를 추가하고 `MainActivity`의 `launchMode`를 아래와 같이 `singleTask`로 설정해야 합니다.
55
+
56
+ 자세한 내용은 [RN Linking](https://reactnative.dev/docs/linking)을 참고하세요.
57
+
58
+ ```xml
59
+ ...
60
+ <!-- [프로젝트 폴더]/android/app/src/main/AndroidManifest.xml -->.
61
+ <!-- MainActivity의 launchMode를 singleTask로 설정 -->
62
+ <activity
63
+ android:name=".MainActivity"
64
+ android:launchMode="singleTask"
65
+ >
66
+ ...
67
+ <!-- Intent Filter 추가 -->
68
+ <intent-filter>
69
+ <action android:name="android.intent.action.VIEW"/>
70
+ <category android:name="android.intent.category.DEFAULT"/>
71
+ <category android:name="android.intent.category.BROWSABLE"/>
72
+ <data android:scheme="앱 스킴 값 EX. example" />
73
+ </intent-filter>
74
+ ...
75
+ </activity>
76
+ ...
77
+ ```