react-native-iap 14.7.17 → 14.7.19

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.
@@ -22,6 +22,7 @@ class HybridRnIap: HybridRnIapSpec {
22
22
  private var deliveredPurchaseEventKeys: Set<String> = []
23
23
  private var deliveredPurchaseEventOrder: [String] = []
24
24
  private let purchaseEventDedupLimit = 128
25
+ private static let duplicatePurchaseCode = "duplicate-purchase"
25
26
  private var purchasePayloadById: [String: [String: Any]] = [:]
26
27
  // Thread safety lock for listener arrays and error dedup state
27
28
  private let listenerLock = NSLock()
@@ -1042,6 +1043,14 @@ class HybridRnIap: HybridRnIapSpec {
1042
1043
 
1043
1044
  if isDuplicate {
1044
1045
  RnIapLog.warn("Duplicate purchase update skipped for \(purchase.productId)")
1046
+ let error = NitroPurchaseResult(
1047
+ responseCode: -1,
1048
+ debugMessage: nil,
1049
+ code: HybridRnIap.duplicatePurchaseCode,
1050
+ message: "Duplicate purchase update skipped for \(purchase.productId). Use restorePurchases or getAvailablePurchases to recover.",
1051
+ purchaseToken: nil
1052
+ )
1053
+ sendPurchaseError(error, productId: purchase.productId)
1045
1054
  return
1046
1055
  }
1047
1056
 
@@ -6,7 +6,7 @@ import { Platform } from 'react-native';
6
6
  import { RnIapConsole } from "../utils/debug.js";
7
7
 
8
8
  // Internal modules
9
- import { initConnection, purchaseErrorListener, purchaseUpdatedListener, promotedProductListenerIOS, getAvailablePurchases, finishTransaction as finishTransactionInternal, requestPurchase as requestPurchaseInternal, fetchProducts, validateReceipt as validateReceiptInternal, verifyPurchase as verifyPurchaseTopLevel, verifyPurchaseWithProvider as verifyPurchaseWithProviderTopLevel, getActiveSubscriptions, hasActiveSubscriptions, restorePurchases as restorePurchasesTopLevel, getPromotedProductIOS, requestPurchaseOnPromotedProductIOS, checkAlternativeBillingAvailabilityAndroid, showAlternativeBillingDialogAndroid, createAlternativeBillingTokenAndroid, userChoiceBillingListenerAndroid, isStandardIOS } from "../index.js";
9
+ import { initConnection, purchaseErrorListener, purchaseUpdatedListener, promotedProductListenerIOS, getAvailablePurchases, finishTransaction as finishTransactionInternal, requestPurchase as requestPurchaseInternal, fetchProducts, validateReceipt as validateReceiptInternal, verifyPurchase as verifyPurchaseTopLevel, verifyPurchaseWithProvider as verifyPurchaseWithProviderTopLevel, getActiveSubscriptions, hasActiveSubscriptions, syncIOS, getPromotedProductIOS, requestPurchaseOnPromotedProductIOS, checkAlternativeBillingAvailabilityAndroid, showAlternativeBillingDialogAndroid, createAlternativeBillingTokenAndroid, userChoiceBillingListenerAndroid, isStandardIOS } from "../index.js";
10
10
 
11
11
  // Types
12
12
  import { ErrorCode } from "../types.js";
@@ -99,11 +99,12 @@ export function useIAP(options) {
99
99
  invokeOnError(error);
100
100
  }
101
101
  }, [mergeWithDuplicateCheck, invokeOnError]);
102
- const getAvailablePurchasesInternal = useCallback(async _skus => {
102
+ const getAvailablePurchasesInternal = useCallback(async options => {
103
103
  try {
104
104
  const result = await getAvailablePurchases({
105
- alsoPublishToEventListenerIOS: false,
106
- onlyIncludeActiveItemsIOS: true
105
+ alsoPublishToEventListenerIOS: options?.alsoPublishToEventListenerIOS ?? false,
106
+ onlyIncludeActiveItemsIOS: options?.onlyIncludeActiveItemsIOS ?? true,
107
+ includeSuspendedAndroid: options?.includeSuspendedAndroid ?? false
107
108
  });
108
109
  setAvailablePurchases(result);
109
110
  } catch (error) {
@@ -142,9 +143,17 @@ export function useIAP(options) {
142
143
  const requestPurchase = useCallback(async requestObj => {
143
144
  await requestPurchaseInternal(requestObj);
144
145
  }, []);
145
-
146
- // No local restorePurchases; use the top-level helper via returned API
147
-
146
+ const restorePurchases = useCallback(async options => {
147
+ try {
148
+ if (Platform.OS === 'ios') {
149
+ await syncIOS();
150
+ }
151
+ await getAvailablePurchasesInternal(options);
152
+ } catch (error) {
153
+ RnIapConsole.warn('Failed to restore purchases:', error);
154
+ invokeOnError(error);
155
+ }
156
+ }, [getAvailablePurchasesInternal, invokeOnError]);
148
157
  const validateReceipt = useCallback(async options => validateReceiptInternal(options), []);
149
158
  const verifyPurchase = useCallback(async options => {
150
159
  return verifyPurchaseTopLevel(options);
@@ -152,9 +161,9 @@ export function useIAP(options) {
152
161
  const verifyPurchaseWithProvider = useCallback(async options => {
153
162
  return verifyPurchaseWithProviderTopLevel(options);
154
163
  }, []);
155
- const initIapWithSubscriptions = useCallback(async () => {
156
- // Initialize connection with config
157
- // Prefer enableBillingProgramAndroid over deprecated alternativeBillingModeAndroid
164
+
165
+ // Shared helper: build Android billing config from options
166
+ const buildAndroidConfig = useCallback(() => {
158
167
  let config;
159
168
  if (Platform.OS === 'android') {
160
169
  if (optionsRef.current?.enableBillingProgramAndroid) {
@@ -162,32 +171,18 @@ export function useIAP(options) {
162
171
  enableBillingProgramAndroid: optionsRef.current.enableBillingProgramAndroid
163
172
  };
164
173
  } else if (optionsRef.current?.alternativeBillingModeAndroid) {
165
- // Deprecated: use alternativeBillingModeAndroid for backwards compatibility
166
174
  config = {
167
175
  alternativeBillingModeAndroid: optionsRef.current.alternativeBillingModeAndroid
168
176
  };
169
177
  }
170
178
  }
171
- try {
172
- // Initialize connection FIRST to ensure Nitro is ready
173
- // This fixes tvOS where Nitro may initialize later than iOS
174
- const result = await initConnection(config);
175
-
176
- // Check if component unmounted during async initConnection
177
- // to prevent listener leaks
178
- if (!isMountedRef.current) {
179
- return;
180
- }
181
- setConnected(result);
182
- if (!result) {
183
- RnIapConsole.warn('[useIAP] initConnection returned false');
184
- return;
185
- }
179
+ return config;
180
+ }, []);
186
181
 
187
- // Register listeners AFTER initConnection succeeds
188
- // This ensures Nitro runtime is fully initialized
182
+ // Shared helper: register event listeners if not already active
183
+ const registerListeners = useCallback(() => {
184
+ if (!subscriptionsRef.current.purchaseUpdate) {
189
185
  subscriptionsRef.current.purchaseUpdate = purchaseUpdatedListener(async purchase => {
190
- // Always refresh subscription state after a purchase event
191
186
  try {
192
187
  await getActiveSubscriptionsInternal();
193
188
  await getAvailablePurchasesInternal();
@@ -198,9 +193,9 @@ export function useIAP(options) {
198
193
  optionsRef.current.onPurchaseSuccess(purchase);
199
194
  }
200
195
  });
196
+ }
197
+ if (!subscriptionsRef.current.purchaseError) {
201
198
  subscriptionsRef.current.purchaseError = purchaseErrorListener(error => {
202
- // error is already normalized by purchaseErrorListener in src/index.ts
203
- // Ignore init error until connected
204
199
  if (error.code === ErrorCode.InitConnection && !connectedRef.current) {
205
200
  return;
206
201
  }
@@ -208,53 +203,92 @@ export function useIAP(options) {
208
203
  optionsRef.current.onPurchaseError(error);
209
204
  }
210
205
  });
206
+ }
207
+ if (isStandardIOS() && !subscriptionsRef.current.promotedProductIOS) {
208
+ subscriptionsRef.current.promotedProductIOS = promotedProductListenerIOS(product => {
209
+ setPromotedProductIOS(product);
210
+ if (optionsRef.current?.onPromotedProductIOS) {
211
+ optionsRef.current.onPromotedProductIOS(product);
212
+ }
213
+ });
214
+ }
215
+ if (Platform.OS === 'android' && optionsRef.current?.onUserChoiceBillingAndroid && !subscriptionsRef.current.userChoiceBillingAndroid) {
216
+ subscriptionsRef.current.userChoiceBillingAndroid = userChoiceBillingListenerAndroid(details => {
217
+ if (optionsRef.current?.onUserChoiceBillingAndroid) {
218
+ optionsRef.current.onUserChoiceBillingAndroid(details);
219
+ }
220
+ });
221
+ }
222
+ }, [getActiveSubscriptionsInternal, getAvailablePurchasesInternal]);
211
223
 
212
- // iOS promoted products listener (only supported on standard iOS, not tvOS/macOS)
213
- if (isStandardIOS()) {
214
- subscriptionsRef.current.promotedProductIOS = promotedProductListenerIOS(product => {
215
- setPromotedProductIOS(product);
216
- if (optionsRef.current?.onPromotedProductIOS) {
217
- optionsRef.current.onPromotedProductIOS(product);
218
- }
219
- });
224
+ // Shared helper: clean up all listeners
225
+ const cleanupListeners = useCallback(() => {
226
+ subscriptionsRef.current.purchaseUpdate?.remove();
227
+ subscriptionsRef.current.purchaseError?.remove();
228
+ subscriptionsRef.current.promotedProductIOS?.remove();
229
+ subscriptionsRef.current.userChoiceBillingAndroid?.remove();
230
+ subscriptionsRef.current.purchaseUpdate = undefined;
231
+ subscriptionsRef.current.purchaseError = undefined;
232
+ subscriptionsRef.current.promotedProductIOS = undefined;
233
+ subscriptionsRef.current.userChoiceBillingAndroid = undefined;
234
+ }, []);
235
+ const initIapWithSubscriptions = useCallback(async () => {
236
+ const config = buildAndroidConfig();
237
+ try {
238
+ const result = await initConnection(config);
239
+ if (!isMountedRef.current) {
240
+ return;
220
241
  }
221
-
222
- // Add user choice billing listener for Android (if provided)
223
- if (Platform.OS === 'android' && optionsRef.current?.onUserChoiceBillingAndroid) {
224
- subscriptionsRef.current.userChoiceBillingAndroid = userChoiceBillingListenerAndroid(details => {
225
- if (optionsRef.current?.onUserChoiceBillingAndroid) {
226
- optionsRef.current.onUserChoiceBillingAndroid(details);
227
- }
228
- });
242
+ if (!result) {
243
+ setConnected(false);
244
+ RnIapConsole.warn('[useIAP] initConnection returned false');
245
+ return;
229
246
  }
247
+ registerListeners();
248
+ setConnected(true);
230
249
  } catch (error) {
231
250
  RnIapConsole.error('initConnection failed:', error);
251
+ cleanupListeners();
252
+ if (isMountedRef.current) {
253
+ setConnected(false);
254
+ }
232
255
  invokeOnError(error);
233
- // Clean up listeners on error (if any were registered)
234
- subscriptionsRef.current.purchaseUpdate?.remove();
235
- subscriptionsRef.current.purchaseError?.remove();
236
- subscriptionsRef.current.promotedProductIOS?.remove();
237
- subscriptionsRef.current.userChoiceBillingAndroid?.remove();
238
- subscriptionsRef.current.purchaseUpdate = undefined;
239
- subscriptionsRef.current.purchaseError = undefined;
240
- subscriptionsRef.current.promotedProductIOS = undefined;
241
- subscriptionsRef.current.userChoiceBillingAndroid = undefined;
242
256
  }
243
- }, [getActiveSubscriptionsInternal, getAvailablePurchasesInternal, invokeOnError]);
257
+ }, [buildAndroidConfig, registerListeners, cleanupListeners, invokeOnError]);
258
+ const reconnect = useCallback(async () => {
259
+ const config = buildAndroidConfig();
260
+ try {
261
+ const result = await initConnection(config);
262
+ if (!isMountedRef.current) {
263
+ return false;
264
+ }
265
+ if (result) {
266
+ registerListeners();
267
+ setConnected(true);
268
+ return true;
269
+ }
270
+ setConnected(false);
271
+ return false;
272
+ } catch (error) {
273
+ RnIapConsole.error('[useIAP] reconnect failed:', error);
274
+ cleanupListeners();
275
+ if (isMountedRef.current) {
276
+ setConnected(false);
277
+ }
278
+ invokeOnError(error);
279
+ return false;
280
+ }
281
+ }, [buildAndroidConfig, registerListeners, cleanupListeners, invokeOnError]);
244
282
  useEffect(() => {
245
283
  isMountedRef.current = true;
246
284
  initIapWithSubscriptions();
247
- const currentSubscriptions = subscriptionsRef.current;
248
285
  return () => {
249
286
  isMountedRef.current = false;
250
- currentSubscriptions.purchaseUpdate?.remove();
251
- currentSubscriptions.purchaseError?.remove();
252
- currentSubscriptions.promotedProductIOS?.remove();
253
- currentSubscriptions.userChoiceBillingAndroid?.remove();
287
+ cleanupListeners();
254
288
  // Keep connection alive across screens to avoid race conditions
255
289
  setConnected(false);
256
290
  };
257
- }, [initIapWithSubscriptions]);
291
+ }, [initIapWithSubscriptions, cleanupListeners]);
258
292
  return {
259
293
  connected,
260
294
  products,
@@ -269,19 +303,12 @@ export function useIAP(options) {
269
303
  validateReceipt,
270
304
  verifyPurchase,
271
305
  verifyPurchaseWithProvider,
272
- restorePurchases: async () => {
273
- try {
274
- await restorePurchasesTopLevel();
275
- await getAvailablePurchasesInternal();
276
- } catch (error) {
277
- RnIapConsole.warn('Failed to restore purchases:', error);
278
- invokeOnError(error);
279
- }
280
- },
306
+ restorePurchases,
281
307
  getPromotedProductIOS,
282
308
  requestPurchaseOnPromotedProductIOS,
283
309
  getActiveSubscriptions: getActiveSubscriptionsInternal,
284
310
  hasActiveSubscriptions: hasActiveSubscriptionsInternal,
311
+ reconnect,
285
312
  // Alternative billing (Android only)
286
313
  ...(Platform.OS === 'android' ? {
287
314
  checkAlternativeBillingAvailabilityAndroid,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","useRef","Platform","RnIapConsole","initConnection","purchaseErrorListener","purchaseUpdatedListener","promotedProductListenerIOS","getAvailablePurchases","finishTransaction","finishTransactionInternal","requestPurchase","requestPurchaseInternal","fetchProducts","validateReceipt","validateReceiptInternal","verifyPurchase","verifyPurchaseTopLevel","verifyPurchaseWithProvider","verifyPurchaseWithProviderTopLevel","getActiveSubscriptions","hasActiveSubscriptions","restorePurchases","restorePurchasesTopLevel","getPromotedProductIOS","requestPurchaseOnPromotedProductIOS","checkAlternativeBillingAvailabilityAndroid","showAlternativeBillingDialogAndroid","createAlternativeBillingTokenAndroid","userChoiceBillingListenerAndroid","isStandardIOS","ErrorCode","useIAP","options","connected","setConnected","products","setProducts","subscriptions","setSubscriptions","availablePurchases","setAvailablePurchases","promotedProductIOS","setPromotedProductIOS","activeSubscriptions","setActiveSubscriptions","optionsRef","connectedRef","mergeWithDuplicateCheck","existingItems","newItems","getKey","merged","forEach","newItem","isDuplicate","some","existingItem","push","current","subscriptionsRef","isMountedRef","subscriptionsRefState","invokeOnError","error","onError","Error","String","fetchProductsInternal","params","warn","requestType","type","debug","skus","result","items","prevSubscriptions","subscription","id","newProducts","filter","item","newSubscriptions","prevProducts","product","getAvailablePurchasesInternal","_skus","alsoPublishToEventListenerIOS","onlyIncludeActiveItemsIOS","getActiveSubscriptionsInternal","subscriptionIds","hasActiveSubscriptionsInternal","args","requestObj","initIapWithSubscriptions","config","OS","enableBillingProgramAndroid","alternativeBillingModeAndroid","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseError","code","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","remove","undefined","currentSubscriptions"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useState","useRef","Platform","RnIapConsole","initConnection","purchaseErrorListener","purchaseUpdatedListener","promotedProductListenerIOS","getAvailablePurchases","finishTransaction","finishTransactionInternal","requestPurchase","requestPurchaseInternal","fetchProducts","validateReceipt","validateReceiptInternal","verifyPurchase","verifyPurchaseTopLevel","verifyPurchaseWithProvider","verifyPurchaseWithProviderTopLevel","getActiveSubscriptions","hasActiveSubscriptions","syncIOS","getPromotedProductIOS","requestPurchaseOnPromotedProductIOS","checkAlternativeBillingAvailabilityAndroid","showAlternativeBillingDialogAndroid","createAlternativeBillingTokenAndroid","userChoiceBillingListenerAndroid","isStandardIOS","ErrorCode","useIAP","options","connected","setConnected","products","setProducts","subscriptions","setSubscriptions","availablePurchases","setAvailablePurchases","promotedProductIOS","setPromotedProductIOS","activeSubscriptions","setActiveSubscriptions","optionsRef","connectedRef","mergeWithDuplicateCheck","existingItems","newItems","getKey","merged","forEach","newItem","isDuplicate","some","existingItem","push","current","subscriptionsRef","isMountedRef","subscriptionsRefState","invokeOnError","error","onError","Error","String","fetchProductsInternal","params","warn","requestType","type","debug","skus","result","items","prevSubscriptions","subscription","id","newProducts","filter","item","newSubscriptions","prevProducts","product","getAvailablePurchasesInternal","alsoPublishToEventListenerIOS","onlyIncludeActiveItemsIOS","includeSuspendedAndroid","getActiveSubscriptionsInternal","subscriptionIds","hasActiveSubscriptionsInternal","args","requestObj","restorePurchases","OS","buildAndroidConfig","config","enableBillingProgramAndroid","alternativeBillingModeAndroid","registerListeners","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseError","code","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","cleanupListeners","remove","undefined","initIapWithSubscriptions","reconnect"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":"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","ignoreList":[]}
@@ -518,14 +518,17 @@ export const getAvailablePurchases = async options => {
518
518
  return validPurchases.map(convertNitroPurchaseToPurchase);
519
519
  } else if (Platform.OS === 'android') {
520
520
  // For Android, we need to call twice for inapp and subs
521
+ const includeSuspended = Boolean(options?.includeSuspendedAndroid ?? false);
521
522
  const inappNitroPurchases = await IAP.instance.getAvailablePurchases({
522
523
  android: {
523
- type: 'inapp'
524
+ type: 'inapp',
525
+ includeSuspended
524
526
  }
525
527
  });
526
528
  const subsNitroPurchases = await IAP.instance.getAvailablePurchases({
527
529
  android: {
528
- type: 'subs'
530
+ type: 'subs',
531
+ includeSuspended
529
532
  }
530
533
  });
531
534