react-native-hyperswitch-dev-sdk 0.4.1
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/HyperswitchSdkReactNative.podspec +42 -0
- package/LICENSE +201 -0
- package/android/build.gradle +161 -0
- package/android/gradle.properties +5 -0
- package/android/hyperswitch_autolinking.gradle +378 -0
- package/android/proguard-rules.pro +72 -0
- package/android/src/legacy/java/com/facebook/react/viewmanagers/GooglePayButtonManagerDelegate.java +41 -0
- package/android/src/legacy/java/com/facebook/react/viewmanagers/GooglePayButtonManagerInterface.java +20 -0
- package/android/src/legacy/java/com/facebook/react/viewmanagers/NativePaymentWidgetManagerDelegate.java +38 -0
- package/android/src/legacy/java/com/facebook/react/viewmanagers/NativePaymentWidgetManagerInterface.java +21 -0
- package/android/src/legacy/java/com/hyperswitchsdkreactnative/NativeHyperswitchSdkNativeSpec.java +106 -0
- package/android/src/legacy/java/com/hyperswitchsdkreactnative/NativeHyperswitchSdkReactNativeSpec.java +77 -0
- package/android/src/legacy/java/com/hyperswitchsdkreactnative/NativePaymentWidgetNativeSpec.java +36 -0
- package/android/src/main/AndroidManifest.xml +15 -0
- package/android/src/main/assets/hyperswitch.bundle +1535 -0
- package/android/src/main/java/com/hyperswitchsdkreactnative/HyperswitchSdkReactNativePackage.kt +47 -0
- package/android/src/main/java/com/hyperswitchsdkreactnative/modules/NativePaymentWidgetModule.kt +173 -0
- package/android/src/main/java/com/hyperswitchsdkreactnative/modules/ReactNativeHyperswitchModule.kt +396 -0
- package/android/src/main/java/com/hyperswitchsdkreactnative/views/PaymentElementViewManager.kt +99 -0
- package/android/src/main/java/io/hyperswitch/HyperswitchReactPackageProvider.kt +19 -0
- package/android/src/main/java/io/hyperswitch/PaymentEventType.kt +18 -0
- package/android/src/main/java/io/hyperswitch/model/ElementConfiguration.kt +58 -0
- package/android/src/main/java/io/hyperswitch/paymentsession/ExitHeadlessCallBackManager.kt +47 -0
- package/android/src/main/java/io/hyperswitch/paymentsession/GetPaymentSessionCallBackManager.kt +23 -0
- package/android/src/main/java/io/hyperswitch/paymentsession/PaymentMethod.kt +167 -0
- package/android/src/main/java/io/hyperswitch/paymentsession/PaymentSessionHandler.kt +68 -0
- package/android/src/main/java/io/hyperswitch/paymentsession/PaymentSessionHandlerImpl.kt +179 -0
- package/android/src/main/java/io/hyperswitch/paymentsession/PaymentSessionReactLauncher.kt +226 -0
- package/android/src/main/java/io/hyperswitch/paymentsession/PaymentSheetCallbackManager.kt +40 -0
- package/android/src/main/java/io/hyperswitch/paymentsheet/PaymentResult.kt +63 -0
- package/android/src/main/java/io/hyperswitch/react/GooglePayButtonManager.kt +54 -0
- package/android/src/main/java/io/hyperswitch/react/HyperActivity.kt +73 -0
- package/android/src/main/java/io/hyperswitch/react/HyperEventEmitter.kt +144 -0
- package/android/src/main/java/io/hyperswitch/react/HyperFragment.kt +429 -0
- package/android/src/main/java/io/hyperswitch/react/HyperFragmentManager.kt +155 -0
- package/android/src/main/java/io/hyperswitch/react/HyperHeadlessModule.kt +43 -0
- package/android/src/main/java/io/hyperswitch/react/HyperModule.kt +405 -0
- package/android/src/main/java/io/hyperswitch/react/HyperPackage.kt +16 -0
- package/android/src/main/java/io/hyperswitch/react/ReactNativeController.kt +251 -0
- package/android/src/main/java/io/hyperswitch/utils/ConversionUtils.kt +256 -0
- package/android/src/main/java/io/hyperswitch/utils/StandardResult.kt +45 -0
- package/android/src/main/java/io/hyperswitch/view/GooglePayButtonView.kt +59 -0
- package/android/src/main/java/io/hyperswitch/view/PaymentWidgetView.kt +405 -0
- package/android/src/main/res/values/attrs.xml +6 -0
- package/android/src/main/res/values/strings.xml +5 -0
- package/android/src/main/res/values/theme.xml +16 -0
- package/ios/Modules/ReactNative/HyperswitchModule.swift +470 -0
- package/ios/Modules/ReactNative/HyperswitchSdkReactNative.h +5 -0
- package/ios/Modules/ReactNative/HyperswitchSdkReactNative.mm +121 -0
- package/ios/Modules/ReactNative/NativeHyperswitchModule.h +18 -0
- package/ios/Modules/ReactNative/NativeHyperswitchModule.mm +165 -0
- package/ios/Modules/ReactNative/NativeHyperswitchModuleImpl.swift +290 -0
- package/ios/Modules/ReactNative/NativePaymentElementModule.mm +129 -0
- package/ios/Views/Fabric/ApplePayView.h +14 -0
- package/ios/Views/Fabric/ApplePayView.mm +89 -0
- package/ios/Views/Fabric/NativePaymentElementView.h +21 -0
- package/ios/Views/Fabric/NativePaymentElementView.mm +200 -0
- package/ios/Views/Fabric/NativePaymentWidgetViewRegistry.h +37 -0
- package/ios/Views/Fabric/NativePaymentWidgetViewRegistry.m +45 -0
- package/ios/Views/Native/NativePaymentWidget.m +26 -0
- package/ios/Views/Native/NativePaymentWidget.swift +420 -0
- package/ios/hyperswitchSDK/Core/ApplePay/ApplePayHandler.swift +261 -0
- package/ios/hyperswitchSDK/Core/ApplePay/ApplePayViewManager.m +18 -0
- package/ios/hyperswitchSDK/Core/ApplePay/ApplePayViewManager.swift +126 -0
- package/ios/hyperswitchSDK/Core/DeviceDataCollection/HeadlessWebView.swift +144 -0
- package/ios/hyperswitchSDK/Core/HyperCVCWidget/CVCWidget.swift +136 -0
- package/ios/hyperswitchSDK/Core/HyperExpressCheckout/ExpressCheckoutLauncher.swift +116 -0
- package/ios/hyperswitchSDK/Core/HyperExpressCheckout/ExpressCheckoutWidget.swift +42 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentCardTextField/PaymentCardTextField+SwiftUI.swift +67 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentCardTextField/PaymentCardTextField.swift +44 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentCardTextField/PaymentHandler.swift +59 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentCardTextField/PaymentIntentParams.swift +31 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentCardTextField/PaymentMethodParams.swift +25 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentMethodManagement/PaymentManagementConfiguration.swift +213 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentMethodManagement/PaymentMethodManagementWidget.swift +92 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentSheet/PaymentSheet+Events.swift +36 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentSheet/PaymentSheetView+SwiftUI.swift +49 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentSheet/PaymentSheetView+UIKit.swift +49 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentSheet/PaymentSheetView.swift +68 -0
- package/ios/hyperswitchSDK/Core/HyperPaymentWidget/PaymentWidget.swift +212 -0
- package/ios/hyperswitchSDK/Core/HyperSession/PaymentSession+UIKit.swift +228 -0
- package/ios/hyperswitchSDK/Core/HyperSession/PaymentSessionTypes.swift +174 -0
- package/ios/hyperswitchSDK/Core/NativeModule/HyperHeadless.m +15 -0
- package/ios/hyperswitchSDK/Core/NativeModule/HyperHeadless.swift +108 -0
- package/ios/hyperswitchSDK/Core/NativeModule/HyperModule.m +31 -0
- package/ios/hyperswitchSDK/Core/NativeModule/HyperModule.swift +343 -0
- package/ios/hyperswitchSDK/Core/NativeModule/OTAServices.swift +117 -0
- package/ios/hyperswitchSDK/Core/NativeModule/RNHeadlessManager.swift +47 -0
- package/ios/hyperswitchSDK/Core/NativeModule/RNResponseHandler.swift +12 -0
- package/ios/hyperswitchSDK/Core/NativeModule/RNViewManager.swift +55 -0
- package/ios/hyperswitchSDK/Core/NativeModule/WidgetAction.swift +30 -0
- package/ios/hyperswitchSDK/Core/NativeModule/WidgetResponseRegistry.swift +92 -0
- package/ios/hyperswitchSDK/Core/NativeModule/hyper-Bridging-Header.h +12 -0
- package/ios/hyperswitchSDK/Core/Resources/HyperOTA.plist +20 -0
- package/ios/hyperswitchSDK/Core/Resources/hyperswitch.bundle +1531 -0
- package/ios/hyperswitchSDK/CoreLite/ApplePayHandlerLite.swift +251 -0
- package/ios/hyperswitchSDK/CoreLite/PaymentSession+Lite.swift +25 -0
- package/ios/hyperswitchSDK/CoreLite/PaymentSheetView+Lite.swift +45 -0
- package/ios/hyperswitchSDK/CoreLite/SwiftUI+Lite.swift +48 -0
- package/ios/hyperswitchSDK/CoreLite/WebViewController.swift +278 -0
- package/ios/hyperswitchSDK/Shared/APIClient.swift +22 -0
- package/ios/hyperswitchSDK/Shared/Codable+UIKit.swift +75 -0
- package/ios/hyperswitchSDK/Shared/CustomEndpointConfiguration.swift +67 -0
- package/ios/hyperswitchSDK/Shared/DictionaryConverter.swift +104 -0
- package/ios/hyperswitchSDK/Shared/Environment.swift +24 -0
- package/ios/hyperswitchSDK/Shared/Extensions.swift +101 -0
- package/ios/hyperswitchSDK/Shared/Helper.swift +40 -0
- package/ios/hyperswitchSDK/Shared/HyperEvents/PaymentEventData.swift +125 -0
- package/ios/hyperswitchSDK/Shared/HyperEvents/PaymentEventSubscriptionBuilder.swift +45 -0
- package/ios/hyperswitchSDK/Shared/HyperEvents/PaymentEventType.swift +30 -0
- package/ios/hyperswitchSDK/Shared/HyperNetworking.swift +151 -0
- package/ios/hyperswitchSDK/Shared/HyperParams.swift +44 -0
- package/ios/hyperswitchSDK/Shared/HyperUIViewController.swift +27 -0
- package/ios/hyperswitchSDK/Shared/Hyperswitch.swift +20 -0
- package/ios/hyperswitchSDK/Shared/HyperswitchConfigurationSchema.swift +54 -0
- package/ios/hyperswitchSDK/Shared/HyperswitchEnvironment.swift +11 -0
- package/ios/hyperswitchSDK/Shared/NativeLogger/Debouncer.swift +37 -0
- package/ios/hyperswitchSDK/Shared/NativeLogger/LogBuilder.swift +113 -0
- package/ios/hyperswitchSDK/Shared/NativeLogger/LogFileManager.swift +76 -0
- package/ios/hyperswitchSDK/Shared/NativeLogger/LogManager.swift +113 -0
- package/ios/hyperswitchSDK/Shared/NativeLogger/LogPayload.swift +91 -0
- package/ios/hyperswitchSDK/Shared/PaymentMethodType.swift +15 -0
- package/ios/hyperswitchSDK/Shared/PaymentSession.swift +98 -0
- package/ios/hyperswitchSDK/Shared/PaymentSessionConfiguration.swift +14 -0
- package/ios/hyperswitchSDK/Shared/PaymentSheet.swift +33 -0
- package/ios/hyperswitchSDK/Shared/PaymentSheetAppearance+Codable.swift +182 -0
- package/ios/hyperswitchSDK/Shared/PaymentSheetAppearance.swift +238 -0
- package/ios/hyperswitchSDK/Shared/PaymentSheetConfiguration.swift +161 -0
- package/ios/hyperswitchSDK/Shared/SDKParams.swift +43 -0
- package/ios/hyperswitchSDK/Shared/SavedPaymentMethodsConfiguration.swift +20 -0
- package/ios/hyperswitchSDK/Shared/SwiftUIManager.swift +28 -0
- package/ios/hyperswitchSDK/Shared/Version.swift +12 -0
- package/lib/bs/JuspayTechReactNativeHyperswitch.cmi +0 -0
- package/lib/bs/JuspayTechReactNativeHyperswitch.cmj +0 -0
- package/lib/bs/JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/JuspayTechReactNativeHyperswitch.mlmap +0 -0
- package/lib/bs/build.ninja +8 -0
- package/lib/bs/install.ninja +9 -0
- package/lib/bs/src/context/HyperProvider-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/context/WidgetRegistry-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/core/Hyper-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/core/HyperElements-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/hooks/usePaymentSession-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/hooks/useWidget-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/modules/NativeHyperswitchSdk-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/types/HyperTypes-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/types/NativeModuleTypes-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/types/PaymentSheetConfiguration-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/utils/AppearanceTransformer-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/utils/EventValidator-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/utils/NewArchUtils-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/utils/PaymentSheetEventManager-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/utils/ReactNativeUtils-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/utils/ResponseHandler-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/views/CVCElement-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/views/NativePaymentWidget-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/views/NativePaymentWidgetImpl-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/bs/src/views/PaymentElement-JuspayTechReactNativeHyperswitch.cmt +0 -0
- package/lib/commonjs/index.bundle.js +2 -0
- package/lib/commonjs/index.bundle.js.map +1 -0
- package/lib/module/index.bundle.js +2 -0
- package/lib/module/index.bundle.js.map +1 -0
- package/lib/typescript/babel.config.d.ts +10 -0
- package/lib/typescript/babel.config.d.ts.map +1 -0
- package/lib/typescript/eslint.config.d.mts +3 -0
- package/lib/typescript/eslint.config.d.mts.map +1 -0
- package/lib/typescript/rollup.config.d.ts +23 -0
- package/lib/typescript/rollup.config.d.ts.map +1 -0
- package/lib/typescript/scripts/bootstrap.d.ts +2 -0
- package/lib/typescript/scripts/bootstrap.d.ts.map +1 -0
- package/lib/typescript/src/context/Elements.d.ts +7 -0
- package/lib/typescript/src/context/Elements.d.ts.map +1 -0
- package/lib/typescript/src/context/HyperElements.d.ts +23 -0
- package/lib/typescript/src/context/HyperElements.d.ts.map +1 -0
- package/lib/typescript/src/context/PaymentSession.d.ts +15 -0
- package/lib/typescript/src/context/PaymentSession.d.ts.map +1 -0
- package/lib/typescript/src/context/SavedPaymentMethods.d.ts +5 -0
- package/lib/typescript/src/context/SavedPaymentMethods.d.ts.map +1 -0
- package/lib/typescript/src/context/WidgetRegistry.d.ts +8 -0
- package/lib/typescript/src/context/WidgetRegistry.d.ts.map +1 -0
- package/lib/typescript/src/context/hooks.d.ts +5 -0
- package/lib/typescript/src/context/hooks.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +10 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/modules/NativeHyperswitchSdk.d.ts +61 -0
- package/lib/typescript/src/modules/NativeHyperswitchSdk.d.ts.map +1 -0
- package/lib/typescript/src/specs/ApplePayViewNativeComponent.d.ts +10 -0
- package/lib/typescript/src/specs/ApplePayViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeHyperHeadless.d.ts +14 -0
- package/lib/typescript/src/specs/NativeHyperHeadless.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeHyperswitchModule.d.ts +32 -0
- package/lib/typescript/src/specs/NativeHyperswitchModule.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeHyperswitchSdkNative.d.ts +33 -0
- package/lib/typescript/src/specs/NativeHyperswitchSdkNative.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativePaymentElementModule.d.ts +9 -0
- package/lib/typescript/src/specs/NativePaymentElementModule.d.ts.map +1 -0
- package/lib/typescript/src/specs/PaymentElementNativeComponent.d.ts +19 -0
- package/lib/typescript/src/specs/PaymentElementNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/utils.d.ts +15 -0
- package/lib/typescript/src/specs/utils.d.ts.map +1 -0
- package/lib/typescript/src/types/NativeModuleTypes.d.ts +67 -0
- package/lib/typescript/src/types/NativeModuleTypes.d.ts.map +1 -0
- package/lib/typescript/src/types/PaymentSheetConfiguration.d.ts +255 -0
- package/lib/typescript/src/types/PaymentSheetConfiguration.d.ts.map +1 -0
- package/lib/typescript/src/types/definitions.d.ts +85 -0
- package/lib/typescript/src/types/definitions.d.ts.map +1 -0
- package/lib/typescript/src/types/elements/index.d.ts +23 -0
- package/lib/typescript/src/types/elements/index.d.ts.map +1 -0
- package/lib/typescript/src/types/paymentresult/index.d.ts +5 -0
- package/lib/typescript/src/types/paymentresult/index.d.ts.map +1 -0
- package/lib/typescript/src/types/savedPaymentMethods/index.d.ts +69 -0
- package/lib/typescript/src/types/savedPaymentMethods/index.d.ts.map +1 -0
- package/lib/typescript/src/utils/EventValidator.d.ts +9 -0
- package/lib/typescript/src/utils/EventValidator.d.ts.map +1 -0
- package/lib/typescript/src/utils/InitializationState.d.ts +13 -0
- package/lib/typescript/src/utils/InitializationState.d.ts.map +1 -0
- package/lib/typescript/src/utils/LaunchOptions.d.ts +7 -0
- package/lib/typescript/src/utils/LaunchOptions.d.ts.map +1 -0
- package/lib/typescript/src/utils/NewArchUtils.d.ts +7 -0
- package/lib/typescript/src/utils/NewArchUtils.d.ts.map +1 -0
- package/lib/typescript/src/utils/ReactNativeUtils.d.ts +3 -0
- package/lib/typescript/src/utils/ReactNativeUtils.d.ts.map +1 -0
- package/lib/typescript/src/views/CVCElement.d.ts +15 -0
- package/lib/typescript/src/views/CVCElement.d.ts.map +1 -0
- package/lib/typescript/src/views/NativePaymentWidget.d.ts +3 -0
- package/lib/typescript/src/views/NativePaymentWidget.d.ts.map +1 -0
- package/lib/typescript/src/views/NativePaymentWidgetImpl.d.ts +5 -0
- package/lib/typescript/src/views/NativePaymentWidgetImpl.d.ts.map +1 -0
- package/lib/typescript/src/views/PaymentElement.d.ts +18 -0
- package/lib/typescript/src/views/PaymentElement.d.ts.map +1 -0
- package/package.json +184 -0
- package/src/context/Elements.ts +80 -0
- package/src/context/HyperElements.tsx +81 -0
- package/src/context/PaymentSession.ts +121 -0
- package/src/context/SavedPaymentMethods.ts +80 -0
- package/src/context/WidgetRegistry.ts +74 -0
- package/src/context/hooks.ts +79 -0
- package/src/index.ts +53 -0
- package/src/modules/NativeHyperswitchSdk.ts +155 -0
- package/src/specs/ApplePayViewNativeComponent.ts +11 -0
- package/src/specs/NativeHyperHeadless.ts +22 -0
- package/src/specs/NativeHyperswitchModule.ts +51 -0
- package/src/specs/NativeHyperswitchSdkNative.ts +62 -0
- package/src/specs/NativePaymentElementModule.ts +25 -0
- package/src/specs/PaymentElementNativeComponent.ts +21 -0
- package/src/specs/utils.ts +15 -0
- package/src/types/NativeModuleTypes.ts +73 -0
- package/src/types/PaymentSheetConfiguration.ts +360 -0
- package/src/types/definitions.ts +109 -0
- package/src/types/elements/index.ts +33 -0
- package/src/types/paymentresult/index.ts +4 -0
- package/src/types/savedPaymentMethods/index.ts +74 -0
- package/src/utils/EventValidator.ts +39 -0
- package/src/utils/InitializationState.ts +28 -0
- package/src/utils/LaunchOptions.ts +41 -0
- package/src/utils/NewArchUtils.ts +18 -0
- package/src/utils/ReactNativeUtils.ts +13 -0
- package/src/views/CVCElement.tsx +122 -0
- package/src/views/NativePaymentWidget.ts +2 -0
- package/src/views/NativePaymentWidgetImpl.ts +16 -0
- package/src/views/PaymentElement.tsx +189 -0
- package/tsconfig.build.json +21 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#import "ApplePayView.h"
|
|
2
|
+
#import <PassKit/PassKit.h>
|
|
3
|
+
|
|
4
|
+
#import <react/renderer/components/HyperswitchSdkReactNativeSpec/ComponentDescriptors.h>
|
|
5
|
+
#import <react/renderer/components/HyperswitchSdkReactNativeSpec/EventEmitters.h>
|
|
6
|
+
#import <react/renderer/components/HyperswitchSdkReactNativeSpec/Props.h>
|
|
7
|
+
#import <react/renderer/components/HyperswitchSdkReactNativeSpec/RCTComponentViewHelpers.h>
|
|
8
|
+
|
|
9
|
+
#import "RCTFabricComponentsPlugins.h"
|
|
10
|
+
|
|
11
|
+
using namespace facebook::react;
|
|
12
|
+
|
|
13
|
+
@interface ApplePayView () <RCTApplePayViewViewProtocol>
|
|
14
|
+
|
|
15
|
+
@property (nonatomic, strong, nullable) PKPaymentButton *button;
|
|
16
|
+
|
|
17
|
+
@end
|
|
18
|
+
|
|
19
|
+
@implementation ApplePayView {
|
|
20
|
+
PKPaymentButton *_paymentButton;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
24
|
+
{
|
|
25
|
+
return concreteComponentDescriptorProvider<ApplePayViewComponentDescriptor>();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
29
|
+
{
|
|
30
|
+
if (self = [super initWithFrame:frame]) {
|
|
31
|
+
static const auto defaultProps = std::make_shared<const ApplePayViewProps>();
|
|
32
|
+
_props = defaultProps;
|
|
33
|
+
|
|
34
|
+
[self setupDefaultButton];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return self;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
- (void)setupDefaultButton {
|
|
41
|
+
[self setupButtonWithType:PKPaymentButtonTypePlain style:PKPaymentButtonStyleBlack cornerRadius:4.0];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
- (void)setupButtonWithType:(PKPaymentButtonType)type style:(PKPaymentButtonStyle)style cornerRadius:(CGFloat)cornerRadius {
|
|
45
|
+
[_paymentButton removeFromSuperview];
|
|
46
|
+
|
|
47
|
+
_paymentButton = [[PKPaymentButton alloc] initWithPaymentButtonType:type paymentButtonStyle:style];
|
|
48
|
+
_paymentButton.cornerRadius = cornerRadius;
|
|
49
|
+
|
|
50
|
+
// [_paymentButton addTarget:self action:@selector(applePayButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
|
|
51
|
+
|
|
52
|
+
[self addSubview:_paymentButton];
|
|
53
|
+
self.contentView = _paymentButton;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
- (PKPaymentButtonType)paymentButtonTypeFromString:(NSString *)type {
|
|
57
|
+
if ([type isEqualToString:@"buy"]) return PKPaymentButtonTypeBuy;
|
|
58
|
+
if ([type isEqualToString:@"setUp"]) return PKPaymentButtonTypeSetUp;
|
|
59
|
+
if ([type isEqualToString:@"inStore"]) return PKPaymentButtonTypeInStore;
|
|
60
|
+
if ([type isEqualToString:@"donate"]) return PKPaymentButtonTypeDonate;
|
|
61
|
+
if ([type isEqualToString:@"checkout"]) return PKPaymentButtonTypeCheckout;
|
|
62
|
+
if ([type isEqualToString:@"book"]) return PKPaymentButtonTypeBook;
|
|
63
|
+
if ([type isEqualToString:@"subscribe"]) return PKPaymentButtonTypeSubscribe;
|
|
64
|
+
return PKPaymentButtonTypePlain;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
- (PKPaymentButtonStyle)paymentButtonStyleFromString:(NSString *)style {
|
|
68
|
+
if ([style isEqualToString:@"white"]) return PKPaymentButtonStyleWhite;
|
|
69
|
+
if ([style isEqualToString:@"whiteOutline"]) return PKPaymentButtonStyleWhiteOutline;
|
|
70
|
+
return PKPaymentButtonStyleBlack;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps
|
|
75
|
+
{
|
|
76
|
+
[super updateProps:props oldProps:oldProps];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
- (void)layoutSubviews {
|
|
80
|
+
[super layoutSubviews];
|
|
81
|
+
_paymentButton.frame = self.bounds;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
Class<RCTComponentViewProtocol> ApplePayViewCls(void)
|
|
85
|
+
{
|
|
86
|
+
return ApplePayView.class;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NativePaymentElementView.h
|
|
3
|
+
//
|
|
4
|
+
// Fabric (New Architecture) component for RCTNativePaymentElement.
|
|
5
|
+
// Matches Android's PaymentElementViewManager (view name "RCTNativePaymentElement").
|
|
6
|
+
//
|
|
7
|
+
// Old arch uses requireNativeComponent('NativePaymentWidget') → NativePaymentWidget.swift
|
|
8
|
+
// New arch uses codegenNativeComponent('RCTNativePaymentElement') → this file
|
|
9
|
+
//
|
|
10
|
+
|
|
11
|
+
#pragma once
|
|
12
|
+
#import <React/RCTViewComponentView.h>
|
|
13
|
+
#import <UIKit/UIKit.h>
|
|
14
|
+
|
|
15
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
16
|
+
|
|
17
|
+
@interface NativePaymentElementView : RCTViewComponentView
|
|
18
|
+
|
|
19
|
+
@end
|
|
20
|
+
|
|
21
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NativePaymentElementView.mm
|
|
3
|
+
//
|
|
4
|
+
// Fabric (New Architecture) host view for the PaymentElement and CVCWidget.
|
|
5
|
+
// Component name: "RCTNativePaymentElement" (matches PaymentElementNativeComponent.ts)
|
|
6
|
+
//
|
|
7
|
+
// Architecture:
|
|
8
|
+
// ┌─────────────────────────────────────────────────────────────────────┐
|
|
9
|
+
// │ NativePaymentElementView (RCTViewComponentView — Fabric host) │
|
|
10
|
+
// │ • receives props via updateProps (widgetType, sdkAuth, options) │
|
|
11
|
+
// │ • fires events via Fabric RCTNativePaymentElementEventEmitter │
|
|
12
|
+
// │ └── NativePaymentWidgetView (inner UIView — actual widget) │
|
|
13
|
+
// │ • shared with the old-arch NativePaymentWidget ViewManager │
|
|
14
|
+
// │ • registered in NativePaymentWidgetViewRegistry by tag │
|
|
15
|
+
// └─────────────────────────────────────────────────────────────────────┘
|
|
16
|
+
//
|
|
17
|
+
// The NativePaymentWidgetViewRegistry registration lets the old-arch view
|
|
18
|
+
// manager commands (confirmPayment, updateIntentInitForWidget, etc.) AND the
|
|
19
|
+
// NativePaymentElementModule TurboModule find the inner widget by React tag.
|
|
20
|
+
//
|
|
21
|
+
|
|
22
|
+
#import "NativePaymentElementView.h"
|
|
23
|
+
#import "NativePaymentWidgetViewRegistry.h"
|
|
24
|
+
|
|
25
|
+
#import <react/renderer/components/HyperswitchSdkReactNativeSpec/ComponentDescriptors.h>
|
|
26
|
+
#import <react/renderer/components/HyperswitchSdkReactNativeSpec/EventEmitters.h>
|
|
27
|
+
#import <react/renderer/components/HyperswitchSdkReactNativeSpec/Props.h>
|
|
28
|
+
#import <react/renderer/components/HyperswitchSdkReactNativeSpec/RCTComponentViewHelpers.h>
|
|
29
|
+
#import "RCTFabricComponentsPlugins.h"
|
|
30
|
+
|
|
31
|
+
#if __has_include("HyperswitchSdkReactNative-Swift.h")
|
|
32
|
+
#import "HyperswitchSdkReactNative-Swift.h"
|
|
33
|
+
#else
|
|
34
|
+
#import <HyperswitchSdkReactNative/HyperswitchSdkReactNative-Swift.h>
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
using namespace facebook::react;
|
|
38
|
+
|
|
39
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
40
|
+
// Helper: folly::dynamic (object) → NSDictionary via JSON round-trip
|
|
41
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
42
|
+
static NSDictionary * _Nullable dynamicToDict(const folly::dynamic &dyn)
|
|
43
|
+
{
|
|
44
|
+
if (!dyn.isObject() && !dyn.isArray()) {
|
|
45
|
+
return nil;
|
|
46
|
+
}
|
|
47
|
+
NSString *json = [NSString stringWithUTF8String:folly::toJson(dyn).c_str()];
|
|
48
|
+
NSData *data = [json dataUsingEncoding:NSUTF8StringEncoding];
|
|
49
|
+
id obj = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
|
|
50
|
+
return [obj isKindOfClass:[NSDictionary class]] ? (NSDictionary *)obj : nil;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
54
|
+
// Helper: NSDictionary → folly::dynamic via JSON round-trip
|
|
55
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
56
|
+
static folly::dynamic dictToDynamic(NSDictionary * _Nullable dict)
|
|
57
|
+
{
|
|
58
|
+
if (!dict) return folly::dynamic::object();
|
|
59
|
+
NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:nil];
|
|
60
|
+
if (!data) return folly::dynamic::object();
|
|
61
|
+
NSString *json = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
|
62
|
+
if (!json) return folly::dynamic::object();
|
|
63
|
+
return folly::parseJson(std::string([json UTF8String]));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
67
|
+
@interface NativePaymentElementView () <RCTRCTNativePaymentElementViewProtocol>
|
|
68
|
+
@end
|
|
69
|
+
|
|
70
|
+
@implementation NativePaymentElementView {
|
|
71
|
+
NativePaymentWidgetView *_widgetView;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// ── Fabric component descriptor ──────────────────────────────────────────────
|
|
75
|
+
|
|
76
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
77
|
+
{
|
|
78
|
+
return concreteComponentDescriptorProvider<RCTNativePaymentElementComponentDescriptor>();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// ── Lifecycle ────────────────────────────────────────────────────────────────
|
|
82
|
+
|
|
83
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
84
|
+
{
|
|
85
|
+
if (self = [super initWithFrame:frame]) {
|
|
86
|
+
_widgetView = [[NativePaymentWidgetView alloc] initWithFrame:frame];
|
|
87
|
+
[self addSubview:_widgetView];
|
|
88
|
+
[self setupEventForwarding];
|
|
89
|
+
}
|
|
90
|
+
return self;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
- (void)prepareForRecycle
|
|
94
|
+
{
|
|
95
|
+
[super prepareForRecycle];
|
|
96
|
+
// Remove the inner view from the Fabric registry so that dangling tag lookups fail
|
|
97
|
+
// cleanly. The tag is the same integer as self.tag.
|
|
98
|
+
[[NativePaymentWidgetViewRegistry shared] unregisterForTag:@(self.tag)];
|
|
99
|
+
_widgetView.onPaymentResult = nil;
|
|
100
|
+
_widgetView.onPaymentEvent = nil;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
- (void)willMoveToWindow:(nullable UIWindow *)newWindow
|
|
104
|
+
{
|
|
105
|
+
[super willMoveToWindow:newWindow];
|
|
106
|
+
if (newWindow == nil) {
|
|
107
|
+
[[NativePaymentWidgetViewRegistry shared] unregisterForTag:@(self.tag)];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// ── Props ────────────────────────────────────────────────────────────────────
|
|
112
|
+
|
|
113
|
+
- (void)updateProps:(Props::Shared const &)props
|
|
114
|
+
oldProps:(Props::Shared const &)oldProps
|
|
115
|
+
{
|
|
116
|
+
const auto &p = *std::static_pointer_cast<RCTNativePaymentElementProps const>(props);
|
|
117
|
+
|
|
118
|
+
NSString *widgetType = [NSString stringWithUTF8String:p.widgetType.c_str()];
|
|
119
|
+
NSString *sdkAuth = [NSString stringWithUTF8String:p.sdkAuthorization.c_str()];
|
|
120
|
+
|
|
121
|
+
_widgetView.widgetType = widgetType.length > 0 ? widgetType : nil;
|
|
122
|
+
_widgetView.sdkAuthorization = sdkAuth.length > 0 ? sdkAuth : nil;
|
|
123
|
+
|
|
124
|
+
// options is a folly::dynamic (arbitrary JS object). Convert → NSDictionary.
|
|
125
|
+
if (!p.options.isNull()) {
|
|
126
|
+
NSDictionary *optDict = dynamicToDict(p.options);
|
|
127
|
+
if (optDict) {
|
|
128
|
+
_widgetView.options = optDict;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Notify the inner view that all props have been applied (mirrors
|
|
133
|
+
// the old-arch bridge calling didSetProps:changedProps: after KVC sets).
|
|
134
|
+
[_widgetView didSetProps];
|
|
135
|
+
|
|
136
|
+
// Register the inner widget view in the shared registry keyed by this
|
|
137
|
+
// component's React tag, so that NativePaymentWidget view-manager commands
|
|
138
|
+
// and NativePaymentElementModule TurboModule can find it by tag.
|
|
139
|
+
[[NativePaymentWidgetViewRegistry shared] registerView:_widgetView forTag:@(self.tag)];
|
|
140
|
+
|
|
141
|
+
[super updateProps:props oldProps:oldProps];
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// ── Layout ───────────────────────────────────────────────────────────────────
|
|
145
|
+
|
|
146
|
+
- (void)layoutSubviews
|
|
147
|
+
{
|
|
148
|
+
[super layoutSubviews];
|
|
149
|
+
_widgetView.frame = self.bounds;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// ── Event forwarding (inner UIView → Fabric event emitter) ───────────────────
|
|
153
|
+
|
|
154
|
+
- (void)setupEventForwarding
|
|
155
|
+
{
|
|
156
|
+
__weak NativePaymentElementView *weakSelf = self;
|
|
157
|
+
|
|
158
|
+
// onPaymentResult: fired by NativePaymentWidgetView when a payment completes.
|
|
159
|
+
_widgetView.onPaymentResult = ^(NSDictionary *event) {
|
|
160
|
+
NativePaymentElementView *strongSelf = weakSelf;
|
|
161
|
+
if (!strongSelf) return;
|
|
162
|
+
|
|
163
|
+
auto em = std::dynamic_pointer_cast<const RCTNativePaymentElementEventEmitter>(
|
|
164
|
+
strongSelf->_eventEmitter);
|
|
165
|
+
if (!em) return;
|
|
166
|
+
|
|
167
|
+
NSString *result = event[@"result"] ?: @"";
|
|
168
|
+
RCTNativePaymentElementEventEmitter::OnPaymentResult payload;
|
|
169
|
+
payload.result = std::string([result UTF8String]);
|
|
170
|
+
em->onPaymentResult(std::move(payload));
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
// onPaymentEvent: fired for all intermediate payment events.
|
|
174
|
+
_widgetView.onPaymentEvent = ^(NSDictionary *event) {
|
|
175
|
+
NativePaymentElementView *strongSelf = weakSelf;
|
|
176
|
+
if (!strongSelf) return;
|
|
177
|
+
|
|
178
|
+
auto em = std::dynamic_pointer_cast<const RCTNativePaymentElementEventEmitter>(
|
|
179
|
+
strongSelf->_eventEmitter);
|
|
180
|
+
if (!em) return;
|
|
181
|
+
|
|
182
|
+
NSString *eventName = event[@"eventName"] ?: @"";
|
|
183
|
+
id payloadObj = event[@"payload"];
|
|
184
|
+
|
|
185
|
+
RCTNativePaymentElementEventEmitter::OnPaymentEvent paymentEvent;
|
|
186
|
+
paymentEvent.eventName = std::string([eventName UTF8String]);
|
|
187
|
+
if ([payloadObj isKindOfClass:[NSDictionary class]]) {
|
|
188
|
+
paymentEvent.payload = dictToDynamic((NSDictionary *)payloadObj);
|
|
189
|
+
}
|
|
190
|
+
em->onPaymentEvent(std::move(paymentEvent));
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@end
|
|
195
|
+
|
|
196
|
+
// Required by RCTFabricComponentsPlugins to auto-register the component.
|
|
197
|
+
Class<RCTComponentViewProtocol> NativePaymentElementViewCls(void)
|
|
198
|
+
{
|
|
199
|
+
return NativePaymentElementView.class;
|
|
200
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NativePaymentWidgetViewRegistry.h
|
|
3
|
+
//
|
|
4
|
+
// Shared tag → UIView registry that bridges the old-arch NativePaymentWidget view manager
|
|
5
|
+
// and the new-arch (Fabric) NativePaymentElementView component.
|
|
6
|
+
//
|
|
7
|
+
// Old arch: NativePaymentWidget view manager's commands (confirmPayment, etc.) use
|
|
8
|
+
// bridge.uiManager which finds NativePaymentWidgetView directly.
|
|
9
|
+
//
|
|
10
|
+
// New arch: The Fabric NativePaymentElementView wraps an inner NativePaymentWidgetView.
|
|
11
|
+
// The React tag resolves to the Fabric host view, not the inner widget view.
|
|
12
|
+
// This registry lets commands find the inner NativePaymentWidgetView by tag.
|
|
13
|
+
//
|
|
14
|
+
|
|
15
|
+
#pragma once
|
|
16
|
+
#import <UIKit/UIKit.h>
|
|
17
|
+
|
|
18
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
19
|
+
|
|
20
|
+
@interface NativePaymentWidgetViewRegistry : NSObject
|
|
21
|
+
|
|
22
|
+
/// Shared singleton.
|
|
23
|
+
+ (instancetype)shared;
|
|
24
|
+
|
|
25
|
+
/// Register the inner NativePaymentWidgetView for a given React tag.
|
|
26
|
+
/// The registry holds a weak reference so deallocation is automatic.
|
|
27
|
+
- (void)registerView:(UIView *)view forTag:(NSNumber *)tag;
|
|
28
|
+
|
|
29
|
+
/// Remove the entry for the given React tag.
|
|
30
|
+
- (void)unregisterForTag:(NSNumber *)tag;
|
|
31
|
+
|
|
32
|
+
/// Return the inner NativePaymentWidgetView (or nil if none registered / already deallocated).
|
|
33
|
+
- (nullable UIView *)viewForTag:(NSNumber *)tag;
|
|
34
|
+
|
|
35
|
+
@end
|
|
36
|
+
|
|
37
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NativePaymentWidgetViewRegistry.m
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#import "NativePaymentWidgetViewRegistry.h"
|
|
6
|
+
|
|
7
|
+
@implementation NativePaymentWidgetViewRegistry {
|
|
8
|
+
// Weak values so views are removed automatically when deallocated.
|
|
9
|
+
NSMapTable<NSNumber *, UIView *> *_map;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
+ (instancetype)shared {
|
|
13
|
+
static NativePaymentWidgetViewRegistry *sInstance = nil;
|
|
14
|
+
static dispatch_once_t sOnce;
|
|
15
|
+
dispatch_once(&sOnce, ^{
|
|
16
|
+
sInstance = [[NativePaymentWidgetViewRegistry alloc] init];
|
|
17
|
+
});
|
|
18
|
+
return sInstance;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
- (instancetype)init {
|
|
22
|
+
if (self = [super init]) {
|
|
23
|
+
// Strong keys (NSNumber is value-like), weak object values.
|
|
24
|
+
_map = [NSMapTable strongToWeakObjectsMapTable];
|
|
25
|
+
}
|
|
26
|
+
return self;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
- (void)registerView:(UIView *)view forTag:(NSNumber *)tag {
|
|
30
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
31
|
+
[self->_map setObject:view forKey:tag];
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
- (void)unregisterForTag:(NSNumber *)tag {
|
|
36
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
37
|
+
[self->_map removeObjectForKey:tag];
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
- (nullable UIView *)viewForTag:(NSNumber *)tag {
|
|
42
|
+
return [_map objectForKey:tag];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NativePaymentWidget.m
|
|
3
|
+
// Hyperswitch
|
|
4
|
+
//
|
|
5
|
+
// Created by Harshit Srivastava on 05/03/26.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <React/RCTViewManager.h>
|
|
9
|
+
#import <React/RCTUIManager.h>
|
|
10
|
+
#import <React/RCTLog.h>
|
|
11
|
+
|
|
12
|
+
@interface RCT_EXTERN_MODULE(NativePaymentWidget, RCTViewManager)
|
|
13
|
+
|
|
14
|
+
RCT_EXPORT_VIEW_PROPERTY(widgetType, NSString)
|
|
15
|
+
RCT_EXPORT_VIEW_PROPERTY(options, NSDictionary)
|
|
16
|
+
RCT_EXPORT_VIEW_PROPERTY(sdkAuthorization, NSString)
|
|
17
|
+
RCT_EXPORT_VIEW_PROPERTY(onPaymentEvent, RCTDirectEventBlock)
|
|
18
|
+
RCT_EXPORT_VIEW_PROPERTY(onPaymentResult, RCTDirectEventBlock)
|
|
19
|
+
|
|
20
|
+
RCT_EXTERN_METHOD(showWidget:(nonnull NSNumber *)reactTag)
|
|
21
|
+
RCT_EXTERN_METHOD(removeWidget:(nonnull NSNumber *)reactTag)
|
|
22
|
+
RCT_EXTERN_METHOD(confirmPayment:(nonnull NSNumber *)reactTag :(RCTResponseSenderBlock)responseCallback)
|
|
23
|
+
RCT_EXTERN_METHOD(updateIntentInitForWidget:(nonnull NSNumber *)rootTag :(RCTResponseSenderBlock)responseCallback)
|
|
24
|
+
RCT_EXTERN_METHOD(updateIntentCompleteForWidget:(nonnull NSNumber *)rootTag :(NSString)sdkAuthorization :(RCTResponseSenderBlock)responseCallback)
|
|
25
|
+
RCT_EXTERN_METHOD(confirmPaymentCVC:(nonnull NSNumber *)reactTag :(NSString)paymentToken :(NSString)paymentMethodId :(RCTResponseSenderBlock)rnCallback)
|
|
26
|
+
@end
|