Skip to content

Commit 1fb5969

Browse files
committed
VAL2 Feature
1 parent ad1b221 commit 1fb5969

3 files changed

Lines changed: 15 additions & 2 deletions

File tree

android/src/main/java/com/appsflyer/reactnative/RNAppsFlyerModule.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
import com.appsflyer.share.CrossPromotionHelper;
2626
import com.appsflyer.share.LinkGenerator;
2727
import com.appsflyer.share.ShareInviteHelper;
28+
import com.appsflyer.AFPurchaseDetails;
29+
import com.appsflyer.AFPurchaseType;
30+
import com.appsflyer.AppsFlyerInAppPurchaseValidationCallback;
2831
import com.facebook.react.bridge.Callback;
2932
import com.facebook.react.bridge.Promise;
3033
import com.facebook.react.bridge.ReactApplicationContext;
@@ -785,7 +788,7 @@ public void validateAndLogInAppPurchaseV2(ReadableMap purchaseDetails, ReadableM
785788

786789
// Convert purchaseType string to AFPurchaseType enum
787790
AFPurchaseType afPurchaseType;
788-
if ("subscription".equals(purchaseType)) {
791+
if ("subscription".equals(purchaseType.rawValue())) {
789792
afPurchaseType = AFPurchaseType.SUBSCRIPTION;
790793
} else {
791794
afPurchaseType = AFPurchaseType.ONE_TIME_PURCHASE;

index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -845,6 +845,12 @@ appsFlyer.disableCollectASA = (shouldDisable) => {
845845
return RNAppsFlyer.disableCollectASA(shouldDisable);
846846
};
847847

848+
// Export AFPurchaseType enum for the new validateAndLogInAppPurchase API
849+
export const AFPurchaseType = {
850+
SUBSCRIPTION: "subscription",
851+
ONE_TIME_PURCHASE: "one-time-purchase"
852+
};
853+
848854
/**
849855
* Validate and log in-app purchase with support for both legacy and new APIs.
850856
*
@@ -856,6 +862,10 @@ appsFlyer.disableCollectASA = (shouldDisable) => {
856862
* - Otherwise, uses legacy API
857863
*/
858864
appsFlyer.validateAndLogInAppPurchase = (param1, param2, param3) => {
865+
// Debug: Check if native methods exist
866+
console.log('[AppsFlyer] RNAppsFlyer methods:', Object.keys(RNAppsFlyer));
867+
console.log('[AppsFlyer] validateAndLogInAppPurchaseV2 exists:', typeof RNAppsFlyer.validateAndLogInAppPurchaseV2);
868+
859869
// Detect which API to use based on the first parameter
860870
if (param1 && typeof param1 === 'object' && param1.purchaseType) {
861871
// New API: (purchaseDetails, additionalParameters, callback)

ios/RNAppsFlyer.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,7 @@ - (BOOL)isExpoApp {
604604

605605
}
606606

607-
RCT_EXPORT_METHOD(validateAndLogInAppPurchaseV2: (NSDictionary*)purchaseDetails
607+
RCT_EXPORT_METHOD(validateAndLogInAppPurchaseV2:(NSDictionary*)purchaseDetails
608608
additionalParameters:(NSDictionary*)additionalParameters
609609
callback:(RCTResponseSenderBlock)callback) {
610610

0 commit comments

Comments
 (0)