react-native-iap 15.4.0-rc.3 → 15.4.0
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/README.md +23 -25
- package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +250 -168
- package/android/src/main/java/com/margelo/nitro/iap/ProductSerialization.kt +98 -0
- package/ios/HybridRnIap.swift +19 -1
- package/ios/RnIapHelper.swift +30 -2
- package/lib/module/hooks/useIAP.js +19 -3
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +104 -18
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.kepler.js +3 -0
- package/lib/module/index.kepler.js.map +1 -1
- package/lib/module/types.js +67 -6
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/type-bridge.js +22 -3
- package/lib/module/utils/type-bridge.js.map +1 -1
- package/lib/module/vega-adapter.js +24 -2
- package/lib/module/vega-adapter.js.map +1 -1
- package/lib/typescript/src/hooks/useIAP.d.ts +25 -2
- package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +50 -10
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.kepler.d.ts +3 -0
- package/lib/typescript/src/index.kepler.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +79 -9
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +223 -35
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
- package/lib/typescript/src/vega-adapter.d.ts.map +1 -1
- package/nitrogen/generated/android/NitroIap+autolinking.cmake +3 -0
- package/nitrogen/generated/android/c++/JBillingChoiceImageLayoutAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JBillingChoiceScreenTypeAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JBillingProgramAndroid.hpp +3 -0
- package/nitrogen/generated/android/c++/JDeveloperBillingLaunchModeAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JDeveloperBillingOptionParamsAndroid.hpp +78 -0
- package/nitrogen/generated/android/c++/JDeveloperBillingTypeAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JDeveloperProvidedBillingDetailsAndroid.hpp +45 -5
- package/nitrogen/generated/android/c++/JDeveloperProvidedBillingProductAndroid.hpp +72 -0
- package/nitrogen/generated/android/c++/JFunc_void_DeveloperProvidedBillingDetailsAndroid.hpp +10 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +118 -3
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +4 -1
- package/nitrogen/generated/android/c++/JInAppMessageCategoryAndroid.hpp +58 -0
- package/nitrogen/generated/android/c++/JInAppMessageResponseCodeAndroid.hpp +58 -0
- package/nitrogen/generated/android/c++/JInitConnectionConfig.hpp +7 -1
- package/nitrogen/generated/android/c++/JNitroBillingChoiceInfoAndroid.hpp +66 -0
- package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +18 -3
- package/nitrogen/generated/android/c++/JNitroBillingProgramInformationDialogParamsAndroid.hpp +63 -0
- package/nitrogen/generated/android/c++/JNitroBillingResultAndroid.hpp +72 -0
- package/nitrogen/generated/android/c++/JNitroGetBillingChoiceInfoParamsAndroid.hpp +74 -0
- package/nitrogen/generated/android/c++/JNitroInAppMessageParamsAndroid.hpp +64 -0
- package/nitrogen/generated/android/c++/JNitroInAppMessageResultAndroid.hpp +68 -0
- package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +10 -1
- package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroProduct.hpp +13 -1
- package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +7 -0
- package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +16 -1
- package/nitrogen/generated/android/c++/JProductType.hpp +58 -0
- package/nitrogen/generated/android/c++/JSubResponseCodeAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.cpp +35 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.hpp +81 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.hpp +78 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.hpp +2 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroInAppMessageParamsAndroid.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroInAppMessageParamsAndroid.hpp +76 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseAndroid.hpp +7 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingChoiceImageLayoutAndroid.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingChoiceScreenTypeAndroid.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingProgramAndroid.kt +2 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingLaunchModeAndroid.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingOptionParamsAndroid.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingTypeAndroid.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingDetailsAndroid.kt +13 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingProductAndroid.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +13 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InAppMessageCategoryAndroid.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InAppMessageResponseCodeAndroid.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InitConnectionConfig.kt +5 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingChoiceInfoAndroid.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +10 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramInformationDialogParamsAndroid.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingResultAndroid.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroGetBillingChoiceInfoParamsAndroid.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageParamsAndroid.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageResultAndroid.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +5 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +11 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +8 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ProductType.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubResponseCodeAndroid.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_InAppMessageCategoryAndroid_.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_DeveloperBillingOptionParamsAndroid.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroInAppMessageParamsAndroid.kt +53 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +24 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +382 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +48 -0
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +74 -2
- package/nitrogen/generated/ios/swift/BillingChoiceImageLayoutAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/BillingChoiceScreenTypeAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/BillingProgramAndroid.swift +4 -0
- package/nitrogen/generated/ios/swift/DeveloperBillingLaunchModeAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/DeveloperBillingOptionParamsAndroid.swift +114 -0
- package/nitrogen/generated/ios/swift/DeveloperBillingTypeAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/DeveloperProvidedBillingDetailsAndroid.swift +121 -4
- package/nitrogen/generated/ios/swift/DeveloperProvidedBillingProductAndroid.swift +71 -0
- package/nitrogen/generated/ios/swift/Func_void_NitroBillingChoiceInfoAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_NitroBillingResultAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_NitroInAppMessageResultAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +4 -1
- package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +78 -2
- package/nitrogen/generated/ios/swift/InAppMessageCategoryAndroid.swift +40 -0
- package/nitrogen/generated/ios/swift/InAppMessageResponseCodeAndroid.swift +40 -0
- package/nitrogen/generated/ios/swift/InitConnectionConfig.swift +12 -1
- package/nitrogen/generated/ios/swift/NitroBillingChoiceInfoAndroid.swift +66 -0
- package/nitrogen/generated/ios/swift/NitroBillingProgramAvailabilityResultAndroid.swift +50 -2
- package/nitrogen/generated/ios/swift/NitroBillingProgramInformationDialogParamsAndroid.swift +34 -0
- package/nitrogen/generated/ios/swift/NitroBillingResultAndroid.swift +77 -0
- package/nitrogen/generated/ios/swift/NitroGetBillingChoiceInfoParamsAndroid.swift +71 -0
- package/nitrogen/generated/ios/swift/NitroInAppMessageParamsAndroid.swift +67 -0
- package/nitrogen/generated/ios/swift/NitroInAppMessageResultAndroid.swift +66 -0
- package/nitrogen/generated/ios/swift/NitroLaunchExternalLinkParamsAndroid.swift +39 -2
- package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +39 -2
- package/nitrogen/generated/ios/swift/NitroProduct.swift +113 -2
- package/nitrogen/generated/ios/swift/NitroRequestPurchaseAndroid.swift +75 -1
- package/nitrogen/generated/ios/swift/ProductType.swift +40 -0
- package/nitrogen/generated/ios/swift/SubResponseCodeAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DeveloperBillingOptionParamsAndroid.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroInAppMessageParamsAndroid.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__InAppMessageCategoryAndroid_.swift +18 -0
- package/nitrogen/generated/shared/c++/BillingChoiceImageLayoutAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/BillingChoiceScreenTypeAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/BillingProgramAndroid.hpp +4 -0
- package/nitrogen/generated/shared/c++/DeveloperBillingLaunchModeAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/DeveloperBillingOptionParamsAndroid.hpp +103 -0
- package/nitrogen/generated/shared/c++/DeveloperBillingTypeAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/DeveloperProvidedBillingDetailsAndroid.hpp +24 -6
- package/nitrogen/generated/shared/c++/DeveloperProvidedBillingProductAndroid.hpp +96 -0
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +25 -1
- package/nitrogen/generated/shared/c++/InAppMessageCategoryAndroid.hpp +76 -0
- package/nitrogen/generated/shared/c++/InAppMessageResponseCodeAndroid.hpp +76 -0
- package/nitrogen/generated/shared/c++/InitConnectionConfig.hpp +8 -1
- package/nitrogen/generated/shared/c++/NitroBillingChoiceInfoAndroid.hpp +90 -0
- package/nitrogen/generated/shared/c++/NitroBillingProgramAvailabilityResultAndroid.hpp +16 -2
- package/nitrogen/generated/shared/c++/NitroBillingProgramInformationDialogParamsAndroid.hpp +89 -0
- package/nitrogen/generated/shared/c++/NitroBillingResultAndroid.hpp +96 -0
- package/nitrogen/generated/shared/c++/NitroGetBillingChoiceInfoParamsAndroid.hpp +99 -0
- package/nitrogen/generated/shared/c++/NitroInAppMessageParamsAndroid.hpp +88 -0
- package/nitrogen/generated/shared/c++/NitroInAppMessageResultAndroid.hpp +92 -0
- package/nitrogen/generated/shared/c++/NitroLaunchExternalLinkParamsAndroid.hpp +9 -2
- package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +5 -1
- package/nitrogen/generated/shared/c++/NitroProduct.hpp +13 -1
- package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +12 -1
- package/nitrogen/generated/shared/c++/ProductType.hpp +76 -0
- package/nitrogen/generated/shared/c++/SubResponseCodeAndroid.hpp +80 -0
- package/openiap-versions.json +3 -3
- package/package.json +1 -1
- package/src/hooks/useIAP.ts +63 -0
- package/src/index.kepler.ts +9 -0
- package/src/index.ts +223 -95
- package/src/specs/RnIap.nitro.ts +116 -8
- package/src/types.ts +238 -35
- package/src/utils/type-bridge.ts +26 -2
- package/src/vega-adapter.ts +46 -11
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
package com.margelo.nitro.iap
|
|
2
|
+
|
|
3
|
+
import dev.hyo.openiap.DiscountOffer
|
|
4
|
+
import dev.hyo.openiap.ProductAndroidOneTimePurchaseOfferDetail
|
|
5
|
+
import dev.hyo.openiap.ProductCommon
|
|
6
|
+
import dev.hyo.openiap.ProductSubscriptionAndroidOfferDetails
|
|
7
|
+
import dev.hyo.openiap.SubscriptionOffer
|
|
8
|
+
|
|
9
|
+
internal fun legacySubscriptionOfferMaps(
|
|
10
|
+
offers: List<ProductSubscriptionAndroidOfferDetails>,
|
|
11
|
+
): List<Map<String, Any?>> = offers.map { it.toJson().withoutTypeNames() }
|
|
12
|
+
|
|
13
|
+
internal fun subscriptionOfferMaps(
|
|
14
|
+
offers: List<SubscriptionOffer>,
|
|
15
|
+
): List<Map<String, Any?>> = offers.map { it.toJson().withoutTypeNames() }
|
|
16
|
+
|
|
17
|
+
internal fun discountOfferMaps(
|
|
18
|
+
offers: List<DiscountOffer>,
|
|
19
|
+
): List<Map<String, Any?>> = offers.map { it.toJson().withoutTypeNames() }
|
|
20
|
+
|
|
21
|
+
internal fun ProductAndroidOneTimePurchaseOfferDetail.toNitroOneTimePurchaseOfferDetail(): NitroOneTimePurchaseOfferDetail =
|
|
22
|
+
NitroOneTimePurchaseOfferDetail(
|
|
23
|
+
formattedPrice = formattedPrice,
|
|
24
|
+
priceAmountMicros = priceAmountMicros,
|
|
25
|
+
priceCurrencyCode = priceCurrencyCode,
|
|
26
|
+
offerId = offerId?.let { Variant_NullType_String.Second(it) },
|
|
27
|
+
offerToken = offerToken,
|
|
28
|
+
offerTags = offerTags.toTypedArray(),
|
|
29
|
+
fullPriceMicros = fullPriceMicros?.let { Variant_NullType_String.Second(it) },
|
|
30
|
+
purchaseOptionId = purchaseOptionId?.let { Variant_NullType_String.Second(it) },
|
|
31
|
+
discountDisplayInfo = discountDisplayInfo?.let { discount ->
|
|
32
|
+
Variant_NullType_NitroDiscountDisplayInfoAndroid.Second(
|
|
33
|
+
NitroDiscountDisplayInfoAndroid(
|
|
34
|
+
percentageDiscount = discount.percentageDiscount?.toDouble()?.let {
|
|
35
|
+
Variant_NullType_Double.Second(it)
|
|
36
|
+
},
|
|
37
|
+
discountAmount = discount.discountAmount?.let { amount ->
|
|
38
|
+
Variant_NullType_NitroDiscountAmountAndroid.Second(
|
|
39
|
+
NitroDiscountAmountAndroid(
|
|
40
|
+
discountAmountMicros = amount.discountAmountMicros,
|
|
41
|
+
formattedDiscountAmount = amount.formattedDiscountAmount,
|
|
42
|
+
)
|
|
43
|
+
)
|
|
44
|
+
},
|
|
45
|
+
)
|
|
46
|
+
)
|
|
47
|
+
},
|
|
48
|
+
validTimeWindow = validTimeWindow?.let { window ->
|
|
49
|
+
Variant_NullType_NitroValidTimeWindowAndroid.Second(
|
|
50
|
+
NitroValidTimeWindowAndroid(
|
|
51
|
+
startTimeMillis = window.startTimeMillis,
|
|
52
|
+
endTimeMillis = window.endTimeMillis,
|
|
53
|
+
)
|
|
54
|
+
)
|
|
55
|
+
},
|
|
56
|
+
limitedQuantityInfo = limitedQuantityInfo?.let { info ->
|
|
57
|
+
Variant_NullType_NitroLimitedQuantityInfoAndroid.Second(
|
|
58
|
+
NitroLimitedQuantityInfoAndroid(
|
|
59
|
+
maximumQuantity = info.maximumQuantity.toDouble(),
|
|
60
|
+
remainingQuantity = info.remainingQuantity.toDouble(),
|
|
61
|
+
)
|
|
62
|
+
)
|
|
63
|
+
},
|
|
64
|
+
preorderDetailsAndroid = preorderDetailsAndroid?.let { preorder ->
|
|
65
|
+
Variant_NullType_NitroPreorderDetailsAndroid.Second(
|
|
66
|
+
NitroPreorderDetailsAndroid(
|
|
67
|
+
preorderPresaleEndTimeMillis = preorder.preorderPresaleEndTimeMillis,
|
|
68
|
+
preorderReleaseTimeMillis = preorder.preorderReleaseTimeMillis,
|
|
69
|
+
)
|
|
70
|
+
)
|
|
71
|
+
},
|
|
72
|
+
rentalDetailsAndroid = rentalDetailsAndroid?.let { rental ->
|
|
73
|
+
Variant_NullType_NitroRentalDetailsAndroid.Second(
|
|
74
|
+
NitroRentalDetailsAndroid(
|
|
75
|
+
rentalExpirationPeriod = rental.rentalExpirationPeriod?.let {
|
|
76
|
+
Variant_NullType_String.Second(it)
|
|
77
|
+
},
|
|
78
|
+
rentalPeriod = rental.rentalPeriod,
|
|
79
|
+
)
|
|
80
|
+
)
|
|
81
|
+
},
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
internal fun ProductCommon.nitroDebugDescription(): Variant_NullType_String? =
|
|
85
|
+
debugDescription?.let { Variant_NullType_String.Second(it) }
|
|
86
|
+
|
|
87
|
+
private fun Map<String, Any?>.withoutTypeNames(): Map<String, Any?> =
|
|
88
|
+
entries
|
|
89
|
+
.filter { it.key != "__typename" }
|
|
90
|
+
.associate { (key, value) -> key to value.withoutTypeNames() }
|
|
91
|
+
|
|
92
|
+
private fun Any?.withoutTypeNames(): Any? = when (this) {
|
|
93
|
+
is Map<*, *> -> entries
|
|
94
|
+
.filter { it.key != "__typename" }
|
|
95
|
+
.associate { (key, value) -> key.toString() to value.withoutTypeNames() }
|
|
96
|
+
is List<*> -> map { it.withoutTypeNames() }
|
|
97
|
+
else -> this
|
|
98
|
+
}
|
package/ios/HybridRnIap.swift
CHANGED
|
@@ -1385,12 +1385,30 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
1385
1385
|
}
|
|
1386
1386
|
}
|
|
1387
1387
|
|
|
1388
|
-
func
|
|
1388
|
+
func getBillingChoiceInfoAndroid(params: NitroGetBillingChoiceInfoParamsAndroid) throws -> Promise<NitroBillingChoiceInfoAndroid> {
|
|
1389
|
+
return Promise.async {
|
|
1390
|
+
throw OpenIapException.make(code: .featureNotSupported, message: "Billing Choice API is Android-only")
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
func createBillingProgramReportingDetailsAndroid(program: BillingProgramAndroid, developerBillingType: DeveloperBillingTypeAndroid?) throws -> Promise<NitroBillingProgramReportingDetailsAndroid> {
|
|
1389
1395
|
return Promise.async {
|
|
1390
1396
|
throw OpenIapException.make(code: .featureNotSupported, message: "Billing Programs API is Android-only")
|
|
1391
1397
|
}
|
|
1392
1398
|
}
|
|
1393
1399
|
|
|
1400
|
+
func showBillingProgramInformationDialogAndroid(params: NitroBillingProgramInformationDialogParamsAndroid) throws -> Promise<NitroBillingResultAndroid> {
|
|
1401
|
+
return Promise.async {
|
|
1402
|
+
throw OpenIapException.make(code: .featureNotSupported, message: "Billing Choice API is Android-only")
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
func showInAppMessagesAndroid(params: Variant_NullType_NitroInAppMessageParamsAndroid?) throws -> Promise<NitroInAppMessageResultAndroid> {
|
|
1407
|
+
return Promise.async {
|
|
1408
|
+
throw OpenIapException.make(code: .featureNotSupported, message: "In-app messages are Android-only")
|
|
1409
|
+
}
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1394
1412
|
func launchExternalLinkAndroid(params: NitroLaunchExternalLinkParamsAndroid) throws -> Promise<Bool> {
|
|
1395
1413
|
return Promise.async {
|
|
1396
1414
|
throw OpenIapException.make(code: .featureNotSupported, message: "Billing Programs API is Android-only")
|
package/ios/RnIapHelper.swift
CHANGED
|
@@ -99,12 +99,14 @@ enum RnIapHelper {
|
|
|
99
99
|
// MARK: - JSON serialization helpers
|
|
100
100
|
|
|
101
101
|
static func serializeToJSON(_ array: [[String: Any]]) -> String? {
|
|
102
|
-
guard
|
|
102
|
+
guard JSONSerialization.isValidJSONObject(array),
|
|
103
|
+
let jsonData = try? JSONSerialization.data(withJSONObject: array, options: []) else { return nil }
|
|
103
104
|
return String(data: jsonData, encoding: .utf8)
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
static func serializeToJSON(_ dict: [String: Any]) -> String? {
|
|
107
|
-
guard
|
|
108
|
+
guard JSONSerialization.isValidJSONObject(dict),
|
|
109
|
+
let jsonData = try? JSONSerialization.data(withJSONObject: dict, options: []) else { return nil }
|
|
108
110
|
return String(data: jsonData, encoding: .utf8)
|
|
109
111
|
}
|
|
110
112
|
|
|
@@ -145,6 +147,26 @@ enum RnIapHelper {
|
|
|
145
147
|
}
|
|
146
148
|
}
|
|
147
149
|
|
|
150
|
+
var pricingTermsIOS: Variant_NullType_String? = nil
|
|
151
|
+
if let pricingTermsArray = dictionary["pricingTermsIOS"] as? [[String: Any]], !pricingTermsArray.isEmpty {
|
|
152
|
+
if let json = serializeToJSON(pricingTermsArray) {
|
|
153
|
+
pricingTermsIOS = .second(json)
|
|
154
|
+
} else {
|
|
155
|
+
NSLog("⚠️ [RnIapHelper] Failed to serialize pricingTermsIOS")
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
var subscriptionInfoIOS: Variant_NullType_String? = nil
|
|
160
|
+
let subscriptionInfoDict = dictionary["subscriptionInfoIOS"] as? [String: Any]
|
|
161
|
+
?? dictionary["subscription"] as? [String: Any]
|
|
162
|
+
if let subscriptionInfo = subscriptionInfoDict, !subscriptionInfo.isEmpty {
|
|
163
|
+
if let json = serializeToJSON(subscriptionInfo) {
|
|
164
|
+
subscriptionInfoIOS = .second(json)
|
|
165
|
+
} else {
|
|
166
|
+
NSLog("⚠️ [RnIapHelper] Failed to serialize subscriptionInfoIOS")
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
148
170
|
// Handle subscriptionOffers - standardized cross-platform offers (OpenIAP 1.3.10+)
|
|
149
171
|
var subscriptionOffers: Variant_NullType_String? = nil
|
|
150
172
|
if let offersArray = dictionary["subscriptionOffers"] as? [[String: Any]], !offersArray.isEmpty {
|
|
@@ -169,6 +191,7 @@ enum RnIapHelper {
|
|
|
169
191
|
id: dictionary["id"] as? String ?? "",
|
|
170
192
|
title: dictionary["title"] as? String ?? "",
|
|
171
193
|
description: dictionary["description"] as? String ?? "",
|
|
194
|
+
debugDescription: wrapString(dictionary["debugDescription"] as? String),
|
|
172
195
|
type: dictionary["type"] as? String ?? "",
|
|
173
196
|
displayName: displayName,
|
|
174
197
|
displayPrice: dictionary["displayPrice"] as? String,
|
|
@@ -178,6 +201,8 @@ enum RnIapHelper {
|
|
|
178
201
|
typeIOS: wrapString(dictionary["typeIOS"] as? String),
|
|
179
202
|
isFamilyShareableIOS: wrapBool(boolValue(dictionary["isFamilyShareableIOS"])),
|
|
180
203
|
jsonRepresentationIOS: wrapString(dictionary["jsonRepresentationIOS"] as? String),
|
|
204
|
+
pricingTermsIOS: pricingTermsIOS,
|
|
205
|
+
subscriptionInfoIOS: subscriptionInfoIOS,
|
|
181
206
|
discountsIOS: discountsIOS,
|
|
182
207
|
introductoryPriceIOS: wrapString(dictionary["introductoryPriceIOS"] as? String),
|
|
183
208
|
introductoryPriceAsAmountIOS: wrapDouble(doubleValue(dictionary["introductoryPriceAsAmountIOS"])),
|
|
@@ -417,6 +442,7 @@ enum RnIapHelper {
|
|
|
417
442
|
id: id,
|
|
418
443
|
title: id,
|
|
419
444
|
description: "",
|
|
445
|
+
debugDescription: nil,
|
|
420
446
|
type: "inapp",
|
|
421
447
|
displayName: nil,
|
|
422
448
|
displayPrice: nil,
|
|
@@ -426,6 +452,8 @@ enum RnIapHelper {
|
|
|
426
452
|
typeIOS: nil,
|
|
427
453
|
isFamilyShareableIOS: nil,
|
|
428
454
|
jsonRepresentationIOS: nil,
|
|
455
|
+
pricingTermsIOS: nil,
|
|
456
|
+
subscriptionInfoIOS: nil,
|
|
429
457
|
discountsIOS: nil,
|
|
430
458
|
introductoryPriceIOS: nil,
|
|
431
459
|
introductoryPriceAsAmountIOS: nil,
|
|
@@ -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, syncIOS, getPromotedProductIOS, requestPurchaseOnPromotedProductIOS, checkAlternativeBillingAvailabilityAndroid, showAlternativeBillingDialogAndroid, createAlternativeBillingTokenAndroid, userChoiceBillingListenerAndroid, subscriptionBillingIssueListener, 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, getBillingChoiceInfoAndroid, isBillingProgramAvailableAndroid, createBillingProgramReportingDetailsAndroid, launchExternalLinkAndroid, showBillingProgramInformationDialogAndroid, showInAppMessagesAndroid, userChoiceBillingListenerAndroid, developerProvidedBillingListenerAndroid, subscriptionBillingIssueListener, isStandardIOS } from "../index.js";
|
|
10
10
|
|
|
11
11
|
// Types
|
|
12
12
|
import { ErrorCode } from "../types.js";
|
|
@@ -168,7 +168,10 @@ export function useIAP(options) {
|
|
|
168
168
|
if (Platform.OS === 'android') {
|
|
169
169
|
if (optionsRef.current?.enableBillingProgramAndroid) {
|
|
170
170
|
config = {
|
|
171
|
-
enableBillingProgramAndroid: optionsRef.current.enableBillingProgramAndroid
|
|
171
|
+
enableBillingProgramAndroid: optionsRef.current.enableBillingProgramAndroid,
|
|
172
|
+
...(optionsRef.current.billingChoiceScreenTypeAndroid ? {
|
|
173
|
+
billingChoiceScreenTypeAndroid: optionsRef.current.billingChoiceScreenTypeAndroid
|
|
174
|
+
} : {})
|
|
172
175
|
};
|
|
173
176
|
} else if (optionsRef.current?.alternativeBillingModeAndroid) {
|
|
174
177
|
config = {
|
|
@@ -219,6 +222,11 @@ export function useIAP(options) {
|
|
|
219
222
|
}
|
|
220
223
|
});
|
|
221
224
|
}
|
|
225
|
+
if (Platform.OS === 'android' && optionsRef.current?.onDeveloperProvidedBillingAndroid && !subscriptionsRef.current.developerProvidedBillingAndroid) {
|
|
226
|
+
subscriptionsRef.current.developerProvidedBillingAndroid = developerProvidedBillingListenerAndroid(details => {
|
|
227
|
+
optionsRef.current?.onDeveloperProvidedBillingAndroid?.(details);
|
|
228
|
+
});
|
|
229
|
+
}
|
|
222
230
|
|
|
223
231
|
// Always attach so callers that supply `onSubscriptionBillingIssue` later
|
|
224
232
|
// (after the hook has already set up listeners) still receive events.
|
|
@@ -235,11 +243,13 @@ export function useIAP(options) {
|
|
|
235
243
|
subscriptionsRef.current.purchaseError?.remove();
|
|
236
244
|
subscriptionsRef.current.promotedProductIOS?.remove();
|
|
237
245
|
subscriptionsRef.current.userChoiceBillingAndroid?.remove();
|
|
246
|
+
subscriptionsRef.current.developerProvidedBillingAndroid?.remove();
|
|
238
247
|
subscriptionsRef.current.subscriptionBillingIssue?.remove();
|
|
239
248
|
subscriptionsRef.current.purchaseUpdate = undefined;
|
|
240
249
|
subscriptionsRef.current.purchaseError = undefined;
|
|
241
250
|
subscriptionsRef.current.promotedProductIOS = undefined;
|
|
242
251
|
subscriptionsRef.current.userChoiceBillingAndroid = undefined;
|
|
252
|
+
subscriptionsRef.current.developerProvidedBillingAndroid = undefined;
|
|
243
253
|
subscriptionsRef.current.subscriptionBillingIssue = undefined;
|
|
244
254
|
}, []);
|
|
245
255
|
const initIapWithSubscriptions = useCallback(async () => {
|
|
@@ -323,7 +333,13 @@ export function useIAP(options) {
|
|
|
323
333
|
...(Platform.OS === 'android' ? {
|
|
324
334
|
checkAlternativeBillingAvailabilityAndroid,
|
|
325
335
|
showAlternativeBillingDialogAndroid,
|
|
326
|
-
createAlternativeBillingTokenAndroid
|
|
336
|
+
createAlternativeBillingTokenAndroid,
|
|
337
|
+
getBillingChoiceInfoAndroid,
|
|
338
|
+
isBillingProgramAvailableAndroid,
|
|
339
|
+
createBillingProgramReportingDetailsAndroid,
|
|
340
|
+
launchExternalLinkAndroid,
|
|
341
|
+
showBillingProgramInformationDialogAndroid,
|
|
342
|
+
showInAppMessagesAndroid
|
|
327
343
|
} : {})
|
|
328
344
|
};
|
|
329
345
|
}
|
|
@@ -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","syncIOS","getPromotedProductIOS","requestPurchaseOnPromotedProductIOS","checkAlternativeBillingAvailabilityAndroid","showAlternativeBillingDialogAndroid","createAlternativeBillingTokenAndroid","userChoiceBillingListenerAndroid","subscriptionBillingIssueListener","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","purchaseUpdatedListenerOptions","purchaseError","code","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","subscriptionBillingIssue","onSubscriptionBillingIssue","cleanupListeners","remove","undefined","initIapWithSubscriptions","reconnect"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":";;AAAA;AACA,SAAQA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,QAAO,OAAO;AAC9D,SAAQC,QAAQ,QAAO,cAAc;AACrC,SAAQC,YAAY,QAAO,mBAAgB;;AAE3C;AACA,SACEC,cAAc,EACdC,qBAAqB,EACrBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,qBAAqB,EACrBC,iBAAiB,IAAIC,yBAAyB,EAC9CC,eAAe,IAAIC,uBAAuB,EAC1CC,aAAa,EACbC,eAAe,IAAIC,uBAAuB,EAC1CC,cAAc,IAAIC,sBAAsB,EACxCC,0BAA0B,IAAIC,kCAAkC,EAChEC,sBAAsB,EACtBC,sBAAsB,EACtBC,OAAO,EACPC,qBAAqB,EACrBC,mCAAmC,EACnCC,0CAA0C,EAC1CC,mCAAmC,EACnCC,oCAAoC,EACpCC,gCAAgC,EAChCC,gCAAgC,EAChCC,aAAa,QACR,aAAK;;AAEZ;AACA,SAAQC,SAAS,QAAO,aAAU;;AAuBlC;;AA4PA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACC,OAAuB,EAAU;EACtD,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGnC,QAAQ,CAAU,KAAK,CAAC;EAC1D,MAAM,CAACoC,QAAQ,EAAEC,WAAW,CAAC,GAAGrC,QAAQ,CAAY,EAAE,CAAC;EACvD,MAAM,CAACsC,aAAa,EAAEC,gBAAgB,CAAC,GAAGvC,QAAQ,CAAwB,EAAE,CAAC;EAC7E,MAAM,CAACwC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGzC,QAAQ,CAAa,EAAE,CAAC;EAC5E,MAAM,CAAC0C,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG3C,QAAQ,CAAU,CAAC;EACvE,MAAM,CAAC4C,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG7C,QAAQ,CAE5D,EAAE,CAAC;EAEL,MAAM8C,UAAU,GAAG7C,MAAM,CAA4BgC,OAAO,CAAC;EAC7D,MAAMc,YAAY,GAAG9C,MAAM,CAAU,KAAK,CAAC;;EAE3C;EACA,MAAM+C,uBAAuB,GAAGlD,WAAW,CACzC,CACEmD,aAAkB,EAClBC,QAAa,EACbC,MAA2B,KACnB;IACR,MAAMC,MAAM,GAAG,CAAC,GAAGH,aAAa,CAAC;IACjCC,QAAQ,CAACG,OAAO,CAAEC,OAAO,IAAK;MAC5B,MAAMC,WAAW,GAAGH,MAAM,CAACI,IAAI,CAC5BC,YAAY,IAAKN,MAAM,CAACM,YAAY,CAAC,KAAKN,MAAM,CAACG,OAAO,CAC3D,CAAC;MACD,IAAI,CAACC,WAAW,EAAE;QAChBH,MAAM,CAACM,IAAI,CAACJ,OAAO,CAAC;MACtB;IACF,CAAC,CAAC;IACF,OAAOF,MAAM;EACf,CAAC,EACD,EACF,CAAC;EAEDrD,SAAS,CAAC,MAAM;IACd+C,UAAU,CAACa,OAAO,GAAG1B,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEblC,SAAS,CAAC,MAAM;IACdgD,YAAY,CAACY,OAAO,GAAGzB,SAAS;EAClC,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAM0B,gBAAgB,GAAG3D,MAAM,CAM5B,CAAC,CAAC,CAAC;;EAEN;EACA,MAAM4D,YAAY,GAAG5D,MAAM,CAAU,IAAI,CAAC;EAE1C,MAAM6D,qBAAqB,GAAG7D,MAAM,CAAwB,EAAE,CAAC;EAE/DF,SAAS,CAAC,MAAM;IACd+D,qBAAqB,CAACH,OAAO,GAAGrB,aAAa;EAC/C,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;;EAEnB;EACA,MAAMyB,aAAa,GAAGjE,WAAW,CAAEkE,KAAc,IAAK;IACpD,IAAIlB,UAAU,CAACa,OAAO,EAAEM,OAAO,EAAE;MAC/BnB,UAAU,CAACa,OAAO,CAACM,OAAO,CACxBD,KAAK,YAAYE,KAAK,GAAGF,KAAK,GAAG,IAAIE,KAAK,CAACC,MAAM,CAACH,KAAK,CAAC,CAC1D,CAAC;IACH;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,qBAAqB,GAAGtE,WAAW,CACvC,MAAOuE,MAGN,IAAoB;IACnB,IAAI,CAACtB,YAAY,CAACY,OAAO,EAAE;MACzBxD,YAAY,CAACmE,IAAI,CACf,2DACF,CAAC;MACD;IACF;IACA,IAAI;MACF,MAAMC,WAAW,GAAGF,MAAM,CAACG,IAAI,IAAI,QAAQ;MAC3CrE,YAAY,CAACsE,KAAK,CAAC,sCAAsC,EAAE;QACzDC,IAAI,EAAEL,MAAM,CAACK,IAAI;QACjBF,IAAI,EAAED;MACR,CAAC,CAAC;MACF,MAAMI,MAAM,GAAG,MAAM9D,aAAa,CAAC;QACjC6D,IAAI,EAAEL,MAAM,CAACK,IAAI;QACjBF,IAAI,EAAED;MACR,CAAC,CAAC;MACFpE,YAAY,CAACsE,KAAK,CAAC,gCAAgC,EAAEE,MAAM,CAAC;MAC5D,MAAMC,KAAK,GAAID,MAAM,IAAI,EAAwC;;MAEjE;MACA,IAAIJ,WAAW,KAAK,MAAM,EAAE;QAC1B;QACAhC,gBAAgB,CAAEsC,iBAAwC,IACxD7B,uBAAuB,CACrB6B,iBAAiB,EACjBD,KAAK,EACJE,YAAiC,IAAKA,YAAY,CAACC,EACtD,CACF,CAAC;QACD;MACF;MAEA,IAAIR,WAAW,KAAK,KAAK,EAAE;QACzB;QACA,MAAMS,WAAW,GAAGJ,KAAK,CAACK,MAAM,CAC7BC,IAAI,IAAsBA,IAAI,CAACV,IAAI,KAAK,QAC3C,CAAC;QACD,MAAMW,gBAAgB,GAAGP,KAAK,CAACK,MAAM,CAClCC,IAAI,IAAkCA,IAAI,CAACV,IAAI,KAAK,MACvD,CAAC;QAEDnC,WAAW,CAAE+C,YAAuB,IAClCpC,uBAAuB,CACrBoC,YAAY,EACZJ,WAAW,EACVK,OAAgB,IAAKA,OAAO,CAACN,EAChC,CACF,CAAC;QACDxC,gBAAgB,CAAEsC,iBAAwC,IACxD7B,uBAAuB,CACrB6B,iBAAiB,EACjBM,gBAAgB,EACfL,YAAiC,IAAKA,YAAY,CAACC,EACtD,CACF,CAAC;QACD;MACF;;MAEA;MACA1C,WAAW,CAAE+C,YAAuB,IAClCpC,uBAAuB,CACrBoC,YAAY,EACZR,KAAK,EACJS,OAAgB,IAAKA,OAAO,CAACN,EAChC,CACF,CAAC;IACH,CAAC,CAAC,OAAOf,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;MACrDD,aAAa,CAACC,KAAK,CAAC;IACtB;EACF,CAAC,EACD,CAAChB,uBAAuB,EAAEe,aAAa,CACzC,CAAC;EAED,MAAMuB,6BAA6B,GAAGxF,WAAW,CAC/C,MAAOmC,OAAyB,IAAoB;IAClD,IAAI;MACF,MAAM0C,MAAM,GAAG,MAAMnE,qBAAqB,CAAC;QACzC+E,6BAA6B,EAC3BtD,OAAO,EAAEsD,6BAA6B,IAAI,KAAK;QACjDC,yBAAyB,EAAEvD,OAAO,EAAEuD,yBAAyB,IAAI,IAAI;QACrEC,uBAAuB,EAAExD,OAAO,EAAEwD,uBAAuB,IAAI;MAC/D,CAAC,CAAC;MACFhD,qBAAqB,CAACkC,MAAM,CAAC;IAC/B,CAAC,CAAC,OAAOX,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;MAChED,aAAa,CAACC,KAAK,CAAC;IACtB;EACF,CAAC,EACD,CAACD,aAAa,CAChB,CAAC;EAED,MAAM2B,8BAA8B,GAAG5F,WAAW,CAChD,MAAO6F,eAA0B,IAAoC;IACnE,IAAI;MACF,MAAMhB,MAAM,GAAG,MAAMvD,sBAAsB,CAACuE,eAAe,CAAC;MAC5D9C,sBAAsB,CAAC8B,MAAM,CAAC;MAC9B,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOX,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;MAChED,aAAa,CAACC,KAAK,CAAC;MACpB,OAAO,EAAE;IACX;EACF,CAAC,EACD,CAACD,aAAa,CAChB,CAAC;EAED,MAAM6B,8BAA8B,GAAG9F,WAAW,CAChD,MAAO6F,eAA0B,IAAuB;IACtD,IAAI;MACF,OAAO,MAAMtE,sBAAsB,CAACsE,eAAe,CAAC;IACtD,CAAC,CAAC,OAAO3B,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,sCAAsC,EAAEA,KAAK,CAAC;MACjED,aAAa,CAACC,KAAK,CAAC;MACpB,OAAO,KAAK;IACd;EACF,CAAC,EACD,CAACD,aAAa,CAChB,CAAC;EAED,MAAMtD,iBAAiB,GAAGX,WAAW,CACnC,MAAO+F,IAAmC,IAAoB;IAC5D;IACA;IACA;IACA;IACA;IACA,MAAMnF,yBAAyB,CAACmF,IAAI,CAAC;EACvC,CAAC,EACD,EACF,CAAC;EAED,MAAMlF,eAAe,GAAGb,WAAW,CACjC,MAAOgG,UAAgC,IAAoB;IACzD,MAAMlF,uBAAuB,CAACkF,UAAU,CAAC;EAC3C,CAAC,EACD,EACF,CAAC;EAED,MAAMC,gBAAgB,GAAGjG,WAAW,CAClC,MAAOmC,OAAyB,IAAoB;IAClD,IAAI;MACF,IAAI/B,QAAQ,CAAC8F,EAAE,KAAK,KAAK,EAAE;QACzB,MAAM1E,OAAO,CAAC,CAAC;MACjB;MAEA,MAAMgE,6BAA6B,CAACrD,OAAO,CAAC;IAC9C,CAAC,CAAC,OAAO+B,KAAK,EAAE;MACd7D,YAAY,CAACmE,IAAI,CAAC,8BAA8B,EAAEN,KAAK,CAAC;MACxDD,aAAa,CAACC,KAAK,CAAC;IACtB;EACF,CAAC,EACD,CAACsB,6BAA6B,EAAEvB,aAAa,CAC/C,CAAC;EAED,MAAMjD,eAAe,GAAGhB,WAAW,CACjC,MAAOmC,OAA4B,IACjClB,uBAAuB,CAACkB,OAAO,CAAC,EAClC,EACF,CAAC;EAED,MAAMjB,cAAc,GAAGlB,WAAW,CAChC,MAAOmC,OAA4B,IAAoC;IACrE,OAAOhB,sBAAsB,CAACgB,OAAO,CAAC;EACxC,CAAC,EACD,EACF,CAAC;EAED,MAAMf,0BAA0B,GAAGpB,WAAW,CAC5C,MACEmC,OAAwC,IACM;IAC9C,OAAOd,kCAAkC,CAACc,OAAO,CAAC;EACpD,CAAC,EACD,EACF,CAAC;;EAED;EACA,MAAMgE,kBAAkB,GAAGnG,WAAW,CAAC,MAAM;IAC3C,IAAIoG,MAKS;IAEb,IAAIhG,QAAQ,CAAC8F,EAAE,KAAK,SAAS,EAAE;MAC7B,IAAIlD,UAAU,CAACa,OAAO,EAAEwC,2BAA2B,EAAE;QACnDD,MAAM,GAAG;UACPC,2BAA2B,EACzBrD,UAAU,CAACa,OAAO,CAACwC;QACvB,CAAC;MACH,CAAC,MAAM,IAAIrD,UAAU,CAACa,OAAO,EAAEyC,6BAA6B,EAAE;QAC5DF,MAAM,GAAG;UACPE,6BAA6B,EAC3BtD,UAAU,CAACa,OAAO,CAACyC;QACvB,CAAC;MACH;IACF;IAEA,OAAOF,MAAM;EACf,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMG,iBAAiB,GAAGvG,WAAW,CAAC,MAAM;IAC1C,IAAI,CAAC8D,gBAAgB,CAACD,OAAO,CAAC2C,cAAc,EAAE;MAC5C1C,gBAAgB,CAACD,OAAO,CAAC2C,cAAc,GAAGhG,uBAAuB,CAC/D,MAAOiG,QAAkB,IAAK;QAC5B,IAAI;UACF,MAAMb,8BAA8B,CAAC,CAAC;UACtC,MAAMJ,6BAA6B,CAAC,CAAC;QACvC,CAAC,CAAC,OAAOkB,CAAC,EAAE;UACVrG,YAAY,CAACmE,IAAI,CAAC,wCAAwC,EAAEkC,CAAC,CAAC;QAChE;QACA,IAAI1D,UAAU,CAACa,OAAO,EAAE8C,iBAAiB,EAAE;UACzC3D,UAAU,CAACa,OAAO,CAAC8C,iBAAiB,CAACF,QAAQ,CAAC;QAChD;MACF,CAAC,EACDzD,UAAU,CAACa,OAAO,EAAE+C,8BACtB,CAAC;IACH;IAEA,IAAI,CAAC9C,gBAAgB,CAACD,OAAO,CAACgD,aAAa,EAAE;MAC3C/C,gBAAgB,CAACD,OAAO,CAACgD,aAAa,GAAGtG,qBAAqB,CAC3D2D,KAAK,IAAK;QACT,IACEA,KAAK,CAAC4C,IAAI,KAAK7E,SAAS,CAAC8E,cAAc,IACvC,CAAC9D,YAAY,CAACY,OAAO,EACrB;UACA;QACF;QACA,IAAIb,UAAU,CAACa,OAAO,EAAEmD,eAAe,EAAE;UACvChE,UAAU,CAACa,OAAO,CAACmD,eAAe,CAAC9C,KAAK,CAAC;QAC3C;MACF,CACF,CAAC;IACH;IAEA,IAAIlC,aAAa,CAAC,CAAC,IAAI,CAAC8B,gBAAgB,CAACD,OAAO,CAACjB,kBAAkB,EAAE;MACnEkB,gBAAgB,CAACD,OAAO,CAACjB,kBAAkB,GAAGnC,0BAA0B,CACrE8E,OAAgB,IAAK;QACpB1C,qBAAqB,CAAC0C,OAAO,CAAC;QAC9B,IAAIvC,UAAU,CAACa,OAAO,EAAEoD,oBAAoB,EAAE;UAC5CjE,UAAU,CAACa,OAAO,CAACoD,oBAAoB,CAAC1B,OAAO,CAAC;QAClD;MACF,CACF,CAAC;IACH;IAEA,IACEnF,QAAQ,CAAC8F,EAAE,KAAK,SAAS,IACzBlD,UAAU,CAACa,OAAO,EAAEqD,0BAA0B,IAC9C,CAACpD,gBAAgB,CAACD,OAAO,CAACsD,wBAAwB,EAClD;MACArD,gBAAgB,CAACD,OAAO,CAACsD,wBAAwB,GAC/CrF,gCAAgC,CAAEsF,OAAO,IAAK;QAC5C,IAAIpE,UAAU,CAACa,OAAO,EAAEqD,0BAA0B,EAAE;UAClDlE,UAAU,CAACa,OAAO,CAACqD,0BAA0B,CAACE,OAAO,CAAC;QACxD;MACF,CAAC,CAAC;IACN;;IAEA;IACA;IACA,IAAI,CAACtD,gBAAgB,CAACD,OAAO,CAACwD,wBAAwB,EAAE;MACtDvD,gBAAgB,CAACD,OAAO,CAACwD,wBAAwB,GAC/CtF,gCAAgC,CAAE0E,QAAkB,IAAK;QACvDzD,UAAU,CAACa,OAAO,EAAEyD,0BAA0B,GAAGb,QAAQ,CAAC;MAC5D,CAAC,CAAC;IACN;EACF,CAAC,EAAE,CAACb,8BAA8B,EAAEJ,6BAA6B,CAAC,CAAC;;EAEnE;EACA,MAAM+B,gBAAgB,GAAGvH,WAAW,CAAC,MAAM;IACzC8D,gBAAgB,CAACD,OAAO,CAAC2C,cAAc,EAAEgB,MAAM,CAAC,CAAC;IACjD1D,gBAAgB,CAACD,OAAO,CAACgD,aAAa,EAAEW,MAAM,CAAC,CAAC;IAChD1D,gBAAgB,CAACD,OAAO,CAACjB,kBAAkB,EAAE4E,MAAM,CAAC,CAAC;IACrD1D,gBAAgB,CAACD,OAAO,CAACsD,wBAAwB,EAAEK,MAAM,CAAC,CAAC;IAC3D1D,gBAAgB,CAACD,OAAO,CAACwD,wBAAwB,EAAEG,MAAM,CAAC,CAAC;IAC3D1D,gBAAgB,CAACD,OAAO,CAAC2C,cAAc,GAAGiB,SAAS;IACnD3D,gBAAgB,CAACD,OAAO,CAACgD,aAAa,GAAGY,SAAS;IAClD3D,gBAAgB,CAACD,OAAO,CAACjB,kBAAkB,GAAG6E,SAAS;IACvD3D,gBAAgB,CAACD,OAAO,CAACsD,wBAAwB,GAAGM,SAAS;IAC7D3D,gBAAgB,CAACD,OAAO,CAACwD,wBAAwB,GAAGI,SAAS;EAC/D,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,wBAAwB,GAAG1H,WAAW,CAAC,YAA2B;IACtE,MAAMoG,MAAM,GAAGD,kBAAkB,CAAC,CAAC;IAEnC,IAAI;MACF,MAAMtB,MAAM,GAAG,MAAMvE,cAAc,CAAC8F,MAAM,CAAC;MAE3C,IAAI,CAACrC,YAAY,CAACF,OAAO,EAAE;QACzB;MACF;MAEA,IAAI,CAACgB,MAAM,EAAE;QACXxC,YAAY,CAAC,KAAK,CAAC;QACnBhC,YAAY,CAACmE,IAAI,CAAC,wCAAwC,CAAC;QAC3D;MACF;MAEA+B,iBAAiB,CAAC,CAAC;MACnBlE,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC,OAAO6B,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;MACnDqD,gBAAgB,CAAC,CAAC;MAClB,IAAIxD,YAAY,CAACF,OAAO,EAAE;QACxBxB,YAAY,CAAC,KAAK,CAAC;MACrB;MACA4B,aAAa,CAACC,KAAK,CAAC;IACtB;EACF,CAAC,EAAE,CAACiC,kBAAkB,EAAEI,iBAAiB,EAAEgB,gBAAgB,EAAEtD,aAAa,CAAC,CAAC;EAE5E,MAAM0D,SAAS,GAAG3H,WAAW,CAAC,YAA8B;IAC1D,MAAMoG,MAAM,GAAGD,kBAAkB,CAAC,CAAC;IAEnC,IAAI;MACF,MAAMtB,MAAM,GAAG,MAAMvE,cAAc,CAAC8F,MAAM,CAAC;MAE3C,IAAI,CAACrC,YAAY,CAACF,OAAO,EAAE;QACzB,OAAO,KAAK;MACd;MAEA,IAAIgB,MAAM,EAAE;QACV0B,iBAAiB,CAAC,CAAC;QACnBlE,YAAY,CAAC,IAAI,CAAC;QAClB,OAAO,IAAI;MACb;MAEAA,YAAY,CAAC,KAAK,CAAC;MACnB,OAAO,KAAK;IACd,CAAC,CAAC,OAAO6B,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC;MACvDqD,gBAAgB,CAAC,CAAC;MAClB,IAAIxD,YAAY,CAACF,OAAO,EAAE;QACxBxB,YAAY,CAAC,KAAK,CAAC;MACrB;MACA4B,aAAa,CAACC,KAAK,CAAC;MACpB,OAAO,KAAK;IACd;EACF,CAAC,EAAE,CAACiC,kBAAkB,EAAEI,iBAAiB,EAAEgB,gBAAgB,EAAEtD,aAAa,CAAC,CAAC;EAE5EhE,SAAS,CAAC,MAAM;IACd8D,YAAY,CAACF,OAAO,GAAG,IAAI;IAC3B6D,wBAAwB,CAAC,CAAC;IAE1B,OAAO,MAAM;MACX3D,YAAY,CAACF,OAAO,GAAG,KAAK;MAC5B0D,gBAAgB,CAAC,CAAC;MAClB;MACAlF,YAAY,CAAC,KAAK,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAACqF,wBAAwB,EAAEH,gBAAgB,CAAC,CAAC;EAEhD,OAAO;IACLnF,SAAS;IACTE,QAAQ;IACRE,aAAa;IACb7B,iBAAiB;IACjB+B,kBAAkB;IAClBE,kBAAkB;IAClBE,mBAAmB;IACnBpC,qBAAqB,EAAE8E,6BAA6B;IACpDzE,aAAa,EAAEuD,qBAAqB;IACpCzD,eAAe;IACfG,eAAe;IACfE,cAAc;IACdE,0BAA0B;IAC1B6E,gBAAgB;IAChBxE,qBAAqB;IACrBC,mCAAmC;IACnCJ,sBAAsB,EAAEsE,8BAA8B;IACtDrE,sBAAsB,EAAEuE,8BAA8B;IACtD6B,SAAS;IACT;IACA,IAAIvH,QAAQ,CAAC8F,EAAE,KAAK,SAAS,GACzB;MACEvE,0CAA0C;MAC1CC,mCAAmC;MACnCC;IACF,CAAC,GACD,CAAC,CAAC;EACR,CAAC;AACH","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","getBillingChoiceInfoAndroid","isBillingProgramAvailableAndroid","createBillingProgramReportingDetailsAndroid","launchExternalLinkAndroid","showBillingProgramInformationDialogAndroid","showInAppMessagesAndroid","userChoiceBillingListenerAndroid","developerProvidedBillingListenerAndroid","subscriptionBillingIssueListener","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","billingChoiceScreenTypeAndroid","alternativeBillingModeAndroid","registerListeners","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseUpdatedListenerOptions","purchaseError","code","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","onDeveloperProvidedBillingAndroid","developerProvidedBillingAndroid","subscriptionBillingIssue","onSubscriptionBillingIssue","cleanupListeners","remove","undefined","initIapWithSubscriptions","reconnect"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -406,12 +406,11 @@ export const userChoiceBillingListenerAndroid = listener => {
|
|
|
406
406
|
};
|
|
407
407
|
|
|
408
408
|
/**
|
|
409
|
-
* Add a listener for developer provided billing events (Android 8.3.0+
|
|
410
|
-
* Fires
|
|
409
|
+
* Add a listener for developer provided billing events (Android 8.3.0+).
|
|
410
|
+
* Fires for External Payments and Billing Choice developer billing flows.
|
|
411
411
|
*
|
|
412
|
-
*
|
|
413
|
-
*
|
|
414
|
-
* external payment option directly in the purchase flow. (Japan only)
|
|
412
|
+
* The payload includes selected products and nullable token, link, and original
|
|
413
|
+
* transaction fields. Billing Choice fields require Billing Library 9.1.0+.
|
|
415
414
|
*
|
|
416
415
|
* @param listener - Function to call when user chooses developer billing
|
|
417
416
|
* @returns EventSubscription with remove() method to unsubscribe
|
|
@@ -421,14 +420,10 @@ export const userChoiceBillingListenerAndroid = listener => {
|
|
|
421
420
|
* @example
|
|
422
421
|
* ```typescript
|
|
423
422
|
* const subscription = developerProvidedBillingListenerAndroid((details) => {
|
|
424
|
-
*
|
|
425
|
-
*
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
* await processExternalPayment();
|
|
429
|
-
*
|
|
430
|
-
* // Report transaction to Google Play (within 24 hours)
|
|
431
|
-
* await reportToGooglePlay(details.externalTransactionToken);
|
|
423
|
+
* await processExternalPayment(details.products, details.linkUri);
|
|
424
|
+
* if (details.externalTransactionToken) {
|
|
425
|
+
* await reportToGooglePlay(details.externalTransactionToken);
|
|
426
|
+
* }
|
|
432
427
|
* });
|
|
433
428
|
*
|
|
434
429
|
* // Later, remove the listener
|
|
@@ -1192,6 +1187,10 @@ export const getTransactionJwsIOS = async sku => {
|
|
|
1192
1187
|
* ```ts
|
|
1193
1188
|
* await initConnection();
|
|
1194
1189
|
* await initConnection({ enableBillingProgramAndroid: 'external-offer' });
|
|
1190
|
+
* await initConnection({
|
|
1191
|
+
* enableBillingProgramAndroid: 'billing-choice',
|
|
1192
|
+
* billingChoiceScreenTypeAndroid: 'developer-rendered',
|
|
1193
|
+
* });
|
|
1195
1194
|
* ```
|
|
1196
1195
|
*
|
|
1197
1196
|
* @remarks When using `useIAP()`, connection is auto-managed on mount/unmount —
|
|
@@ -1376,6 +1375,9 @@ export const requestPurchase = async request => {
|
|
|
1376
1375
|
if (androidRequest.isOfferPersonalized != null) {
|
|
1377
1376
|
androidPayload.isOfferPersonalized = androidRequest.isOfferPersonalized;
|
|
1378
1377
|
}
|
|
1378
|
+
if (androidRequest.developerBillingOption) {
|
|
1379
|
+
androidPayload.developerBillingOption = androidRequest.developerBillingOption;
|
|
1380
|
+
}
|
|
1379
1381
|
|
|
1380
1382
|
// One-time purchase offerToken (Android 7.0+)
|
|
1381
1383
|
if (!isSubs) {
|
|
@@ -1389,6 +1391,9 @@ export const requestPurchase = async request => {
|
|
|
1389
1391
|
if (subsRequest.purchaseToken) {
|
|
1390
1392
|
androidPayload.purchaseToken = subsRequest.purchaseToken;
|
|
1391
1393
|
}
|
|
1394
|
+
if (subsRequest.originalExternalTransactionId) {
|
|
1395
|
+
androidPayload.originalExternalTransactionId = subsRequest.originalExternalTransactionId;
|
|
1396
|
+
}
|
|
1392
1397
|
if (subsRequest.replacementMode != null) {
|
|
1393
1398
|
androidPayload.replacementMode = subsRequest.replacementMode;
|
|
1394
1399
|
}
|
|
@@ -2297,7 +2302,9 @@ export const isBillingProgramAvailableAndroid = async program => {
|
|
|
2297
2302
|
const result = await IAP.instance.isBillingProgramAvailableAndroid(program);
|
|
2298
2303
|
return {
|
|
2299
2304
|
billingProgram: result.billingProgram,
|
|
2300
|
-
|
|
2305
|
+
choiceScreenType: result.choiceScreenType,
|
|
2306
|
+
isAvailable: result.isAvailable,
|
|
2307
|
+
isExternalLinkAvailable: result.isExternalLinkAvailable
|
|
2301
2308
|
};
|
|
2302
2309
|
} catch (error) {
|
|
2303
2310
|
RnIapConsole.error('Failed to check billing program availability:', error);
|
|
@@ -2305,6 +2312,32 @@ export const isBillingProgramAvailableAndroid = async program => {
|
|
|
2305
2312
|
}
|
|
2306
2313
|
};
|
|
2307
2314
|
|
|
2315
|
+
/**
|
|
2316
|
+
* Fetch Play Billing assets and loyalty text for developer-rendered Billing Choice screens (Android only).
|
|
2317
|
+
*
|
|
2318
|
+
* @param params - Billing Choice info request parameters
|
|
2319
|
+
* @returns Promise with Play-hosted image URL and optional loyalty information
|
|
2320
|
+
* @platform Android
|
|
2321
|
+
* @since Google Play Billing Library 9.1.0+
|
|
2322
|
+
*
|
|
2323
|
+
* @see {@link https://openiap.dev/docs/apis/android/get-billing-choice-info-android}
|
|
2324
|
+
*/
|
|
2325
|
+
export const getBillingChoiceInfoAndroid = async (params = {}) => {
|
|
2326
|
+
if (Platform.OS !== 'android') {
|
|
2327
|
+
throw new Error('Billing Choice API is only supported on Android');
|
|
2328
|
+
}
|
|
2329
|
+
try {
|
|
2330
|
+
return await IAP.instance.getBillingChoiceInfoAndroid({
|
|
2331
|
+
billingProgram: params.billingProgram ?? 'billing-choice',
|
|
2332
|
+
playBillingChoiceImageLayout: params.playBillingChoiceImageLayout ?? 'rectangular-four-by-one',
|
|
2333
|
+
userLocale: params.userLocale ?? null
|
|
2334
|
+
});
|
|
2335
|
+
} catch (error) {
|
|
2336
|
+
RnIapConsole.error('Failed to get Billing Choice info:', error);
|
|
2337
|
+
throw error;
|
|
2338
|
+
}
|
|
2339
|
+
};
|
|
2340
|
+
|
|
2308
2341
|
/**
|
|
2309
2342
|
* Create billing program reporting details for external transactions (Android only).
|
|
2310
2343
|
* Used to get the external transaction token needed for reporting to Google.
|
|
@@ -2326,12 +2359,14 @@ export const isBillingProgramAvailableAndroid = async program => {
|
|
|
2326
2359
|
*
|
|
2327
2360
|
* @see {@link https://openiap.dev/docs/apis/android/create-billing-program-reporting-details-android}
|
|
2328
2361
|
*/
|
|
2329
|
-
export const createBillingProgramReportingDetailsAndroid = async
|
|
2362
|
+
export const createBillingProgramReportingDetailsAndroid = async (programOrArgs, developerBillingType) => {
|
|
2330
2363
|
if (Platform.OS !== 'android') {
|
|
2331
2364
|
throw new Error('Billing Programs API is only supported on Android');
|
|
2332
2365
|
}
|
|
2333
2366
|
try {
|
|
2334
|
-
const
|
|
2367
|
+
const program = typeof programOrArgs === 'string' ? programOrArgs : programOrArgs.program;
|
|
2368
|
+
const resolvedDeveloperBillingType = typeof programOrArgs === 'string' ? developerBillingType : programOrArgs.developerBillingType ?? developerBillingType;
|
|
2369
|
+
const result = await IAP.instance.createBillingProgramReportingDetailsAndroid(program, resolvedDeveloperBillingType ?? null);
|
|
2335
2370
|
return {
|
|
2336
2371
|
billingProgram: result.billingProgram,
|
|
2337
2372
|
externalTransactionToken: result.externalTransactionToken
|
|
@@ -2343,7 +2378,56 @@ export const createBillingProgramReportingDetailsAndroid = async program => {
|
|
|
2343
2378
|
};
|
|
2344
2379
|
|
|
2345
2380
|
/**
|
|
2346
|
-
*
|
|
2381
|
+
* Show Google's mandatory information dialog before a developer-rendered,
|
|
2382
|
+
* in-app Billing Choice screen (Android only).
|
|
2383
|
+
*
|
|
2384
|
+
* @param params - Dialog parameters with the external transaction token
|
|
2385
|
+
* @returns Promise with BillingResult
|
|
2386
|
+
* @platform Android
|
|
2387
|
+
* @since Google Play Billing Library 9.1.0+
|
|
2388
|
+
*
|
|
2389
|
+
* @see {@link https://openiap.dev/docs/apis/android/show-billing-program-information-dialog-android}
|
|
2390
|
+
*/
|
|
2391
|
+
export const showBillingProgramInformationDialogAndroid = async params => {
|
|
2392
|
+
if (Platform.OS !== 'android') {
|
|
2393
|
+
throw new Error('Billing Choice API is only supported on Android');
|
|
2394
|
+
}
|
|
2395
|
+
try {
|
|
2396
|
+
return await IAP.instance.showBillingProgramInformationDialogAndroid({
|
|
2397
|
+
billingProgram: params.billingProgram ?? 'billing-choice',
|
|
2398
|
+
externalTransactionToken: params.externalTransactionToken
|
|
2399
|
+
});
|
|
2400
|
+
} catch (error) {
|
|
2401
|
+
RnIapConsole.error('Failed to show Billing Choice information dialog:', error);
|
|
2402
|
+
throw error;
|
|
2403
|
+
}
|
|
2404
|
+
};
|
|
2405
|
+
|
|
2406
|
+
/**
|
|
2407
|
+
* Show Play Billing in-app messages, such as transactional subscription updates (Android only).
|
|
2408
|
+
*
|
|
2409
|
+
* @param params - Optional in-app message categories
|
|
2410
|
+
* @returns Promise with in-app message result
|
|
2411
|
+
* @platform Android
|
|
2412
|
+
* @since Google Play Billing Library 4.1.0+
|
|
2413
|
+
*
|
|
2414
|
+
* @see {@link https://openiap.dev/docs/apis/android/show-in-app-messages-android}
|
|
2415
|
+
*/
|
|
2416
|
+
export const showInAppMessagesAndroid = async params => {
|
|
2417
|
+
if (Platform.OS !== 'android') {
|
|
2418
|
+
throw new Error('In-app messages are only supported on Android');
|
|
2419
|
+
}
|
|
2420
|
+
try {
|
|
2421
|
+
return await IAP.instance.showInAppMessagesAndroid(params ?? null);
|
|
2422
|
+
} catch (error) {
|
|
2423
|
+
RnIapConsole.error('Failed to show in-app messages:', error);
|
|
2424
|
+
throw error;
|
|
2425
|
+
}
|
|
2426
|
+
};
|
|
2427
|
+
|
|
2428
|
+
/**
|
|
2429
|
+
* Launch an external link for Billing Programs (Android only). Developer-rendered
|
|
2430
|
+
* Billing Choice external-link flows require 9.1.0+ and a pre-generated token.
|
|
2347
2431
|
*
|
|
2348
2432
|
* @param params - Parameters for launching the external link
|
|
2349
2433
|
* @returns Promise<boolean> - true if user accepted, false otherwise
|
|
@@ -2353,7 +2437,8 @@ export const createBillingProgramReportingDetailsAndroid = async program => {
|
|
|
2353
2437
|
* @example
|
|
2354
2438
|
* ```typescript
|
|
2355
2439
|
* const success = await launchExternalLinkAndroid({
|
|
2356
|
-
* billingProgram: '
|
|
2440
|
+
* billingProgram: 'billing-choice',
|
|
2441
|
+
* externalTransactionToken: reportingDetails.externalTransactionToken,
|
|
2357
2442
|
* launchMode: 'launch-in-external-browser-or-app',
|
|
2358
2443
|
* linkType: 'link-to-digital-content-offer',
|
|
2359
2444
|
* linkUri: 'https://your-website.com/purchase'
|
|
@@ -2372,6 +2457,7 @@ export const launchExternalLinkAndroid = async params => {
|
|
|
2372
2457
|
try {
|
|
2373
2458
|
return await IAP.instance.launchExternalLinkAndroid({
|
|
2374
2459
|
billingProgram: params.billingProgram,
|
|
2460
|
+
externalTransactionToken: params.externalTransactionToken,
|
|
2375
2461
|
launchMode: params.launchMode,
|
|
2376
2462
|
linkType: params.linkType,
|
|
2377
2463
|
linkUri: params.linkUri
|