Get help with your SDK implementation.
Recently active
With latest MAUI SDK and .NET 8.0.403 getting the following error on build”```C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.143\tools\Xamarin.Android.Common.targets(1544,3): error XA4215: The Java type `kotlinx.parcelize.IgnoredOnParcel` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.```Any idea how to have workaround for it?
Hi, The Cordova plugin has this deprecation message: This library is now deprecated. We suggest using our Capacitor SDK instead. (from https://www.npmjs.com/package/cordova-plugin-purchases) How would I use the Capacitor plugin in a Cordova app? I can’t find any instructions about how to do that. I did find https://github.com/ionic-team/capacitor-plugin-cordova-compat, but it says that the Capacitor plugin must have support for the Cordova compatibility layer. I can see that the RevenueCat Capacitor plugin doesn’t have this (see point 10 - the properties mentioned are missing from package.json). It seems to me that Cordova is just simply no longer supported? That’s a bummer. If it is the case, the deprecation message should be fixed to say something like: Capacitor uses should use the Capacitor SDK. Cordova support is deprecated Thanks,Graeme
IOS IAP promo codes are not working in Production app but the RC dashboard is recording each redemption as actual purchases, given that the user gets a prompt for purchasing the product each time they try to redeem the code. strangely I tried to test it out one time but I uninstalled the app and installed it through the redemption process and it worked, just for that one time and then it stopped working again.
Goal: Run campaigns on Apple Search Ads and give them a different Offering and Paywall.Idea: We should be able to use AdServices.AAAttribution.attributionToken() to get the token. I’m assuming this is what the Purchase SDK does. If we have a token then we can request a specific revenueCat offering.Success. If the API finds a matching attribution record, the payload returns attribution=true. If the API doesn’t find a matching attribution record, the payload returns attribution=false. In this case, the 200 OK response is acknowledgment of the receipt of the data request.Question:Does the SDK support this feature without me calling AAAtribution? If I’m calling AAAtribution could that possibly break anything? I’m assuming apple would return the token twice if we both call it.
How would you use targeting to show a unique paywall/offering based on a user’s subscription status? For example, if someone has subscribed at a lower tier, show them a discounted offer to upgrade to a higher tier. Or if someone was once a subscriber and has since churned, show them a discounted offer to resubscribe. I know there are custom attributes that can be passed to RC but this is data the RC already has and should be accessible somewhere (maybe?) but I don’t see it in the targeting rules.Thanks, -O^O-
The following code in your Android SDK (located in Footer.kt) crashes on some devices: uriHandler.openUriOrElse(it.toString()) { val msg = context.getString(R.string.no_browser_cannot_open_link) Toast.makeText(context, msg, Toast.LENGTH_SHORT).show() Logger.w(msg) } Here is the stacktraceFatal Exception: java.lang.IllegalArgumentExceptionCan't open https://mywebsite.com/terms_of_use.html.androidx.compose.ui.platform.AndroidUriHandler.openUri (AndroidUriHandler.android.kt:36)com.revenuecat.purchases.ui.revenuecatui.extensions.UriHandlerExtensionsKt.openUriOrElse (UriHandlerExtensions.kt:12)com.revenuecat.purchases.ui.revenuecatui.composables.FooterKt$Footer$3$2$1.invoke (Footer.kt:147)com.revenuecat.purchases.ui.revenuecatui.composables.FooterKt$Footer$3$2$1.invoke (Footer.kt:141)com.revenuecat.purchases.ui.revenuecatui.composables.FooterKt$Button$1$1$1.invoke (Footer.kt:213)com.revenuecat.purchases
Hi, I am facing an issue with the iOS version of my react native app. As the title suggests, when I perform an action in the app which causes the paywall to open (subscription paywall), it closes itself after a second or two of being visible with PAYWALL_RESULT of CANCELLED. It works fine on Android (only tried it in a test environment using open testing) and allows me to step through the process of purchasing a subscription.I created my app with expo but to test on a physical iOS device have used prebuild to create an ios folder which after running pod install has the .xcworkspace file required to run a build in xcode. They physical device I am testing on is signed in to a sandbox account that is linked to my apple developer account.I am using react-native-purchases version 8.2.3 and the same version number for react-native-purchases-ui.I cannot seem to find any other people who have documented experiencing this issue, and there are no warnings or errors thrown in xcode or the metro t
Hi!I'm trying to integrate Revenuecat service for a subscription (work on flutterflow). I've already reviewed all the tutorials several times, changed different options, but it still gives an error. I've been trying to solve the problem for a whole weekI'm running it on an Android smartphone via a cable from a PC.HELP PLEASE!. Here are my screenshots.I used the tutorials:https://docs.flutterflow.io/integrations/payments/revenuecathttps://blog.flutterflow.io/in-app-subscriptions-using-revenue-cat/
Hi Guys,I am having an annoying issue in-app purchase payment with RevenueCat.Purchase modal is properly displayed and I can always proceed with payment (). Problem is : about 4 times out of 10, the following callback is not called.Purchases.shared.purchase(package: package) { [weak self] transaction, info, error, other inWhich means we cannot retrieve the transaction info or properly inform the user.I am pretty confident the purchase worked, as the system displays a purchase confirmation an alert (see attached screenshot).The following logs also suggest that both purchase and receipt were properly handled :2023-01-11 19:08:23.124231+0100 XXX[4003:1210683] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest started2023-01-11 19:08:23.232600+0100 XXX[4003:1206279] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive2023-01-11 19:08:23.675919+0100 XXX[4003:1206279] <SKReceiptRefreshRequest: 0x28161e3e0>: Finished refreshing receipt with error: Error Domain=ASDErrorDomain Code=603 "Reques
I’m using TestStoreProduct to create Packages for my Previews, but I’d like to filter the packages based on the intro discount eligibility. These TestStoreProduct have their introductoryDiscount set to a TestStoreProductDiscount, but when using Purchases.shared.checkTrialOrIntroDiscountEligibility I get .unknown. What does it take to get it to return .eligible in my Previews?Thanks
I’d love a way to get a callback on the tier toggle in the Paywalls to know which tier was currently selected and when it changed. We use the paywall footer with our own custom content behind it, so a callback would be valuable to be able to display content that reflects the current tier selection. Any idea if this is something the RC team is considering or planning in a future Paywall 2.0 update? Thanks, -O^O-
Hi, I left the StoreKit APIs alone and just signed up for RevenueCat today for my iOS app.However, there was one feature from StoreKit APIs that I really liked. Their StoreViews (specifically the subscription store view) is really nice and intuitive. But I’m confused about one thing. Looking at the RevCat docs, it looks like I should be making all purchase calls through their API. If I use a StoreView, then Apple will be handling the payment and I’m not sure if I’m following best practices here. It kind of feels like I need to choose a side. Either, use RevCat fully, or StoreKit fully, and not try to mix and match. Any thoughts?
I am using Template - 7 Siamese for my paywall setup for my apps in Android and iOS Native.But in both platform paywall showing one different option which is discount badge. That badge showing in Android Paywall but it’s not showing in iOS Paywall.I am using same paywall with both platforms. So how I can remove that badge values from Android Paywall?and Why it’s not showing in iOS Paywall.here i am sharing the screenshot of paywalls and package setting of paywall.Android Paywall Screenshot----https://drive.google.com/file/d/1uTg7Bh4144suZXybWHC6fByfoba_MmEC/view?usp=sharingiOS Paywall Screenshot----https://drive.google.com/file/d/170rBRzk0E6CjrJchRVXYJ2ehVpWLSNHc/view?usp=sharingPackage setup Screenshot for paywall---https://drive.google.com/file/d/1QMtfNYzVLE6AYnT0PQb1jivex0EOMfi0/view?usp=sharingPls let me know how can do same thing in both platforms because it’s necessary for me.Hoping for fast answers!Thanks!
Does RC provide through any of the SDKs type definitions for their Webhook Events? I’m working in NodeJS and want to receive webhooks to keep some state locally. I can see their examples and write my own type definitions, but the Best Practices state,“You should be able to handle webhooks that include additional fields to what's shown here, including new event types. We may add new fields or event types in the future without changing the API version.”It would be preferable to have an officially supported set of these objects and types, similar to what Stripe provides for their events, for folks out there that want to process Webhooks events because the documentation leaves some things ambiguous.For example, in the section on Subscription Lifecycle Event Fields, it says that tax_percentage can be NULL if unknown. Then on the Webhooks Sample Events page, tax_percentage is completely absent in some examples (Renewal), present in some (Uncancellation), and NULL in others (Billing Issue). T
Can you help me out to solve restore purchase.restore purchase demo code not work .
We successfully integrated Flutter’s RevenueCat SDK on Google Play and the App Store for mobile devices, and Stripe on the web. It’s a good approach and RevenueCat made it easier than expected. Thanks for it!Now, our next challenge is to provide our users a way to subscribe to our service via Stripe where Google Play is not available. For example, in China, I think there are devices without Google Play and the ones that have it installed, can’t access Google. Or in Rusia and Belarus, according to this post, they have Google Play but the billing service is disabled.Given the RevenueCat SDK is properly initialized, how can we detect Google Play payments won’t work, so we can show a paywall that uses our Stripe integration instead of the regular Google Play one?
I’m getting “The item you were attempting to purchase could not be found” error when choosing a subscription.Products are listed correctly Product IDs are matching Closed testing - Alpha (active) I’m logging into the app with an email that is in the GPC testers list Testing on physical Android deviceWhat else should I be checking?
Hello!What versions of Unity does RevenueCat support? The RevenueCat SDK installed correctly on a few of my projects running on older versions of Unity. I tried installing the SDK on Unity version 6000.019f1 but the External Dependency Manager does not show under the Edit menu like it does with the projects running on older versions of Unity.I’m following the instructions from here: https://www.revenuecat.com/docs/getting-started/installation/unityI’ve tried to install the SDK with both Option 1 (recommended): Install using OpenUPM and Option 2: Import the Purchases Unity package.As suggested in the documentation, I have tried reinstalling the RevenueCat plugin and manually importing the EDM4U plugin (multiple times) but the External Dependency Manager still does not show under the Edit menu in Unity.Curious if anyone-else has encountered this issue or has any insight. Thanks!
Hi, I’ve been trying to wrap my head around setting up web funnels through stripe and revenue cat and grant entitlements, the flow goes as followsA user purchases a subscription from our web portal using stripe Our backend stores a special code for them to redeem on the native app The user downloads the native app and enters the code (Heres the issue)Our backend then recieve the appUserId from the native app and grants the entitlment to this user We already connect stripe and have place the product under the correct entitlement However, it doesn’t seem like there is a known way to grant entitlements to users on v2, and I see that there is a promotional way for v1 (but that doesn’t seem like the best way)Would love to know the best opinionated way to handle our web funnel flow Thanks!Cody
I didn’t find how to create a sandbox only api key. Is it possible?
We’ve implemented consumables as an add-on along side our subscription. The high-level flow is: user makes purchase in-app —> RC sends webhook —> we increment the user’s balance in our database.How should a consumable purchase be validated locally.After receiving the CustomerInfo object in the purchase completion handler, what do I specifically look for? With subscriptions or non-consumables I just check to see if the entitlement is present. Consumables obviously don’t require permanent entitlements.I can filter the object’s nonSubscriptions array for the correct productIdentifier, and then check if its purchaseDate is less than 30 seconds old.This feels brittle—for example, somebody could easily make a purchase of the consumable and then quickly attempt it again and the code above would consider them having purchased it twice.Thoughts on this? Should I just show a loading animation and query my database here instead? [edited to remove second question because I found the answer h
Apple sent a mail thatWe’re reaching out to let you know that the subscriptionPricePoints endpoint now requires a territory relationship filter. If you use the App Store Connect API to configure your subscriptions, please note that you'll be required to define this filter in an upcoming release.I wonder whether it was already implemented and already have been using territory filter or if it is not implemented, have you got any plan to implement? We’re specifically interested in the Flutter SDK.Thanks in advance for your time.
is it possible to implement a parental gate while using revenuecat paywalls?An example of a parental gate would be after a user clicks ‘purchase’ or ‘start trial’, a simple question is asked to verify the user is of age like “enter your birth year”If the user is verified, the Apple purchase opportunity modal is presented, and if not, the paywall will close.I can’t find a way where the verification question is asked after a user clicks purchase in a paywall. Parental gate functionality is required for every app that aims to participate in the ‘Made For Kids’ category.
Hello, I have 2 questions. 1.In my app I am starting out with only a tip jar(going to add a pro subscription later) In the docs it is not clear how to get products without offerings(or entitlements).Under the tab `Displaying Products` it is only explained how to show products with offerings. But, as of know, I don't have offerings configured as I don't have a paywall (yet). 2.I dont really understand the difference between entitlements and offerings and what they are exactly. Can someone maybe explain it to me(the docs are for those 2 topics a bit confusing to me) Any help here would be appreciated.
I am getting product details from Google play store, but purchase action fails on "None of the products registered in the RevenueCat dashboard could be fetched from the Play Store”Product returned:{"productId":"getbill_299_1m_1m0","type":"subs","title":"Monthly subscription 1m free (App name)","name":"Monthly subscription 1m free","localizedIn":["en-GB"],"skuDetailsToken":"<token>","subscriptionOfferDetails":[{"offerIdToken":"<token>","basePlanId":"basic-1month","offerId":"free-1m","pricingPhases":[{"priceAmountMicros":0,"priceCurrencyCode":"EUR","formattedPrice":"Free","billingPeriod":"P1M","recurrenceMode":2,"billingCycleCount":1},{"priceAmountMicros":3590000,"priceCurrencyCode":"EUR","formattedPrice":"€3.59","billingPeriod":"P1M","recurrenceMode":1}],"offerTags":["basic-1month"]},{"offerIdToken":"<token>","basePlanId":"basic-1month","pricingPhases":[{"priceAmountMicros":3590000,"priceCurrencyCode":"EUR","formattedPrice":"€3.59","billingPeriod":"P1M","recurrenceMode
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.