Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ios/RNIapIosSk2.m
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ @interface RCT_EXTERN_MODULE (RNIapIosSk2, NSObject)
RCT_EXTERN_METHOD(buyProduct:
(NSString*)sku
requestJSONString:(NSString*)requestJSONString
useACOM:(BOOL)useACOM
andDangerouslyFinishTransactionAutomatically:(BOOL)andDangerouslyFinishTransactionAutomatically
appAccountToken:(NSString*)appAccountToken
quantity:(NSInteger)quantity
Expand Down
11 changes: 10 additions & 1 deletion ios/RNIapIosSk2.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ protocol Sk2Delegate {
func buyProduct(
_ sku: String,
requestJSONString: String?,
useACOM: Bool,
andDangerouslyFinishTransactionAutomatically: Bool,
appAccountToken: String?,
quantity: Int,
Expand Down Expand Up @@ -157,6 +158,7 @@ class DummySk2: Sk2Delegate {
func buyProduct(
_ sku: String,
requestJSONString: String?,
useACOM: Bool,
andDangerouslyFinishTransactionAutomatically: Bool,
appAccountToken: String?,
quantity: Int,
Expand Down Expand Up @@ -333,6 +335,7 @@ class RNIapIosSk2: RCTEventEmitter, Sk2Delegate {
@objc public func buyProduct(
_ sku: String,
requestJSONString: String?,
useACOM: Bool,
andDangerouslyFinishTransactionAutomatically: Bool,
appAccountToken: String?,
quantity: Int,
Expand All @@ -343,6 +346,7 @@ class RNIapIosSk2: RCTEventEmitter, Sk2Delegate {
delegate.buyProduct(
sku,
requestJSONString: requestJSONString,
useACOM: useACOM,
andDangerouslyFinishTransactionAutomatically: andDangerouslyFinishTransactionAutomatically,
appAccountToken: appAccountToken,
quantity: quantity,
Expand Down Expand Up @@ -704,6 +708,7 @@ class RNIapIosSk2iOS15: Sk2Delegate {
public func buyProduct(
_ sku: String,
requestJSONString: String?,
useACOM: Bool,
andDangerouslyFinishTransactionAutomatically: Bool,
appAccountToken: String?,
quantity: Int,
Expand All @@ -720,7 +725,11 @@ class RNIapIosSk2iOS15: Sk2Delegate {

if let requestJSONString = requestJSONString {
let requestData = Data(requestJSONString.utf8)
options.insert(Product.PurchaseOption.custom(key: "requestData", value: requestData))
if useACOM {
options.insert(Product.PurchaseOption.custom(key: "advancedCommerceData", value: requestData))
} else {
options.insert(Product.PurchaseOption.custom(key: "requestData", value: requestData))
}
} else {
if quantity > -1 {
options.insert(.quantity(quantity))
Expand Down
10 changes: 10 additions & 0 deletions src/iap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,7 @@ export const requestPurchase = (
quantity,
withOffer,
requestJSONString,
useACOM,
} = request;

if (andDangerouslyFinishTransactionAutomaticallyIOS) {
Expand All @@ -612,6 +613,7 @@ export const requestPurchase = (
await RNIapIosSk2.buyProduct(
sku,
requestJSONString,
useACOM === true,
andDangerouslyFinishTransactionAutomaticallyIOS,
appAccountToken,
quantity ?? -1,
Expand All @@ -620,6 +622,9 @@ export const requestPurchase = (
);
return Promise.resolve(purchase);
} else {
if (useACOM === true) {
throw new Error('ACOM cannot be used with storekit v1');
}
return RNIapIos.buyProduct(
sku,
requestJSONString,
Expand Down Expand Up @@ -757,6 +762,7 @@ export const requestSubscription = (
quantity,
withOffer,
requestJSONString,
useACOM,
} = request;

if (andDangerouslyFinishTransactionAutomaticallyIOS) {
Expand All @@ -772,6 +778,7 @@ export const requestSubscription = (
await RNIapIosSk2.buyProduct(
sku,
requestJSONString,
useACOM === true,
andDangerouslyFinishTransactionAutomaticallyIOS,
appAccountToken,
quantity ?? -1,
Expand All @@ -780,6 +787,9 @@ export const requestSubscription = (
);
return Promise.resolve(purchase);
} else {
if (useACOM === true) {
throw new Error('ACOM cannot be used with storekit v1');
}
return RNIapIos.buyProduct(
sku,
requestJSONString,
Expand Down
1 change: 1 addition & 0 deletions src/modules/iosSk2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ type getAvailableItems = (
export type BuyProduct = (
sku: Sku,
requestJSONString: string | undefined,
useACOM: boolean,
andDangerouslyFinishTransactionAutomaticallyIOS: boolean,
applicationUsername: string | undefined,
quantity: number,
Expand Down
1 change: 1 addition & 0 deletions src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ export interface RequestPurchaseIOS {
sku: Sku;
andDangerouslyFinishTransactionAutomaticallyIOS?: boolean;
requestJSONString?: string;
useACOM?: boolean;
/**
* UUID representing user account
*/
Expand Down
Loading