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.
- package/CHANGELOG.md +13 -0
- package/README.md +12 -2
- package/lib/module/components/Certification/index.js +75 -72
- package/lib/module/components/Certification/index.js.map +1 -1
- package/lib/module/components/ErrorOnParams/index.js +13 -9
- package/lib/module/components/ErrorOnParams/index.js.map +1 -1
- package/lib/module/components/Loading/index.js +13 -9
- package/lib/module/components/Loading/index.js.map +1 -1
- package/lib/module/components/Payment/index.js +111 -93
- package/lib/module/components/Payment/index.js.map +1 -1
- package/lib/module/constants/index.js +2 -0
- package/lib/module/constants/index.js.map +1 -1
- package/lib/module/index.js +6 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/styles.js +2 -0
- package/lib/module/styles.js.map +1 -1
- package/lib/module/utils/IamportUrl.js +51 -29
- package/lib/module/utils/IamportUrl.js.map +1 -1
- package/lib/module/utils/Validation.js +3 -2
- package/lib/module/utils/Validation.js.map +1 -1
- package/lib/module/utils/ValidationForPayment.js +4 -2
- package/lib/module/utils/ValidationForPayment.js.map +1 -1
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/{components → src/components}/Certification/index.d.ts +1 -2
- package/lib/typescript/src/components/Certification/index.d.ts.map +1 -0
- package/lib/typescript/src/components/ErrorOnParams/index.d.ts +6 -0
- package/lib/typescript/src/components/ErrorOnParams/index.d.ts.map +1 -0
- package/lib/typescript/src/components/Loading/index.d.ts +3 -0
- package/lib/typescript/src/components/Loading/index.d.ts.map +1 -0
- package/lib/typescript/{components → src/components}/Payment/index.d.ts +1 -2
- package/lib/typescript/src/components/Payment/index.d.ts.map +1 -0
- package/lib/typescript/src/constants/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/{styles.d.ts → src/styles.d.ts} +2 -2
- package/lib/typescript/src/styles.d.ts.map +1 -0
- package/lib/typescript/{utils → src/utils}/IamportUrl.d.ts +8 -7
- package/lib/typescript/src/utils/IamportUrl.d.ts.map +1 -0
- package/lib/typescript/src/utils/Validation.d.ts.map +1 -0
- package/lib/typescript/src/utils/ValidationForPayment.d.ts.map +1 -0
- package/package.json +81 -74
- package/src/components/Certification/index.tsx +7 -7
- package/src/components/ErrorOnParams/index.tsx +1 -2
- package/src/components/Loading/index.tsx +1 -2
- package/src/components/Payment/index.tsx +31 -7
- package/src/utils/IamportUrl.ts +54 -26
- package/.circleci/config.yml +0 -98
- package/.editorconfig +0 -15
- package/.gitattributes +0 -3
- package/.gitignore +0 -69
- package/.yarnrc +0 -3
- package/.yarnrc.yml +0 -1
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +0 -128
- package/android/gradle.properties +0 -4
- package/android/src/main/AndroidManifest.xml +0 -4
- package/android/src/main/java/com/iamportreactnative/IamportReactNativePackage.kt +0 -17
- package/android/src/main/java/com/iamportreactnative/IamportReactNativeViewManager.kt +0 -20
- package/babel.config.js +0 -3
- package/example/.gitignore +0 -69
- package/example/README.md +0 -44
- package/example/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
- package/example/android/.gradle/7.5.1/checksums/md5-checksums.bin +0 -0
- package/example/android/.gradle/7.5.1/checksums/sha1-checksums.bin +0 -0
- package/example/android/.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/example/android/.gradle/7.5.1/dependencies-accessors/gc.properties +0 -0
- package/example/android/.gradle/7.5.1/executionHistory/executionHistory.lock +0 -0
- package/example/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
- package/example/android/.gradle/7.5.1/fileHashes/fileHashes.bin +0 -0
- package/example/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
- package/example/android/.gradle/7.5.1/gc.properties +0 -0
- package/example/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/example/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/example/android/.gradle/vcs-1/gc.properties +0 -0
- package/example/android/app/build.gradle +0 -183
- package/example/android/app/debug.keystore +0 -0
- package/example/android/app/proguard-rules.pro +0 -10
- package/example/android/app/src/debug/AndroidManifest.xml +0 -8
- package/example/android/app/src/debug/java/com/example/iamportreactnative/ReactNativeFlipper.java +0 -69
- package/example/android/app/src/main/AndroidManifest.xml +0 -34
- package/example/android/app/src/main/java/com/example/iamportreactnative/MainActivity.java +0 -15
- package/example/android/app/src/main/java/com/example/iamportreactnative/MainApplication.java +0 -80
- package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/values/strings.xml +0 -3
- package/example/android/app/src/main/res/values/styles.xml +0 -9
- package/example/android/build.gradle +0 -21
- package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/example/android/gradle/wrapper/gradle-wrapper.properties +0 -6
- package/example/android/gradle.properties +0 -44
- package/example/android/gradlew +0 -183
- package/example/android/gradlew.bat +0 -103
- package/example/android/settings.gradle +0 -9
- package/example/app.json +0 -4
- package/example/babel.config.js +0 -11
- package/example/index.js +0 -5
- package/example/ios/File.swift +0 -8
- package/example/ios/Gemfile +0 -7
- package/example/ios/Gemfile.lock +0 -99
- package/example/ios/IamportReactNativeExample/AppDelegate.h +0 -15
- package/example/ios/IamportReactNativeExample/AppDelegate.mm +0 -138
- package/example/ios/IamportReactNativeExample/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
- package/example/ios/IamportReactNativeExample/Images.xcassets/Contents.json +0 -6
- package/example/ios/IamportReactNativeExample/Info.plist +0 -121
- package/example/ios/IamportReactNativeExample/LaunchScreen.storyboard +0 -58
- package/example/ios/IamportReactNativeExample/main.m +0 -16
- package/example/ios/IamportReactNativeExample-Bridging-Header.h +0 -3
- package/example/ios/IamportReactNativeExample.xcodeproj/project.pbxproj +0 -969
- package/example/ios/IamportReactNativeExample.xcodeproj/xcshareddata/xcschemes/IamportReactNativeExample.xcscheme +0 -99
- package/example/ios/IamportReactNativeExample.xcworkspace/contents.xcworkspacedata +0 -10
- package/example/ios/IamportReactNativeExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/example/ios/Podfile +0 -57
- package/example/ios/Podfile.lock +0 -756
- package/example/metro.config.js +0 -66
- package/example/package.json +0 -40
- package/example/src/App.tsx +0 -17
- package/example/src/Certification/index.tsx +0 -30
- package/example/src/CertificationResult/index.tsx +0 -79
- package/example/src/CertificationTest/index.tsx +0 -214
- package/example/src/Home/index.tsx +0 -87
- package/example/src/Loading/index.tsx +0 -12
- package/example/src/NavigationService.tsx +0 -127
- package/example/src/Payment/index.tsx +0 -28
- package/example/src/PaymentResult/index.tsx +0 -96
- package/example/src/PaymentTest/index.tsx +0 -383
- package/example/src/Picker/index.tsx +0 -60
- package/example/src/constants.ts +0 -274
- package/example/src/utils.ts +0 -83
- package/example/yarn.lock +0 -7358
- package/exampleForExpo/.buckconfig +0 -6
- package/exampleForExpo/.expo/README.md +0 -8
- package/exampleForExpo/.expo/devices.json +0 -3
- package/exampleForExpo/.gitattributes +0 -1
- package/exampleForExpo/.gitignore +0 -125
- package/exampleForExpo/.idea/.gitignore +0 -3
- package/exampleForExpo/.idea/caches/deviceStreaming.xml +0 -549
- package/exampleForExpo/.idea/exampleForExpo.iml +0 -9
- package/exampleForExpo/.idea/misc.xml +0 -6
- package/exampleForExpo/.idea/modules.xml +0 -8
- package/exampleForExpo/.idea/vcs.xml +0 -6
- package/exampleForExpo/.idea/workspace.xml +0 -53
- package/exampleForExpo/README.md +0 -58
- package/exampleForExpo/__tests__/App.js +0 -10
- package/exampleForExpo/android/.gitignore +0 -21
- package/exampleForExpo/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
- package/exampleForExpo/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
- package/exampleForExpo/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
- package/exampleForExpo/android/.gradle/7.5.1/gc.properties +0 -0
- package/exampleForExpo/android/.gradle/vcs-1/gc.properties +0 -0
- package/exampleForExpo/android/app/BUCK +0 -55
- package/exampleForExpo/android/app/build.gradle +0 -362
- package/exampleForExpo/android/app/build_defs.bzl +0 -19
- package/exampleForExpo/android/app/debug.keystore +0 -0
- package/exampleForExpo/android/app/proguard-rules.pro +0 -14
- package/exampleForExpo/android/app/src/debug/AndroidManifest.xml +0 -7
- package/exampleForExpo/android/app/src/debug/java/kr/iamport/exampleForExpo/ReactNativeFlipper.java +0 -69
- package/exampleForExpo/android/app/src/main/AndroidManifest.xml +0 -34
- package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/MainActivity.java +0 -83
- package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/MainApplication.java +0 -106
- package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/MainApplicationReactNativeHost.java +0 -117
- package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/components/MainComponentsRegistry.java +0 -36
- package/exampleForExpo/android/app/src/main/java/kr/iamport/exampleForExpo/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +0 -48
- package/exampleForExpo/android/app/src/main/jni/CMakeLists.txt +0 -7
- package/exampleForExpo/android/app/src/main/jni/MainApplicationModuleProvider.cpp +0 -32
- package/exampleForExpo/android/app/src/main/jni/MainApplicationModuleProvider.h +0 -16
- package/exampleForExpo/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +0 -45
- package/exampleForExpo/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +0 -38
- package/exampleForExpo/android/app/src/main/jni/MainComponentsRegistry.cpp +0 -65
- package/exampleForExpo/android/app/src/main/jni/MainComponentsRegistry.h +0 -32
- package/exampleForExpo/android/app/src/main/jni/OnLoad.cpp +0 -11
- package/exampleForExpo/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -36
- package/exampleForExpo/android/app/src/main/res/drawable/splashscreen.xml +0 -4
- package/exampleForExpo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/exampleForExpo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/exampleForExpo/android/app/src/main/res/values/colors.xml +0 -4
- package/exampleForExpo/android/app/src/main/res/values/strings.xml +0 -3
- package/exampleForExpo/android/app/src/main/res/values/styles.xml +0 -17
- package/exampleForExpo/android/app/src/main/res/values-night/colors.xml +0 -1
- package/exampleForExpo/android/build.gradle +0 -65
- package/exampleForExpo/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/exampleForExpo/android/gradle/wrapper/gradle-wrapper.properties +0 -5
- package/exampleForExpo/android/gradle.properties +0 -53
- package/exampleForExpo/android/gradlew +0 -240
- package/exampleForExpo/android/gradlew.bat +0 -91
- package/exampleForExpo/android/settings.gradle +0 -17
- package/exampleForExpo/app.json +0 -16
- package/exampleForExpo/babel.config.js +0 -11
- package/exampleForExpo/index.js +0 -9
- package/exampleForExpo/ios/.gitignore +0 -30
- package/exampleForExpo/ios/.xcode.env +0 -11
- package/exampleForExpo/ios/Podfile +0 -61
- package/exampleForExpo/ios/Podfile.lock +0 -734
- package/exampleForExpo/ios/Podfile.properties.json +0 -3
- package/exampleForExpo/ios/exampleForExpo/AppDelegate.h +0 -9
- package/exampleForExpo/ios/exampleForExpo/AppDelegate.mm +0 -166
- package/exampleForExpo/ios/exampleForExpo/Images.xcassets/AppIcon.appiconset/Contents.json +0 -38
- package/exampleForExpo/ios/exampleForExpo/Images.xcassets/Contents.json +0 -6
- package/exampleForExpo/ios/exampleForExpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json +0 -21
- package/exampleForExpo/ios/exampleForExpo/Images.xcassets/SplashScreenBackground.imageset/image.png +0 -0
- package/exampleForExpo/ios/exampleForExpo/Info.plist +0 -118
- package/exampleForExpo/ios/exampleForExpo/SplashScreen.storyboard +0 -43
- package/exampleForExpo/ios/exampleForExpo/Supporting/Expo.plist +0 -16
- package/exampleForExpo/ios/exampleForExpo/exampleForExpo.entitlements +0 -8
- package/exampleForExpo/ios/exampleForExpo/main.m +0 -10
- package/exampleForExpo/ios/exampleForExpo/noop-file.swift +0 -4
- package/exampleForExpo/ios/exampleForExpo.xcodeproj/project.pbxproj +0 -544
- package/exampleForExpo/ios/exampleForExpo.xcodeproj/xcshareddata/xcschemes/exampleForExpo.xcscheme +0 -88
- package/exampleForExpo/ios/exampleForExpo.xcworkspace/contents.xcworkspacedata +0 -10
- package/exampleForExpo/ios/exampleForExpo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/exampleForExpo/metro.config.js +0 -62
- package/exampleForExpo/package.json +0 -40
- package/exampleForExpo/src/App.js +0 -14
- package/exampleForExpo/src/Certification/index.js +0 -25
- package/exampleForExpo/src/CertificationResult/index.js +0 -61
- package/exampleForExpo/src/CertificationTest/index.js +0 -151
- package/exampleForExpo/src/Home/index.js +0 -80
- package/exampleForExpo/src/Loading/index.js +0 -10
- package/exampleForExpo/src/NavigationService.js +0 -102
- package/exampleForExpo/src/Payment/index.js +0 -23
- package/exampleForExpo/src/PaymentResult/index.js +0 -82
- package/exampleForExpo/src/PaymentTest/index.js +0 -313
- package/exampleForExpo/src/Picker/index.js +0 -19
- package/exampleForExpo/src/constants.js +0 -322
- package/exampleForExpo/src/utils.js +0 -116
- package/exampleForExpo/yarn.lock +0 -9498
- package/exampleForManagedExpo/.expo-shared/assets.json +0 -4
- package/exampleForManagedExpo/.gitignore +0 -22
- package/exampleForManagedExpo/App.js +0 -11
- package/exampleForManagedExpo/README.md +0 -33
- package/exampleForManagedExpo/app.json +0 -90
- package/exampleForManagedExpo/assets/adaptive-icon.png +0 -0
- package/exampleForManagedExpo/assets/favicon.png +0 -0
- package/exampleForManagedExpo/assets/icon.png +0 -0
- package/exampleForManagedExpo/assets/splash.png +0 -0
- package/exampleForManagedExpo/babel.config.js +0 -11
- package/exampleForManagedExpo/metro.config.js +0 -62
- package/exampleForManagedExpo/package.json +0 -36
- package/exampleForManagedExpo/src/Certification/index.js +0 -25
- package/exampleForManagedExpo/src/CertificationResult/index.js +0 -61
- package/exampleForManagedExpo/src/CertificationTest/index.js +0 -151
- package/exampleForManagedExpo/src/Home/index.js +0 -80
- package/exampleForManagedExpo/src/Loading/index.js +0 -10
- package/exampleForManagedExpo/src/NavigationService.js +0 -102
- package/exampleForManagedExpo/src/Payment/index.js +0 -23
- package/exampleForManagedExpo/src/PaymentResult/index.js +0 -82
- package/exampleForManagedExpo/src/PaymentTest/index.js +0 -313
- package/exampleForManagedExpo/src/Picker/index.js +0 -19
- package/exampleForManagedExpo/src/constants.js +0 -322
- package/exampleForManagedExpo/src/utils.js +0 -116
- package/exampleForManagedExpo/yarn.lock +0 -9411
- package/exampleForWebView/.buckconfig +0 -6
- package/exampleForWebView/.eslintrc.js +0 -4
- package/exampleForWebView/.gitattributes +0 -3
- package/exampleForWebView/.gitignore +0 -68
- package/exampleForWebView/.prettierrc.js +0 -7
- package/exampleForWebView/.watchmanconfig +0 -1
- package/exampleForWebView/README.md +0 -77
- package/exampleForWebView/__tests__/App-test.tsx +0 -14
- package/exampleForWebView/_editorconfig +0 -3
- package/exampleForWebView/android/.gradle/7.5.1/checksums/checksums.lock +0 -0
- package/exampleForWebView/android/.gradle/7.5.1/fileChanges/last-build.bin +0 -0
- package/exampleForWebView/android/.gradle/7.5.1/fileHashes/fileHashes.lock +0 -0
- package/exampleForWebView/android/.gradle/7.5.1/gc.properties +0 -0
- package/exampleForWebView/android/.gradle/vcs-1/gc.properties +0 -0
- package/exampleForWebView/android/app/BUCK +0 -55
- package/exampleForWebView/android/app/build.gradle +0 -313
- package/exampleForWebView/android/app/build_defs.bzl +0 -19
- package/exampleForWebView/android/app/debug.keystore +0 -0
- package/exampleForWebView/android/app/proguard-rules.pro +0 -10
- package/exampleForWebView/android/app/src/debug/AndroidManifest.xml +0 -13
- package/exampleForWebView/android/app/src/debug/java/com/exampleforwebview/ReactNativeFlipper.java +0 -73
- package/exampleForWebView/android/app/src/main/AndroidManifest.xml +0 -26
- package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/MainActivity.java +0 -48
- package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/MainApplication.java +0 -91
- package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/MainApplicationReactNativeHost.java +0 -116
- package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/components/MainComponentsRegistry.java +0 -36
- package/exampleForWebView/android/app/src/main/java/com/exampleforwebview/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +0 -48
- package/exampleForWebView/android/app/src/main/jni/CMakeLists.txt +0 -7
- package/exampleForWebView/android/app/src/main/jni/MainApplicationModuleProvider.cpp +0 -32
- package/exampleForWebView/android/app/src/main/jni/MainApplicationModuleProvider.h +0 -16
- package/exampleForWebView/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +0 -45
- package/exampleForWebView/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +0 -38
- package/exampleForWebView/android/app/src/main/jni/MainComponentsRegistry.cpp +0 -65
- package/exampleForWebView/android/app/src/main/jni/MainComponentsRegistry.h +0 -32
- package/exampleForWebView/android/app/src/main/jni/OnLoad.cpp +0 -11
- package/exampleForWebView/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -36
- package/exampleForWebView/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/exampleForWebView/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/exampleForWebView/android/app/src/main/res/values/strings.xml +0 -3
- package/exampleForWebView/android/app/src/main/res/values/styles.xml +0 -9
- package/exampleForWebView/android/build.gradle +0 -51
- package/exampleForWebView/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/exampleForWebView/android/gradle/wrapper/gradle-wrapper.properties +0 -5
- package/exampleForWebView/android/gradle.properties +0 -40
- package/exampleForWebView/android/gradlew +0 -234
- package/exampleForWebView/android/gradlew.bat +0 -89
- package/exampleForWebView/android/settings.gradle +0 -11
- package/exampleForWebView/app.json +0 -4
- package/exampleForWebView/babel.config.js +0 -11
- package/exampleForWebView/index.js +0 -9
- package/exampleForWebView/ios/.xcode.env +0 -11
- package/exampleForWebView/ios/Podfile +0 -43
- package/exampleForWebView/ios/Podfile.lock +0 -748
- package/exampleForWebView/ios/exampleForWebView/AppDelegate.h +0 -8
- package/exampleForWebView/ios/exampleForWebView/AppDelegate.mm +0 -133
- package/exampleForWebView/ios/exampleForWebView/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
- package/exampleForWebView/ios/exampleForWebView/Images.xcassets/Contents.json +0 -6
- package/exampleForWebView/ios/exampleForWebView/Info.plist +0 -96
- package/exampleForWebView/ios/exampleForWebView/LaunchScreen.storyboard +0 -47
- package/exampleForWebView/ios/exampleForWebView/main.m +0 -10
- package/exampleForWebView/ios/exampleForWebView.xcodeproj/project.pbxproj +0 -723
- package/exampleForWebView/ios/exampleForWebView.xcodeproj/xcshareddata/xcschemes/exampleForWebView.xcscheme +0 -88
- package/exampleForWebView/ios/exampleForWebView.xcworkspace/contents.xcworkspacedata +0 -10
- package/exampleForWebView/ios/exampleForWebView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/exampleForWebView/ios/exampleForWebViewTests/Info.plist +0 -24
- package/exampleForWebView/ios/exampleForWebViewTests/exampleForWebViewTests.m +0 -66
- package/exampleForWebView/manuals/CERTIFICATION.md +0 -223
- package/exampleForWebView/manuals/PAYMENT.md +0 -232
- package/exampleForWebView/metro.config.js +0 -61
- package/exampleForWebView/package.json +0 -54
- package/exampleForWebView/src/App.tsx +0 -50
- package/exampleForWebView/src/Certification.tsx +0 -54
- package/exampleForWebView/src/Home.tsx +0 -49
- package/exampleForWebView/src/Loading.tsx +0 -23
- package/exampleForWebView/src/Payment.tsx +0 -65
- package/exampleForWebView/yarn.lock +0 -7362
- package/iamport-react-native.podspec +0 -19
- package/ios/IamportReactNative-Bridging-Header.h +0 -1
- package/ios/IamportReactNative.xcodeproj/project.pbxproj +0 -293
- package/ios/IamportReactNativeViewManager.m +0 -12
- package/ios/IamportReactNativeViewManager.swift +0 -32
- package/lib/commonjs/components/Certification/index.js +0 -121
- package/lib/commonjs/components/Certification/index.js.map +0 -1
- package/lib/commonjs/components/ErrorOnParams/index.js +0 -50
- package/lib/commonjs/components/ErrorOnParams/index.js.map +0 -1
- package/lib/commonjs/components/Loading/index.js +0 -34
- package/lib/commonjs/components/Loading/index.js.map +0 -1
- package/lib/commonjs/components/Payment/index.js +0 -225
- package/lib/commonjs/components/Payment/index.js.map +0 -1
- package/lib/commonjs/constants/index.js +0 -114
- package/lib/commonjs/constants/index.js.map +0 -1
- package/lib/commonjs/img/iamport-logo.png +0 -0
- package/lib/commonjs/index.js +0 -29
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/styles.js +0 -27
- package/lib/commonjs/styles.js.map +0 -1
- package/lib/commonjs/utils/IamportUrl.js +0 -289
- package/lib/commonjs/utils/IamportUrl.js.map +0 -1
- package/lib/commonjs/utils/Validation.js +0 -109
- package/lib/commonjs/utils/Validation.js.map +0 -1
- package/lib/commonjs/utils/ValidationForPayment.js +0 -112
- package/lib/commonjs/utils/ValidationForPayment.js.map +0 -1
- package/lib/typescript/components/Certification/index.d.ts.map +0 -1
- package/lib/typescript/components/ErrorOnParams/index.d.ts +0 -7
- package/lib/typescript/components/ErrorOnParams/index.d.ts.map +0 -1
- package/lib/typescript/components/Loading/index.d.ts +0 -4
- package/lib/typescript/components/Loading/index.d.ts.map +0 -1
- package/lib/typescript/components/Payment/index.d.ts.map +0 -1
- package/lib/typescript/constants/index.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/styles.d.ts.map +0 -1
- package/lib/typescript/utils/IamportUrl.d.ts.map +0 -1
- package/lib/typescript/utils/Validation.d.ts.map +0 -1
- package/lib/typescript/utils/ValidationForPayment.d.ts.map +0 -1
- package/manuals/CALLBACK.md +0 -72
- package/manuals/EXAMPLE.md +0 -168
- package/manuals/EXPO.md +0 -246
- package/manuals/INSTALL.md +0 -31
- package/manuals/SETTING.md +0 -140
- package/manuals/SUPPORT.md +0 -35
- package/manuals/TRANS.md +0 -77
- package/manuals/VERSION.md +0 -187
- package/manuals/assets/after-linking-iamport.png +0 -0
- package/manuals/assets/after-linking-webview.png +0 -0
- package/manuals/assets/allow-arbitrary.gif +0 -0
- package/manuals/assets/android-studio-avd-manager.png +0 -0
- package/manuals/assets/android-studio-build.png +0 -0
- package/manuals/assets/app-scheme-registry.gif +0 -0
- package/manuals/assets/expo-eject.png +0 -0
- package/manuals/assets/ios-emulator-certification.png +0 -0
- package/manuals/assets/ios-emulator-home.png +0 -0
- package/manuals/assets/ios-emulator-payment.png +0 -0
- package/manuals/assets/ios-trans-create-header-file-1.png +0 -0
- package/manuals/assets/ios-trans-create-header-file-2.png +0 -0
- package/manuals/assets/ios-trans-create-objectivec-file-1.png +0 -0
- package/manuals/assets/ios-trans-create-objectivec-file-2.png +0 -0
- package/manuals/assets/ios-trans-result.png +0 -0
- package/manuals/assets/webview-peer-dependency.png +0 -0
- package/scripts/bootstrap.js +0 -24
- package/tsconfig.build.json +0 -9
- package/tsconfig.json +0 -26
- package/yarn.lock +0 -6174
- /package/lib/typescript/{constants → src/constants}/index.d.ts +0 -0
- /package/lib/typescript/{index.d.ts → src/index.d.ts} +0 -0
- /package/lib/typescript/{utils → src/utils}/Validation.d.ts +0 -0
- /package/lib/typescript/{utils → src/utils}/ValidationForPayment.d.ts +0 -0
package/CHANGELOG.md
ADDED
package/README.md
CHANGED
|
@@ -1,42 +1,52 @@
|
|
|
1
1
|
# iamport-react-native
|
|
2
|
+
|
|
2
3
|
[](https://www.npmjs.com/package/iamport-react-native)
|
|
3
4
|
|
|
4
5
|
아임포트 리액트 네이티브 모듈입니다.
|
|
5
6
|
|
|
6
7
|
## 버전 정보
|
|
7
|
-
|
|
8
|
-
버전 히스토리는 [버전 정보](./
|
|
8
|
+
|
|
9
|
+
버전 히스토리는 [버전 정보](./CHANGELOG.md)를 참고하세요.
|
|
9
10
|
|
|
10
11
|
## 지원 정보
|
|
12
|
+
|
|
11
13
|
아임포트 리액트 네이티브 모듈은 결제 및 휴대폰 본인인증 기능을 제공합니다.
|
|
12
14
|
결제시 지원하는 PG사와 결제수단에 따른 자세한 정보는 [지원 정보](./manuals/SUPPORT.md)를 참고하세요.
|
|
13
15
|
|
|
14
16
|
## 설치하기
|
|
17
|
+
|
|
15
18
|
아래 명령어를 통해 아임포트 모듈을 귀하의 리액트 네이티브 프로젝트에 추가할 수 있습니다.
|
|
16
19
|
`react-native-webview` 모듈은 아임포트 모듈에 dependent하기 때문에 반드시 함께 설치해야 하며 **10.8.3 이상의 버전이 요구**됩니다.
|
|
17
20
|
보다 자세한 안내는 [설치하기](./manuals/INSTALL.md)를 참고하세요.
|
|
18
21
|
|
|
19
22
|
## 설정하기
|
|
23
|
+
|
|
20
24
|
### 안드로이드 및 iOS 설정하기
|
|
25
|
+
|
|
21
26
|
아임포트 모듈을 사용하기 위해서는 추가적인 설정이 필요합니다.
|
|
22
27
|
보다 자세한 설명은 [안드로이드 및 iOS 설정하기](./manuals/SETTING.md)를 참고하세요.
|
|
23
28
|
|
|
24
29
|
### Expo 설정하기
|
|
30
|
+
|
|
25
31
|
Expo 프로젝트에서 아임포트 모듈을 사용하기 위해서는 추가적인 설정이 필요합니다.
|
|
26
32
|
보다 자세한 설명은 [Expo에서 아임포트 연동하기](./manuals/EXPO.md)를 참고하세요.
|
|
27
33
|
|
|
28
34
|
### 실시간 계좌이체 설정하기
|
|
35
|
+
|
|
29
36
|
웹 표준 이니시스와 나이스 정보통신은 뱅크페이 앱을 통해 실시간 계좌이체를 진행합니다.
|
|
30
37
|
뱅크페이에서 결제 인증 후 본래의 앱으로 복귀 해 다음단계로 진행을 하려면 별도 설정이 요구됩니다.
|
|
31
38
|
자세한 내용은 [실시간 계좌이체 설정하기](./manuals/TRANS.md)를 참고하세요.
|
|
32
39
|
|
|
33
40
|
## 예제
|
|
41
|
+
|
|
34
42
|
아임포트 결제연동 모듈을 사용해 아래와 같이 일반/정기결제 및 휴대폰 본인인증 기능을 구현할 수 있습니다.
|
|
35
43
|
현재 구현된 예제들에 대한 설명 및 라이브러리 사용에 필요한 파라미터는 [예제](./manuals/EXAMPLE.md)를 참고하세요.
|
|
36
44
|
|
|
37
45
|
## 콜백 함수 설정하기
|
|
46
|
+
|
|
38
47
|
콜백 함수는 필수입력 필드로, 결제/본인인증 완료 후 routing을 통한 이동을 위해 아래와 같이 로직을 작성할 수 있습니다.
|
|
39
48
|
콜백 함수에 대한 자세한 설명은 [콜백 설정하기](./manuals/CALLBACK.md)를 참고하세요.
|
|
49
|
+
|
|
40
50
|
```js
|
|
41
51
|
function callback(response) {
|
|
42
52
|
navigation.replace('Result', response);
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createRef, useState } from 'react';
|
|
2
4
|
import { View } from 'react-native';
|
|
3
5
|
import { WebView } from 'react-native-webview';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import viewStyles from
|
|
9
|
-
import IamportUrl from
|
|
6
|
+
import ErrorOnParams from "../ErrorOnParams/index.js";
|
|
7
|
+
import Loading from "../Loading/index.js";
|
|
8
|
+
import { IMPConst } from "../../constants/index.js";
|
|
9
|
+
import { Validation } from "../../utils/Validation.js";
|
|
10
|
+
import viewStyles from "../../styles.js";
|
|
11
|
+
import IamportUrl from "../../utils/IamportUrl.js";
|
|
12
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
13
|
function Certification({
|
|
11
14
|
userCode,
|
|
12
15
|
tierCode,
|
|
@@ -28,84 +31,84 @@ function Certification({
|
|
|
28
31
|
loadingContainer,
|
|
29
32
|
webViewContainer
|
|
30
33
|
} = viewStyles;
|
|
31
|
-
return /*#__PURE__*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
(_webview$current = webview.current) === null || _webview$current === void 0 || _webview$current.injectJavaScript(`
|
|
34
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
35
|
+
children: /*#__PURE__*/_jsx(WebView, {
|
|
36
|
+
containerStyle: webViewContainer,
|
|
37
|
+
ref: webview,
|
|
38
|
+
source: {
|
|
39
|
+
html: IMPConst.WEBVIEW_SOURCE_HTML
|
|
40
|
+
},
|
|
41
|
+
mixedContentMode: 'always',
|
|
42
|
+
onLoadEnd: () => {
|
|
43
|
+
if (!isWebViewLoaded) {
|
|
44
|
+
// html이 load되고 최초 한번만 inject javascript
|
|
45
|
+
if (tierCode) {
|
|
46
|
+
webview.current?.injectJavaScript(`
|
|
45
47
|
setTimeout(function() { IMP.agency("${userCode}", "${tierCode}"); });
|
|
46
48
|
`);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
(_webview$current2 = webview.current) === null || _webview$current2 === void 0 || _webview$current2.injectJavaScript(`
|
|
49
|
+
} else {
|
|
50
|
+
webview.current?.injectJavaScript(`
|
|
50
51
|
setTimeout(function() { IMP.init("${userCode}"); });
|
|
51
52
|
`);
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
}
|
|
54
|
+
webview.current?.injectJavaScript(`
|
|
54
55
|
setTimeout(function() {
|
|
55
56
|
IMP.certification(${JSON.stringify(data)}, function(response) {
|
|
56
57
|
window.ReactNativeWebView.postMessage(JSON.stringify(response));
|
|
57
58
|
});
|
|
58
59
|
});
|
|
59
60
|
`);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
61
|
+
setIsWebViewLoaded(true);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
onMessage: e => {
|
|
65
|
+
let messageData = e.nativeEvent.data;
|
|
66
|
+
if (decodeURIComponent(messageData) !== messageData) {
|
|
67
|
+
messageData = decodeURIComponent(messageData);
|
|
68
|
+
}
|
|
69
|
+
let response = JSON.parse(messageData);
|
|
70
|
+
if (typeof callback === 'function') {
|
|
71
|
+
callback(response);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
startInLoadingState: true,
|
|
75
|
+
renderLoading: () => /*#__PURE__*/_jsx(View, {
|
|
76
|
+
style: loadingContainer,
|
|
77
|
+
children: loading || /*#__PURE__*/_jsx(Loading, {})
|
|
78
|
+
}),
|
|
79
|
+
originWhitelist: ['*'] // https://github.com/facebook/react-native/issues/19986
|
|
80
|
+
,
|
|
81
|
+
onShouldStartLoadWithRequest: request => {
|
|
82
|
+
const {
|
|
83
|
+
url
|
|
84
|
+
} = request;
|
|
85
|
+
// console.log('url: ' + url);
|
|
86
|
+
const iamportUrl = new IamportUrl(url);
|
|
87
|
+
if (iamportUrl.isAppUrl()) {
|
|
88
|
+
/* 3rd-party 앱 오픈 */
|
|
89
|
+
iamportUrl.launchApp().catch(e => {
|
|
90
|
+
const {
|
|
91
|
+
code,
|
|
92
|
+
message
|
|
93
|
+
} = e;
|
|
94
|
+
callback({
|
|
95
|
+
imp_success: false,
|
|
96
|
+
error_code: code,
|
|
97
|
+
error_msg: message
|
|
98
|
+
});
|
|
96
99
|
});
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
if (iamportUrl.isPaymentOver(redirectUrl)) {
|
|
103
|
+
callback(iamportUrl.getQuery());
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
103
107
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}));
|
|
108
|
+
})
|
|
109
|
+
});
|
|
107
110
|
}
|
|
108
|
-
return /*#__PURE__*/
|
|
111
|
+
return /*#__PURE__*/_jsx(ErrorOnParams, {
|
|
109
112
|
message: validation.getMessage()
|
|
110
113
|
});
|
|
111
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createRef","useState","View","WebView","ErrorOnParams","Loading","IMPConst","Validation","viewStyles","IamportUrl","jsx","_jsx","Fragment","_Fragment","Certification","userCode","tierCode","data","loading","callback","isWebViewLoaded","setIsWebViewLoaded","webview","validation","redirectUrl","M_REDIRECT_URL","m_redirect_url","undefined","trim","getIsValid","loadingContainer","webViewContainer","children","containerStyle","ref","source","html","WEBVIEW_SOURCE_HTML","mixedContentMode","onLoadEnd","current","injectJavaScript","JSON","stringify","onMessage","e","messageData","nativeEvent","decodeURIComponent","response","parse","startInLoadingState","renderLoading","style","originWhitelist","onShouldStartLoadWithRequest","request","url","iamportUrl","isAppUrl","launchApp","catch","code","message","imp_success","error_code","error_msg","isPaymentOver","getQuery","getMessage"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Certification/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Image, StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
5
|
const logo = require('../../img/iamport-logo.png');
|
|
4
6
|
function ErrorOnParams({
|
|
5
7
|
message
|
|
6
8
|
}) {
|
|
7
|
-
return /*#__PURE__*/
|
|
8
|
-
style: styles.container
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
10
|
+
style: styles.container,
|
|
11
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
12
|
+
source: logo
|
|
13
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
14
|
+
style: styles.text,
|
|
15
|
+
children: message
|
|
16
|
+
})]
|
|
17
|
+
});
|
|
14
18
|
}
|
|
15
19
|
const styles = StyleSheet.create({
|
|
16
20
|
container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Image","StyleSheet","Text","View","jsx","_jsx","jsxs","_jsxs","logo","require","ErrorOnParams","message","style","styles","container","children","source","text","create","flex","alignItems","justifyContent","textAlign","fontSize","marginTop","lineHeight","button","backgroundColor","color","borderColor","borderWidth","borderRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","fontWeight"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/ErrorOnParams/index.tsx"],"mappings":";;AAAA,SAASA,KAAK,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE7D,MAAMC,IAAI,GAAGC,OAAO,CAAC,4BAA4B,CAAC;AAIlD,SAASC,aAAaA,CAAC;EAAEC;AAAoB,CAAC,EAAE;EAC9C,oBACEJ,KAAA,CAACJ,IAAI;IAACS,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BV,IAAA,CAACL,KAAK;MAACgB,MAAM,EAAER;IAAK,CAAE,CAAC,eACvBH,IAAA,CAACH,IAAI;MAACU,KAAK,EAAEC,MAAM,CAACI,IAAK;MAAAF,QAAA,EAAEJ;IAAO,CAAO,CAAC;EAAA,CACtC,CAAC;AAEX;AAEA,MAAME,MAAM,GAAGZ,UAAU,CAACiB,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IACTK,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDJ,IAAI,EAAE;IACJK,SAAS,EAAE,QAAQ;IACnBC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE;EACd,CAAC;EACDC,MAAM,EAAE;IACNC,eAAe,EAAE,MAAM;IACvBC,KAAK,EAAE,SAAS;IAChBC,WAAW,EAAE,MAAM;IACnBC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE,CAAC;IACfC,UAAU,EAAE,EAAE;IACdC,aAAa,EAAE,EAAE;IACjBC,WAAW,EAAE,EAAE;IACfC,YAAY,EAAE,EAAE;IAChBZ,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbY,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEF,eAAe1B,aAAa","ignoreList":[]}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Image, StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
5
|
const logo = require('../../img/iamport-logo.png');
|
|
4
6
|
function Loading() {
|
|
5
|
-
return /*#__PURE__*/
|
|
6
|
-
style: styles.container
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
8
|
+
style: styles.container,
|
|
9
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
10
|
+
source: logo
|
|
11
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
12
|
+
style: styles.text,
|
|
13
|
+
children: "\uC7A0\uC2DC\uB9CC \uAE30\uB2E4\uB824\uC8FC\uC138\uC694..."
|
|
14
|
+
})]
|
|
15
|
+
});
|
|
12
16
|
}
|
|
13
17
|
const styles = StyleSheet.create({
|
|
14
18
|
container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Image","StyleSheet","Text","View","jsx","_jsx","jsxs","_jsxs","logo","require","Loading","style","styles","container","children","source","text","create","flex","alignItems","flexDirection","justifyContent","fontSize","marginTop","lineHeight"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Loading/index.tsx"],"mappings":";;AAAA,SAASA,KAAK,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE7D,MAAMC,IAAI,GAAGC,OAAO,CAAC,4BAA4B,CAAC;AAElD,SAASC,OAAOA,CAAA,EAAG;EACjB,oBACEH,KAAA,CAACJ,IAAI;IAACQ,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BT,IAAA,CAACL,KAAK;MAACe,MAAM,EAAEP;IAAK,CAAE,CAAC,eACvBH,IAAA,CAACH,IAAI;MAACS,KAAK,EAAEC,MAAM,CAACI,IAAK;MAAAF,QAAA,EAAC;IAAa,CAAM,CAAC;EAAA,CAC1C,CAAC;AAEX;AAEA,MAAMF,MAAM,GAAGX,UAAU,CAACgB,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IACTK,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,cAAc,EAAE;EAClB,CAAC;EACDL,IAAI,EAAE;IACJM,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEF,eAAed,OAAO","ignoreList":[]}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import { Linking, Platform, View } from 'react-native';
|
|
5
|
-
import { IMPConst } from '../../constants';
|
|
6
|
-
import IamportUrl from '../../utils/IamportUrl';
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createRef, useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { Alert, Linking, Platform, View } from 'react-native';
|
|
7
5
|
import WebView from 'react-native-webview';
|
|
8
|
-
import
|
|
9
|
-
import
|
|
6
|
+
import { IMPConst } from "../../constants/index.js";
|
|
7
|
+
import viewStyles from "../../styles.js";
|
|
8
|
+
import IamportUrl from "../../utils/IamportUrl.js";
|
|
9
|
+
import ValidationForPayment from "../../utils/ValidationForPayment.js";
|
|
10
|
+
import ErrorOnParams from "../ErrorOnParams/index.js";
|
|
11
|
+
import Loading from "../Loading/index.js";
|
|
12
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
13
|
function Payment({
|
|
11
14
|
userCode,
|
|
12
15
|
tierCode,
|
|
@@ -55,16 +58,15 @@ function Payment({
|
|
|
55
58
|
|
|
56
59
|
/* 나이스 - 실시간 계좌이체 대비 */
|
|
57
60
|
if (pg.startsWith('nice')) {
|
|
58
|
-
var _data$app_scheme, _webview$current;
|
|
59
61
|
const queryParameters = iamportUrl.getQuery();
|
|
60
62
|
const scheme = iamportUrl.scheme;
|
|
61
63
|
let niceTransRedirectionUrl;
|
|
62
|
-
if (scheme ===
|
|
64
|
+
if (scheme === data.app_scheme?.toLowerCase()) {
|
|
63
65
|
if (queryParameters.callbackparam1 != null) {
|
|
64
66
|
niceTransRedirectionUrl = queryParameters.callbackparam1;
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
|
-
|
|
69
|
+
webview.current?.injectJavaScript(`
|
|
68
70
|
window.location.href = "${niceTransRedirectionUrl}?${iamportUrl.getStringifiedQuery()}";
|
|
69
71
|
`);
|
|
70
72
|
}
|
|
@@ -109,107 +111,123 @@ function Payment({
|
|
|
109
111
|
loadingContainer,
|
|
110
112
|
webViewContainer
|
|
111
113
|
} = viewStyles;
|
|
112
|
-
return /*#__PURE__*/
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
114
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
115
|
+
children: [/*#__PURE__*/_jsx(WebView, {
|
|
116
|
+
containerStyle: webViewContainer,
|
|
117
|
+
ref: webview,
|
|
118
|
+
source: webviewSource,
|
|
119
|
+
mixedContentMode: 'always',
|
|
120
|
+
onError: event => {
|
|
121
|
+
console.warn('Encountered an error loading page', event.nativeEvent);
|
|
122
|
+
// 탐색이 실패하면 react-native-webview는 바로 오류 화면을 표시하려 한다
|
|
123
|
+
// 한편 별도 설정 안 한 WKWebView는 오류를 무시하여 결제를 계속 진행할 수 있는 경우가 있다
|
|
124
|
+
// 오류 화면 표시를 막는다
|
|
125
|
+
event.preventDefault();
|
|
126
|
+
// Domain=NSURLErrorDomain Code=-1005 Description="The network connection was lost."
|
|
127
|
+
// 지속적으로 폴링하는 카드사(현대카드)의 경우 카드사 앱에서 돌아올 때 HTTP 요청이 강제 중단되어 -1005 오류 발생
|
|
128
|
+
// 별도 설정 안 한 WKWebView에서 간헐적으로 자동 리다이렉트가 안 되고 버튼을 누르라고 하는 경우 이 경우이다
|
|
129
|
+
// 무시한다
|
|
130
|
+
if (Platform.OS === 'ios' || Platform.OS === 'macos' && event.nativeEvent.code === -1005) {
|
|
131
|
+
return;
|
|
122
132
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
133
|
+
// 이외의 경우에는 어떻게 처리해야 할지 확실하지 않지만 우선 알림을 보여 주도록 구현
|
|
134
|
+
Alert.alert(`탐색 오류가 발생했습니다\n도메인: ${event.nativeEvent.domain}\n오류 코드: ${event.nativeEvent.code}\n설명: ${event.nativeEvent.description}`);
|
|
135
|
+
},
|
|
136
|
+
onLoadEnd: () => {
|
|
137
|
+
if (!isWebViewLoaded) {
|
|
138
|
+
if (data.pg.startsWith('eximbay')) {
|
|
139
|
+
data.popup = false;
|
|
140
|
+
}
|
|
141
|
+
if (tierCode) {
|
|
142
|
+
webview.current?.injectJavaScript(`
|
|
126
143
|
setTimeout(function() { IMP.agency("${userCode}", "${tierCode}"); });
|
|
127
144
|
`);
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
(_webview$current3 = webview.current) === null || _webview$current3 === void 0 || _webview$current3.injectJavaScript(`
|
|
145
|
+
} else {
|
|
146
|
+
webview.current?.injectJavaScript(`
|
|
131
147
|
setTimeout(function() { IMP.init("${userCode}"); });
|
|
132
148
|
`);
|
|
133
|
-
|
|
134
|
-
|
|
149
|
+
}
|
|
150
|
+
webview.current?.injectJavaScript(`
|
|
135
151
|
setTimeout(function() {
|
|
136
152
|
IMP.request_pay(${JSON.stringify(data)}, function(response) {
|
|
137
153
|
window.ReactNativeWebView.postMessage(JSON.stringify(response));
|
|
138
154
|
});
|
|
139
155
|
});
|
|
140
156
|
`);
|
|
141
|
-
|
|
142
|
-
|
|
157
|
+
setIsWebViewLoaded(true);
|
|
158
|
+
}
|
|
143
159
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
/* PG사가 callback을 지원하는 경우, 결제결과를 받아 callback을 실행한다 */,
|
|
150
|
-
onMessage: e => {
|
|
151
|
-
/**
|
|
152
|
-
* [v1.6.0] 다날의 경우 response에 주문명(name)이 포함되어 있는데
|
|
153
|
-
* 주문명에 %가 들어갈 경우, decodeURIComponent시 URI malformed 에러가 발생하는 것 대비해
|
|
154
|
-
* 우선 encodeURIComponent를 한 후, decodeURIComponent가 끝나면
|
|
155
|
-
* 최종적으로 decodeURIComponent를 한 번 더 한다
|
|
156
|
-
*/
|
|
157
|
-
const encoded = encodeURIComponent(e.nativeEvent.data);
|
|
158
|
-
const decoded = decodeURIComponent(encoded);
|
|
159
|
-
const response = JSON.parse(decoded);
|
|
160
|
-
if (typeof callback === 'function') {
|
|
161
|
-
callback(response);
|
|
160
|
+
// only for Android
|
|
161
|
+
if (removeLoadingNeeded()) {
|
|
162
|
+
setShowLoading(false);
|
|
163
|
+
}
|
|
162
164
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
165
|
+
/* PG사가 callback을 지원하는 경우, 결제결과를 받아 callback을 실행한다 */,
|
|
166
|
+
onMessage: e => {
|
|
167
|
+
/**
|
|
168
|
+
* [v1.6.0] 다날의 경우 response에 주문명(name)이 포함되어 있는데
|
|
169
|
+
* 주문명에 %가 들어갈 경우, decodeURIComponent시 URI malformed 에러가 발생하는 것 대비해
|
|
170
|
+
* 우선 encodeURIComponent를 한 후, decodeURIComponent가 끝나면
|
|
171
|
+
* 최종적으로 decodeURIComponent를 한 번 더 한다
|
|
172
|
+
*/
|
|
173
|
+
const encoded = encodeURIComponent(e.nativeEvent.data);
|
|
174
|
+
const decoded = decodeURIComponent(encoded);
|
|
175
|
+
const response = JSON.parse(decoded);
|
|
174
176
|
if (typeof callback === 'function') {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
callback(response);
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
originWhitelist: ['*'] // https://github.com/facebook/react-native/issues/19986
|
|
181
|
+
,
|
|
182
|
+
sharedCookiesEnabled: true,
|
|
183
|
+
onShouldStartLoadWithRequest: request => {
|
|
184
|
+
const {
|
|
185
|
+
url
|
|
186
|
+
} = request;
|
|
187
|
+
// console.log(`url: ${url}`);
|
|
188
|
+
const iamportUrl = new IamportUrl(url);
|
|
189
|
+
if (iamportUrl.isPaymentOver(redirectUrl, data)) {
|
|
190
|
+
if (typeof callback === 'function') {
|
|
191
|
+
if (data.pg.startsWith('html5_inicis') && data.pay_method === 'trans' && Platform.OS === 'ios') {
|
|
192
|
+
callback(iamportUrl.getInicisTransQuery(redirectUrl));
|
|
193
|
+
} else {
|
|
194
|
+
callback(iamportUrl.getQuery());
|
|
195
|
+
}
|
|
179
196
|
}
|
|
197
|
+
return false;
|
|
180
198
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
error_msg: message
|
|
199
|
+
if (iamportUrl.isAppUrl()) {
|
|
200
|
+
/* 3rd-party 앱 오픈 */
|
|
201
|
+
iamportUrl.launchApp().catch(e => {
|
|
202
|
+
const {
|
|
203
|
+
code,
|
|
204
|
+
message
|
|
205
|
+
} = e;
|
|
206
|
+
callback({
|
|
207
|
+
imp_success: false,
|
|
208
|
+
error_code: code,
|
|
209
|
+
error_msg: message
|
|
210
|
+
});
|
|
194
211
|
});
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
if (isWebViewLoaded && showLoading && iamportUrl.isIframeLoaded()) {
|
|
215
|
+
/**
|
|
216
|
+
* only for IOS
|
|
217
|
+
* iframe이 load되면(url이 about:blank 또는 https://service.iamport.kr이 아니면)
|
|
218
|
+
* webview의 loading 상태를 해제한다
|
|
219
|
+
*/
|
|
220
|
+
setShowLoading(false);
|
|
221
|
+
}
|
|
222
|
+
return true;
|
|
205
223
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}
|
|
224
|
+
}), showLoading && /*#__PURE__*/_jsx(View, {
|
|
225
|
+
style: loadingContainer,
|
|
226
|
+
children: loading || /*#__PURE__*/_jsx(Loading, {})
|
|
227
|
+
})]
|
|
228
|
+
});
|
|
211
229
|
}
|
|
212
|
-
return /*#__PURE__*/
|
|
230
|
+
return /*#__PURE__*/_jsx(ErrorOnParams, {
|
|
213
231
|
message: validation.getMessage()
|
|
214
232
|
});
|
|
215
233
|
}
|