Discussion and help from anything related to RevenueCat.
Recently active
I am building an app in Flutter with a Google in-app subscription and an Apple in-app subscription.I am using purchases_flutter in Flutter for payment. It only returns the payment details when I check the user subscription which is the following.If I log the user out of my app and log in again with a different email ID, I still receive the same information and can't repurchase the same subscription.Is there a way I can buy two same subscriptions for different in-app users who are using the same phone?
I am working on a macOS desktop application using SwiftUI and am looking for a way to implement a trial version that expires after a specific period (e.g., 7 days). Additionally, I want to include the functionality to activate and deactivate a software license.Requirements:When the user first installs the app, they should be able to use it for a 7-day trial period. After the trial period, the user should be prompted to enter a software license key to continue using the app. The user should have the option to deactivate the license on their machine, so it can be used on a different machine. I understand that this will likely involve both client-side and server-side logic. However, I am particularly interested in how to achieve this in SwiftUI for the client-side aspect.I look for a basic example that implements this preferrable integration. The payment can be on a website doesent have to be in app purchase but would be positive of this is possible optional lateron.Im looking for advice
Dear RevenueCat,First of all, thank you for developing and maintaining this solution. I have been users of your service in production for a few years now. It has been working great. However, recently I start seeing this error message in Google Play Console for my app. “You're using the InAppProduct API to manage subscriptions, which is now deprecated and will stop being supported for new apps in January 2024, and for all apps in May 2024. Start using the new Subscriptions API to get new features including multiple base plans and offers, as well as prepaid plans.”I have some questions related to that. (For the background, I have been following the discussion about the Google Play Subscription Changes as well as went through the documentation in Google Play Product Setup) However, it is still not clear to me on whether or what kind of migration steps are required from my side. Thank you a lot for your support.I do not have a need for multiple base plans and prepaid. In other words, a sin
Hello, I’m trying to import the enum PERIOD_UNIT from the package in a Ionic App but it’s always undefined. import Purchases, { PACKAGE_TYPE, PERIOD_UNIT, Period, PurchasesOfferings } from 'cordova-plugin-purchases/www/plugin';Yet, no problem with PACKAGE_TYPE or some other. An idea why ?
What are the best practices for showing users’ their purchase history (for one time purchase consumables-not entitlements)? I especially want to make sure that users can see their purchase history if they attempted to make a purchase and it failed-so they can easily check to see if the purchase failed before or after they paid.Should I show them my own custom purchase list generated from `getCustomerInfo` or are there iOS and Play Store pages that I link them out to? The latter seems preferrable because, in the end, that is the true source of truth. But I’m not sure where to find such pages and how to link the user to them?
HelloI need help debugging furtherI’m trying to get more error details for the fallowing error“[Error: There was a problem with the store.]”I found the fallowing article It explains how to find the issue by looking at the error typehowever I’m not getting any additional error details other than What I showed above.When I fallow the suggested error handling linkhttps://www.revenuecat.com/docs/errors#android-errorsand I try to handle the `onError` promise, It simply tells me that `onError` is not define in the promise4 issue types are suggested to look intoGoogle server is down I doubt this is the issue if I’m periodically trying this since yesterday Google Play Developer API Quota exceeded Don’t think its this since I just made this google play account Invalid Android package name in the RevenueCat dashboard I don’t know how to verify this othern than looking at the build.gradle Google Billing Client SERVICE_TIMEOUT error I can’t verify this since I’m not able to look at any erro
I want to highlight the current plan(product) on the pricing table by mapping these two:customerInfo.getActiveSubscriptions() offerings.getCurrent().getAvailablePackages() but what I found is that there is no any unikey from them. here is what i got:customerInfo.getActiveSubscriptions() → ["pro_plus:monthly"] offerings.getCurrent().getAvailablePackages() → { "productId":"pro", "basePlanId":"monthly"}is that mean i need to combind the key "productId”+”:”+"basePlanId" by myself?or any better way to do that? this is the sdk question using java in android.
Hello RevenueCat Community, I have 3 subscription itemfirstNumbersecondNumberthirdNumberI've encountered an issue where I'm trying to subscribe to multiple items, but RevenueCat RestAPI only logs one of them. While the actual subscription process seems to work on my end, the logs in RevenueCat only show one item being subscribed to.Upon checking the logs further, I noticed the term product_change. I dont want to change product, I want to subscribe another subscription item.I have tried it ,3 different entitlement it says product changei have tried it,1 entitlement (3 products) It says same product changeon the other hand apple transaction successfully,it takes the money.Has anyone else experienced this? Can someone shed light on what might be happening or how to resolve this? Any insights or advice would be greatly appreciated!Thank you in advance! Please check screenshots
i am using Revenuecat to let users subscribe to plans in both iOS and android. Few questionsShould we perform sales tax calculations? or is it already part of playstore, app store subscriptions?
I keep getting this error on first purchase. The purchase goes through but revenue cat gives error. When I click on purchase subsequently, revenue cat then returns fine. How do I resolve this? The following exception was thrown Unable to purchase offers: PlatformException(0, Unknown error., {message: Unknown error., userCancelled: false, readableErrorCode: UNKNOWN, code: 0, underlyingErrorMessage: Couldn’t communicate with a helper application., readable_error_code: UNKNOWN}, null):flutter: PlatformException(0, Unknown error., {message: Unknown error., userCancelled: false, readableErrorCode: UNKNOWN, code: 0, underlyingErrorMessage: Couldn’t communicate with a helper application., readable_error_code: UNKNOWN}, null)
This isn’t strictly related to revenue cat, but I wondered if the community had a practical solution to what appears to be a common problem. We test our iOS subscriptions using the recommendations here: https://www.revenuecat.com/blog/engineering/the-ultimate-guide-to-subscription-testing-on-ios/#h-testing-procedures Recently, our internal testers seem unable to cancel subscriptions. When we press the Apple Id → Manage button, it just shows a screen that says “Can’t Connect”. It seems there are a bunch of Apple issues raised on this (e.g. https://developer.apple.com/forums/thread/720910, https://developer.apple.com/forums/thread/717584?page=2) and they seem to suggest either signing out/in, or upgrading. Neither of which work. Any practical workarounds from the revenue cat community?
I the app developer and i purchased the premium version of my app in production. ideally i should be getting something in entitlement active object: [Kotlin code] customerInfo.entitlements.active.isNotEmpty() The above code should return true, but only in case of my account its returning as false. and when trying to call the restore method:Purchases.sharedInstance.restorePurchases(object : ReceiveCustomerInfoCallback{ override fun onError(error: PurchasesError) { showToast(this@AccountManagerActivity,error.message) } override fun onReceived(customerInfo: CustomerInfo) { val value = customerInfo.activeSubscriptions.toString() showToast(this@AccountManagerActivity,value) } })} Its throwing some server error. Please help as currently its reported in my account and could happen with a premium user as well. Thanks in advance.
I am facing an issue with trying to understand how to set up my products. Let me detail out how the product would work. I am creating an app which offers paid, private communities, so you have the following entities;Hosts - the person who hosts the community Members - people who join the community Community - the actual communityI want to charge a monthly fee per community and depending on the number of members, lets say $5 a month for 100 members & $10 a month for 200 members. Ultimately, I would like to offer hosts the ability to purchase multiple communities of various sizes.A single host might;Have 1 community of 100 members Have 2 communities of 200 membersErgo, the host would have 3 payments per month of $5, $10, $10 which is $25 per month. Leaving aside the particular concerns of the platforms like Apple or Google, how would I achieve this inside RevenueCat?
We’ve got some integrations with Amplitude and other third parties and we’ve noticed all Subscriber Attributes are being sent through these integrations. I’d love to know if it’s possible to curate the list of Subscriber Attributes that are being sent with these events.
I want to have token with expiry to be more robust. May be create webhook programatically or upload key file to generate JWT or use Firebase Auth.
Hi there, I’m having trouble trying to match data from the scheduled csv exports to the data as displayed on revenueCat dashboard. Can someone please assist? I’m not sure where I’m going wrong with my querying. For instance, to count actives and actives lost for the month, I count the distinct user id grouped by start date, then for lost I group by unsubscribe_detected_at instead. However, my metrics do not match what is on the dashboard. I’m off by a few hundreds sometimes.
Hi guy.I used to have one project and successfully linked it to Google Cloud. Now, I have another project, and I want to link it to Google Cloud as well, but it's not possible because Google only allows linking to one project. In this case, what should I do? For each Android app I create in Firebase, there is a corresponding Google Cloud project created. Thank you.
Hi there,is it recommended to use RevenuCat Webhooks to sync purchases to an external system instead of using the built-in Webhooks of App Store Connect and Google Play?Is it even possible to sync user subscriptions via App Store Connect webhooks? I'm not sure if Apple gives out the email addresses of the users.Can you please give me a brief summary of the pros and cons of App Store / Play Store webhooks and RevenueCat webhooks?Kind Regards,Marius
Can I checkout multiple quantity at the same transaction. I have a question about IAP where I want to add multiple quantity checkout of consumable products at the same transaction. how can I do this?
First: thanks for making this great product. I’m new to RevenueCat but so far loving it!Intro: RevenueCat offers the possibility to register a webhook endpoint, that is called when an event takes place. There is the possibility to manually set an optional authorization header, that will be used by RevenueCat to authenticate when calling the webhook endpoint. Question: is it possible to set this authorization header by calling an API endpoint (instead of doing it manually in the configuration section ‘Integrations’ > ‘Webhooks’)?
Hello,We've been experiencing an issue in the Revcat chart section where we haven't been able to see Apple Search Ads data for a while. Until March, we were able to view Apple Search Ads campaign/ad group data segmented properly, but recently, when we try to segment the data, we don't see any revenue coming from the search ads side. We haven't made any changes on the advertising side, but the revenue data is not showing up on the Revcat dashboard.What steps should we take to correct the data flow?
I don't understand what in_app_purchase refers to. I thought that it refers to a functionality like Screen A will be disabled until a payment is made. From online information, it seems like in_app_purchase refers to products to sell through the app.It is not about a functionality to buy.I am bit confused like what type of products you would see in your app. A mobile app is not a regular e-commerce store.On Google Play, I've seen quite a number of apps (not a game) have in_app_purchases. From many app descriptions, it is not clear what is included in the in-app purchase.Typically, for a software program, you could see based on a plan by plan basis how each plan is different like what functionality is included in each plan.With the in-app purchase, it is very blurry what is included in the in-app purchases.Could you please provide examples and explain.
I am upgrading from purchases_flutter 3.x to 5.x. The class PurchasesInfo was changed to CustomerInfo. We upload PurchasersInfo Json to our server which parses the data. Have the contents or format of the data changed along with the change of the class? When inspecting the class CustomerInfo I find it has several JSON and String arrays so it’s difficult to tell what might have changed inside those arrays. Thank you,KeithB
My app uses custom user ids. When a user purchases a subscription, then logs out and back in with a different account, that doesn’t have the entitlement, a problem occurs. When pressing the purchase button, they get an alert that says “You are currently subscribed to this” and after pressing OK, the entitlement is also added to this account. Now I have two accounts with an entitlement, but only one subscription.I’m very new to this, but isn’t there any way to prevent this?Or at least a way to check if this app store account already has a subscription, so I can give the user the option to restore it, instead of purchasing?
When I subscribe with a user, which is the same email as the cell phone account, then I logout and then I login with another user, this new user appears to me as having a subscription when it doesn't, it's like the subscription of the first user also happens to this new one.
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.