diff --git a/android/src/main/java/com/airwallexpaymentreactnative/AirwallexPaymentReactNativeModule.kt b/android/src/main/java/com/airwallexpaymentreactnative/AirwallexPaymentReactNativeModule.kt index 30cccca..3793bf4 100644 --- a/android/src/main/java/com/airwallexpaymentreactnative/AirwallexPaymentReactNativeModule.kt +++ b/android/src/main/java/com/airwallexpaymentreactnative/AirwallexPaymentReactNativeModule.kt @@ -11,6 +11,7 @@ import com.airwallex.android.core.AirwallexPaymentSession import com.airwallex.android.core.AirwallexPaymentStatus import com.airwallex.android.core.AirwallexSession import com.airwallex.android.core.Environment +import com.airwallex.android.core.log.AnalyticsLogger import com.airwallex.android.core.log.AirwallexLogger import com.airwallex.android.googlepay.GooglePayComponent import com.airwallex.android.redirect.RedirectComponent @@ -48,6 +49,7 @@ class AirwallexPaymentReactNativeModule(private val reactContext: ReactApplicati environment: String, enableLogging: Boolean, saveLogToLocal: Boolean, + frameworkVersion: String, promise: Promise ) { try { @@ -70,6 +72,8 @@ class AirwallexPaymentReactNativeModule(private val reactContext: ReactApplicati ) .build() ) + AnalyticsLogger.initialize(application) + AnalyticsLogger.updateExtraCommonData(mapOf("framework" to "rn", "frameworkVersion" to frameworkVersion)) promise.resolve(null) } } ?: run { diff --git a/ios/AirwallexSdk.m b/ios/AirwallexSdk.m index e54e87a..000c139 100644 --- a/ios/AirwallexSdk.m +++ b/ios/AirwallexSdk.m @@ -7,6 +7,7 @@ @interface RCT_EXTERN_MODULE(AirwallexSdk, RCTEventEmitter) initialize:(NSString *)environment enableLogging:(BOOL)enableLogging saveLogToLocal:(BOOL)saveLogToLocal + frameworkVersion:(NSString *)frameworkVersion ) RCT_EXTERN_METHOD( diff --git a/ios/AirwallexSdk.swift b/ios/AirwallexSdk.swift index 0a2e034..413f447 100644 --- a/ios/AirwallexSdk.swift +++ b/ios/AirwallexSdk.swift @@ -8,12 +8,13 @@ class AirwallexSdk: RCTEventEmitter { private var paymentConsentID: String? private var paymentSessionHandler: PaymentSessionHandler? - @objc(initialize:enableLogging:saveLogToLocal:) - func initialize(environment: String, enableLogging: Bool, saveLogToLocal: Bool) { + @objc(initialize:enableLogging:saveLogToLocal:frameworkVersion:) + func initialize(environment: String, enableLogging: Bool, saveLogToLocal: Bool, frameworkVersion: String) { if let mode = AirwallexSDKMode.from(environment) { Airwallex.setMode(mode) AWXAPIClientConfiguration.shared() } + AnalyticsLogger.shared().bindExtraCommonData(["framework": "rn", "frameworkVersion": frameworkVersion]) } @objc(presentEntirePaymentFlow:resolver:rejecter:) diff --git a/src/NativeAirwallexSdk.tsx b/src/NativeAirwallexSdk.tsx index 8cd9ea3..a20aa36 100644 --- a/src/NativeAirwallexSdk.tsx +++ b/src/NativeAirwallexSdk.tsx @@ -7,7 +7,8 @@ type NativeAirwallexSdkType = { initialize( environment: 'staging' | 'demo' | 'production', enableLogging: boolean, - saveLogToLocal: boolean + saveLogToLocal: boolean, + frameworkVersion: string ): void; presentEntirePaymentFlow(session: PaymentSession): Promise; diff --git a/src/functions.ts b/src/functions.ts index 850bfc3..27a75c3 100644 --- a/src/functions.ts +++ b/src/functions.ts @@ -1,3 +1,4 @@ +import { version } from '../package.json'; import { transformKeysToSnakeCase } from './helpers'; import NativeAirwallexSdk from './NativeAirwallexSdk'; import type { PaymentConsent, PaymentSession } from './types'; @@ -15,7 +16,8 @@ export const initialize = ( return NativeAirwallexSdk.initialize( environment, enableLogging, - saveLogToLocal + saveLogToLocal, + version ); };