Discussion and help from anything related to RevenueCat.
Recently active
We are getting Null discount from Revenuecat even though we have set up the discount in google play under offers (phase). SS of how Revenue cat is passing data. Structure we have set in Google play..In playstore the structure is like this:Subscription > Base Plan > Offer > Phase 1 ( Free trial) + Phase 2 (10/20/30% discount)
I see this question has been covered in more threads with no solutions I need help figuring this one out My AppleStore Subscription is ready for submission I am not using a sandbox account I am testing on device At this point I juts want to print my current packages Error: 2023-01-23 20:31:52.214271-0800 Recipe generator[6310:26159165] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)2023-01-23 20:31:52.214489-0800 Recipe generator[6310:26159165] [Purchases] - ERROR: 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)2023-01-23 20:31:52.214532-0800 Recipe generator[6310:18871873] [Purchases] - ERROR: 😿‼️ There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or
I’d like to test if my app works better with subscription based or consumable based model.In subscription-based model, users will be presented a Paywall Screen to subscribe weekly to be a “premium” user, so they can play unlimited games.In consumable-based model, users will be presented a Paywall Screen to purchase X number of games. When they play X number of games, they will be presented another Paywall to top-up.Is RevenueCat Experiments suitable for this use case? Couple of points I’m curious are: Does Experiment Results work as expected with different monetisation models? Especially LTV is the concern point. With the nature of the Experiment, I need to show “Remaining Games”, “How To Get Refund”, “Current Subscription” etc. information in different screens. This means I need to know the bucketing value of the user. Does RevenueCat Experiments provide this? (I guess I can check current offering in different screens to get the experiment bucketing value and show correct UX)Thank yo
Hey, I'm using purchases_flutter dependency for a flutter app. When I'm testing to pay with iOS devices, the way to do it is by asking the user for AppleID and corresponding password. It should be working with iPhone biometrics instead. How can I do it?
Hello I have integrated revenuecat with appsflyer and some of my revenuecat events like: “trial cancel event”, “initial purchase event”, etc. not received in appsflyer.
We have a special business/premium model, and we need help migrating our model to a flutter app which uses IAP.Currently, our system works as follows:Users can purchase "packages" through Stripe. Each package contains one or more "digital accesses" and we send a package redemption ID via email. On our site, users can redeem the package (once they receive the email), and we credit the digital accesses to their account.Digital access has the following properties:moduleName - The user gets access to this moduledurationInDay - From the redemption, this will be the duration. I think the following would be the best way to extend our business model with IAP:We consider every successful subscription-related transaction as a package purchase, but this time the user does not need to redeem the package. Instead, we directly credit the package to their account. We set the appUserId to our user's unique identifier (UUID) for every user.There should be a Revenue Cat endpoint where we can query all p
We have a service where user could purchase multiple subscriptions.How do I set up a product so that a user could subscribe to the same product multiple times.Let me give you an example.When a user subscribe to one subscription which is for $100 a year.That user could create a group on our platform and use the pro features.Now, the same user could create multiple groups by subscribing to the same product multiple times. How do I achieve this with revenue cat on iOS?
Hi,import com.revenuecat.purchases.Entitlement throws Unresolved reference: Entitlement error in my Android app. The other imports are accepted.import com.android.billingclient.api.SkuDetailsimport com.revenuecat.purchases.Entitlementimport com.revenuecat.purchases.Offeringimport com.revenuecat.purchases.PurchaserInfoimport com.revenuecat.purchases.PurchasesAny suggestions?RegardsPeter
Hi!I decided to use the anonymous App User ID and add some reference into attributesThat way I can have IAP without a userlogin demand.In some cases end user want to just have a “nick” or other attribute. But it is impossible to search for the user using attributes. Could I suggest that search get a “attr” keyword addon?For example, if you search for; attr:secretstuff:infoaboutsomeone it will search for only attrib “secretstuff” and “infoaboutsomeone” as search text. I wonder also if it is not possible to search for order numbers, google for instances use GPA.3348-7181-1798-xxxxx number, that exists in the “transaction_id” for each event detail. Apple in same way too. Since the data exists, it could be straight forward adding that? Last feature request:I miss a “read attribute” feature in the SDK, so I can read these parameters without using a webhook and another third party to store that again.
We have several products defined in the App Store. Two include a free trial, the third does not.Depending on which is offered to the user, we dynamically want to control some messaging in the app. For the product without a free trial, we specifically want to suppress anything about “try for 3 days”.Unfortunately, debugging shows that the value for package.storeProduct.introductoryDiscount?.paymentMode is erroneously freeTrial.We are using SDK 4.17.2. I have verified that the product defined in the App Store has no introductory pricing set. I have also tried to verify that the product is setup in the RC dashboard without indicating any sort of trial period for it (although it doesn’t appear that the RC setup of products even asks for that info.)Either we’ve done something incorrectly on our end, or there seems to be a bug in the SDK.Before I file a bug report, I thought I would ask here.Thank you!
Hi,I have created a subscription and test it on device. I subscribed using my developer account as TestFlight what I see in customer history page is, multiple subscription after every few minutes. Please explain is it normal or I did something wrong in code or not setup properly ?. Look at the screenshot I hope you understand what I mean. I only done purchase once and close the app on device.
Can some one outline the workflow process for a subscription purchase on a website then redeeming it on an iOS app, for example unlocking a feature? I understand the purchase on iOS workfowiOS app initiate purchase > revenuecat > ios appstore to process payment > revenuecat > iOS app to unlock feature What is a web flow look like? , especially one with a stripe payment process? I know a user ID will have to be set on a website.
Hi, I have an iOS app with RevenueCat already implemented. I recently saw that `Purchases` is being deprecated for `RevenueCat` so I went ahead and updated our Podfile from `pod Purchases` to `pod RevenueCat`. I’m able to convert a lot of the code over to the new SDK, but there are a couple things that are missing. I am no longer able to get the currency symbol (eg. “$”) from this anymore. I used to be able to do something like `pack.storeProduct.priceLocale.currencySymbol` but `priceLocale` is no longer included in the SDK. My current work around is to do something like this: `pack.storeProduct.localizedPriceString.first(where: { !$0.isNumber }).map { String($0) }` which seems much less ideal. On the `StoreTransaction` object, the old version had a `original` field that allowed me to check whether it was first transaction or if purchases were being transferred over (transaction?.original == nil). However, the new version no longer has this. Is there a way I can see whether this is a f
In the docs it says:Subscriber attributes are only synced with RevenueCat servers on app launch, app backgrounded, and when purchases are made or restored.https://www.revenuecat.com/docs/subscriber-attributes Is “App launch” meant literally or do they mean once `Purchases.configure(‘SDK_KEY’);` is called?When exactly should I call `Purchases.setAttributes({ "age" : "24", "custom_group_id" : "abc123" });` then? Before `Purchases.configure();`, or after, or does it not matter because the app has already “launched” and the attributes will only be synced later?
Hi, I use both Branch and RevenueCat in my app. I’m setting up Branch to talk with the SkAdnetwork. In the Branch Docs it says the following: In the SKAdNetwork Config section of the Branch dashboard, select the YES radio button to have the Branch SDK handle all calls to SKAdNetwork.Do NOT opt-in if you decide to:Integrate directly with SKAdNetwork and call the SKAdNetwork functions natively. Use another 3rd party library to handle your app's interactions with SKAdNetwork. Before I opt in, I wanted to make sure this wouldn’t interfere with any RevenueCat Features.
I want to call iOS UIKit or StoreKit functions that would bring up the “Manage my subscription” sheet.As suggested here:https://stackoverflow.com/a/51127481/166612UIKit: Use StoreKits showManageSubscriptions(in:) (Documentation).SwiftUI: Use SwiftUIs modifier manageSubscriptionsSheet(isPresented:) (Documentation).Is there a built-in way in RevenueCat (I’m using the React Native version) to bring that sheet up?Otherwise I would suggest to implement this as it would be a really useful and simple thing to introduce.Any idea?Thanks!
So I am able to see the transaction id in revenue cat but for google the order id starts with GPA.1234-5678-9012-34567 (Paid apps and in-app purchases)GPA.1234-5678-9012-34567..0 (Subscriptions)but my transaction Id looks like this "transaction_id": "momccgonamhibjgoineacklf.AO-J1OwDsqdYk6v87sEv9MLdsuQPfo0y2-UfQe1FJvRpye5QIi7MThjIZyKk_7Yzyyr6SDRxTy1PzbQUZj3hIirzCKE3I56bf0BBeRMK9qVyB-MZh7ZablM"I need the order id the format provided by google how to do that.
Hello everyone. I am facing this issue, I have connected my huawei phone to Vscode and has installed my flutter app,When i try to fetch products, it throws this error. I/flutter (26282): Instance of 'Future<dynamic>'V/AudioManager(26282): querySoundEffectsEnabled...D/[Purchases] - DEBUG(26282): ℹ️ Vending Offerings from cacheD/[Purchases] - DEBUG(26282): ℹ️ Checking if cache is stale AppInBackground false does anyone know why is that, what am i missing?
I would like to have different buttons depending on the type of subscription (monthly, yearly) to be able to customize them individually. For the moment my setup works with a For Each (as below) and therefore does not allow me to distinguish between the different products by varying the design of the buttons. ForEach(currentOffering!.availablePackages) { pkg in Button { // BUY Purchases.shared.purchase(package: pkg) { (transaction, customerInfo, error, userCancelled) in if customerInfo?.entitlements.all["pro"]?.isActive == true { // Unlock that great "pro" content userViewModel.isSubscriptionActive = true } } } label: { Text("\(pkg.storeProduct.subscriptionPeriod!.periodTitle) \(pkg.storeProduct.localizedPriceString)") }
Hello.How can I access the "product ID" of the purchased product when the user makes a purchase? I want to add as many keys as product purchased with firebase using this product id.Eg:Product ID = ak_20_key -> I will add 20 keys to Firebase.Product ID = ak_10_key-> I will add 10 keys to Firebase.
If you have a current app that does not use a server to validate receipts (Yes I know this is not reccomended), how can iOS purchases be migrated to revenuecat? If the user initiates a restore purchase would this happen: App checks revenuecat > sees no customer data > revenuecat checks apple > sees purchase > revenuecat creates customer info > sends info back to app.
I’ve done everything described here and it’s working fine in sandbox but when we published application into app store, the app store version didn’t work, in the logs we got this error:Could not find SKProduct for ( "subscription_30", "subscription_360", "subscription_180") There is a problem with your configuration in App Store Connect. More info here: https://errors.rev.cat/configuring-productsIs there a way to debug or fix it?
Hi, I was wondering if there were any plans to build a webhook that triggers when a subscription is coming to an end. Maybe around the same time as the app stores trigger their subscription expiring emails. Our business would find this really useful for sending our own comms. Thanks, Lydia
Hi,is there a more detailed information on pub/sub and revenue cat?I read this but its not working like this: https://www.revenuecat.com/docs/google-server-notificationsI can't enable pub/sub via the link on the first point. Is google cloud billing needs to be active for this? I tried to create it manually, a push subscription but Im not sure about the settings and the revenue cat push url.
I’m trying to use the syncPurchases method in the Flutter SDK before checking entitlements to determine free trial eligibility on Android.This workaround was suggested by Cody in the thread here: However, despite the function returning a future, await Purchases.syncPurchases() doesn’t seem to actually await the purchases being synced. Looking at the Purchases package (see below), it doesn’t seem to await the method being invoked. /// This method will send all the purchases to the RevenueCat backend. /// /// **WARNING**: Call this when using your own implementation of in-app /// purchases. /// /// This method should be called anytime a sync is needed, like after a /// successful purchase. static Future<void> syncPurchases() => _channel.invokeMethod('syncPurchases');Is this a bug, or is it not possible to await the purchases being synced?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.