Skip to content

Commit

Permalink
add kmp + unity winback code samples
Browse files Browse the repository at this point in the history
  • Loading branch information
fire-at-will authored Jan 30, 2025
1 parent 5e6da88 commit af5347b
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Purchases.sharedInstance.getEligibleWinBackOffersForPackage(
packageToCheck = packageToCheck,
onError = { error: PurchasesError ->
// TODO: handle the error in your UI
},
onSuccess = { eligibleWinBackOffers: List<WinBackOffer> ->
// TODO: display eligible win-back offers in your UI
}
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Purchases purchases = GetComponent<Purchases>();
purchases.GetEligibleWinBackOffersForPackage(package, (winBackOffers, error) => {
if (error != null)
{
// TODO: handle the error in your UI
}
else
{
// TODO: display eligible win-back offers in your UI
}
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Purchases.sharedInstance.purchase(
packageToPurchase = packageToPurchase,
winBackOffer = winBackOffer,
onError = { error: PurchasesError, userCancelled: Boolean ->
// TODO: handle failed purchase in your UI
},
onSuccess = { transaction: StoreTransaction, customerInfo: CustomerInfo ->
// TODO: handle successful purchase in your UI
}
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Purchases purchases = GetComponent<Purchases>();
purchases.PurchasePackageWithWinBackOffer(
package,
winBackOffers[0],
(productIdentifier, customerInfo, userCancelled, purchaseError) =>
{
if (purchaseError != null)
{
// TODO: handle failed purchase in your UI
return;
}

// TODO: handle successful purchase in your UI
}
);
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,8 @@ import fetchEligibleWinbacksReactNative from "!!raw-loader!@site/code_blocks/sub
import fetchEligibleWinbacksFlutter from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-fetch-eligible-winback-offers-flutter.dart";
import fetchEligibleWinbacksCordova from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-fetch-eligible-winback-offers-cordova.js";
import fetchEligibleWinBacksCapacitor from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-fetch-eligible-winback-offers-capacitor.ts";
import fetchEligibleWinBacksKMP from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-fetch-eligible-winback-offers-kmp.kt";
import fetchEligibleWinBacksUnity from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-fetch-eligible-winback-offers-unity.cs";

<RCCodeBlock
tabs={[
Expand All @@ -365,12 +367,21 @@ import fetchEligibleWinBacksCapacitor from "!!raw-loader!@site/code_blocks/subsc
content: fetchEligibleWinbacksCordova,
},
{
type: "capacitor",
title: "Capacitor",
content: fetchEligibleWinBacksCapacitor,
type: 'capacitor',
title: "Capacitor",
content: fetchEligibleWinBacksCapacitor,
},
]}
/>
{
type: 'kotlin',
title: "Kotlin Multiplatform",
content: fetchEligibleWinBacksKMP,
},
{
type: 'unity',
title: "Unity",
content: fetchEligibleWinBacksUnity,
}
]}/>

:::info ☝️
Note: The `eligibleWinBackOffers` function only returns the win-back offers that the current subscriber is eligible for, not all of the win-back offers that you've created for a product. It will return an empty array when the subscriber is not eligible for any win-back offers.
Expand All @@ -383,6 +394,8 @@ import purchaseWinbackOfferReactNative from "!!raw-loader!@site/code_blocks/subs
import purchaseWinbackOfferFlutter from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-purchase-winback-offer-flutter.dart";
import purchaseWinbackOfferCordova from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-purchase-winback-offer-cordova.js";
import purchaseWinbackOfferCapacitor from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-purchase-winback-offer-capacitor.ts";
import purchaseWinbackOfferKMP from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-purchase-winback-offer-kmp.kt";
import purchaseWinbackOfferUnity from "!!raw-loader!@site/code_blocks/subscription-guidance/subscription-offers/ios-winback-offers-purchase-winback-offer-unity.cs";

<RCCodeBlock
tabs={[
Expand All @@ -407,12 +420,21 @@ import purchaseWinbackOfferCapacitor from "!!raw-loader!@site/code_blocks/subscr
content: purchaseWinbackOfferCordova,
},
{
type: "capacitor",
title: "Capacitor",
content: purchaseWinbackOfferCapacitor,
type: 'capacitor',
title: "Capacitor",
content: purchaseWinbackOfferCapacitor,
},
]}
/>
{
type: 'kotlin',
title: "Kotlin Multiplatform",
content: purchaseWinbackOfferKMP,
},
{
type: 'unity',
title: "Unity",
content: purchaseWinbackOfferUnity,
}
]}/>

For more information on displaying and purchasing products on your paywall, check out our [Displaying Products](https://www.revenuecat.com/docs/getting-started/displaying-products) and [Making Purchases](https://www.revenuecat.com/docs/getting-started/making-purchases) guides.

Expand Down

0 comments on commit af5347b

Please sign in to comment.