Discussion and help from anything related to RevenueCat.
Recently active
Hi there, I am facing issue after making purchase with Play Store. After click on buy button, Play Store gives error “This product is already active for the user.” when i am already subscribed and after that i am refreshing purchaserInfo with await getPurchaserInfo() and getting empty entitlement and all data. Not getting data that i am already subscribed. Purchase history is also getting empty.Please help me.Thank you in advance.
On iOS store, I have created 3 products in the same group at 3 different levels. One product at each level. Reading below, I followed the process. In my sandbox environment, I initiated purchase at Level 2, which went through fine. I then initiated another purchase at Level 1 which went through fine BUT... I was expecting Level 2 to be isActive = false! after the Level 1 in-app purchase goes through. I am actually seeing both Level 1 product and Level 2 Product as active and will renew = true for both. Can someone help me understand why this is please? and if it is a normal behaviour? I also read that at any one time, only one subscription can be active in any one group, but this is not what I am experiencing as stated above. Am I missing something?
On ios after a purchase succeeds a dialogue box saying “"You're all set your purchase was successful" pops up. Is there a way of preventing this?I want to ask the user to login right after the purchase in this dialogue gives the user an opportunity to blow past the login. I’d like to make that less likely if possible. thanks
Hey — We’re super excited to deeply integrate some of our support and workflow tools to use the new App Store APIs to extend subscriptions and issue refunds. Primarily this one: ExtendRenewalDateRequestThe request body containing subscription-renewal-extension data. But it requires to access the transaction ID, which the RC SDKs don’t expose easily. What’s the recommended way to get this done with RC?
I have a detail with the update of my application, initially I had uploaded a build with the subscriptions of Renew Cat and these were shown so that users could obtain them, but in this last update they are not being shown, in the documentation they indicate that the subscriptions Real or production are only visible when the build is released, but the binary is being rejected by the App Store because the payments are not visible.
When attempting to implement the PaywallView of the example SwiftUI project in my own project targeting iOS 15.0 I am receiving 2 errors. Referencing initializer 'init(_:content:)' on 'ForEach' requires that 'Purchases.Package' conform to 'Identifiable'ForEach(offering?.availablePackages ?? []) { package in PackageCellView(package: package) { (package) in /// - Set 'isPurchasing' state to `true` isPurchasing = true /// - Purchase a package Purchases.shared.purchase(package: package) { (transaction, info, error, userCancelled) in /// - Set 'isPurchasing' state to `false` isPurchasing = false /// - If the user didn't cancel and there wasn't an error with the purchase, close the paywall if !userCancelled, error == nil { isPresented = false } } }}https://github.com/RevenueCat/purchases-ios/blob/c63984004d09f1b131ffdb2b99cfb1c14eaaa76e/Examples/MagicWeatherSwiftUI/Shared/Sources/Vi
I’m testing in Android emulator with Play Store access using a testing account so no actual money is being charged. I am able to purchase products and packages, but not able to test changing packages using the UpgradeInfo docs. What could the issue be with Play Store or is there some other configuration I need to make somewhere? When I select the package to change to I see the following, which all looks correct in my logs. The SKU is found and the Flutter purchases_flutter package is clearly showing everything good to go at this point. D/[Purchases] - DEBUG(25398): Vending Offerings from cacheD/[Purchases] - DEBUG(25398): Product change started: com.revenuecat.purchases.models.ProductDetails@1e0bf2c4 - offering: packages UpgradeInfo: UpgradeInfo(oldSku=package_3.99_monthly, prorationMode=1)D/[Purchases] - DEBUG(25398): Querying Purchase with package_3.99_monthly and type SUBSD/[Purchases] - DEBUG(25398): Checking if cache is stale AppInBackground falseD/[Purchases] - DEBUG(25398)
I’m trying to export transaction data on a per transaction basis, rather than per user. I’m using a Customer List to do this.For example, I’d like each row to be a transaction by date (user ID, purchase date, amount paid, product name, etc.), whereas the current export shows each row as a single customer.
Hello,I can see active users on the front dashboard during my sandbox testing. I filled up all the details. We are testing using SWIFTUI and iOS 15.1 on a physical device. However, when I look into details I am not able to see the details. Please elaborate on this.
Regarding to the official doc ( https://docs.revenuecat.com/docs/webhooks ), I have 2 questions would like to clarify.1/ The description of presented_offering_id mentioned:“Not available for apps using legacy entitlements.”However I could not find the definition of “legacy entitlement”. 2/ The presented_offering_id is listed under “Subscription Lifecycle Events Fields”. But I can create offering for NON_RENEWING_PURCHASE , and I can receive this field from the webhook as well. Our application have a logic based on presented_offering_id, so is it ok to use it for NON_RENEWING_PURCHASE ? Thank you.
Hi there,I want to know how should I be able to limit the number of devices with the same user id , and block the subscription provided after that on another device.Like Netflix and Amazon does, they only allow streaming on maximum 2 to 3 devices simultaneously on there Standard plan.
I am quite confused with this. An insight into how I should plan this would be much appreciated…Here is what i am trying to do… Requirement:So, I have 3 types of Annual subscription products.Product 1 - Annual_10 (manage a team of 10 people) Product 2 - Annual_20 (manage a team of 20 people) Product 3 - Annual_50 (manage a team of 50 people)Q1 - How do I organise this in one or their own subscription group so that only one subscription is active at any one time! I want the person to be able to switch between subscriptions. So if someone buys Annual_20 and after 8 weeks decides to goto Annual_50, I want him to be able to do it by paying the associated cost and Annual_20 to be disabled at that point. Q2 - Can this switch be done through code or it will need to be done in settings on the iPhone? Many thanks
Hey team! I’m evaluating RevenueCat for our startup. Question for you: Say we used RevenueCat, but wanted to transition off to a custom solution down the road. What would the process for that be like? For example, will we need to give up our existing subscriptions to our users, or is it possible to transition everyone over?
We’ve been dealing with a support query from a customer who purchased the wrong annual subscription, then immediately bought the correct monthly subscription (for access to different products), but didn’t get access to the products the new subscription entitles them to.Our support log from 12 Nov 2021 at 15:53 shows that the original annual subscription is still active:Purchases.PurchaserInfo.activeSubscriptionsTPBDYhAnnually 4 Oct 2022 at 06:39TPBDInNoMonthly 4 Dec 2021 at 06:43iTunes shows the customer was given a refund from Apple for the first subscription:Other transactions greyed for confidentiality But the customer details screen doesn’t show a refund event: The customer has called Restore Subscriptions option several times now (which calls Purchases.shared.restoreTransactions), and we have also asked them to delete and reinstall the app to force generation of a new alias - none of this works.We’ve temporarily kept the customer happy by granting them a free annual that expires a
We’ve moved from using Unity IAP and RevenueCat in observer mode (unity 3.7.5) to using RevenueCat for full subscription management (unity 3.12.3). We haven’t faced any issues during testings updates, but after release we’ve noticed that some users have no access to their active subscriptions without pressing Restore button.We are using Aliased (legacy) restore behaviour and not using anonymous user id - user id is set up with app install with appUserID.Let me explain the difference found between users and information tracked for them. Both next cases have active subscriptions.Case 1 - subscription is still available after updateOn Customer profile we see that user has no updated Last Seen App Version and Last Seen SDK Version. But he has active subscription and smooth update experience.Case 2 - after update user has no info about active subscription and has to press restore buttonOn Customer profile we see that user has updated Last Seen App Version and Last Seen SDK Version (unity 3.
I ran an A/B test on free trials vs non-free trials and I’m trying to understand the results.The thing I’m most confused about is the difference between the revenue chart and the trial conversion chart. When a trial converts, is that when it shows as revenue?Here’s a chart comparing the same product for the last week. It is generating revenue, but no trials are convertinghttps://cln.sh/f9zbQK
I have 2 rooted Android devices for testing, both with Google Play Services installed.When getting the offerings one returned “PurchaseNotAllowedError” and another one is ok.Is this error returned by Google Play or RevenueCat?Any more info could be given?
We’ve had various service accounts set up to access our Google Play Store account for some time and have never had issues. Though we’ve completed the described steps in your documentation to enable Pub/Sub, the “Connect to Google” button simply presents the “loading state” and then goes back to the “enabled state” after about 15-20 seconds of loading. No additional data is presented to us. Below is a screenshot of the console from my browser. Looks like there is a CORS issue on the site.
I'm starting to use the revenuecat SDK to push subscriptions to my apps. I have an app that is currently paid and I would like to convert to the subscription model.In IOS, I have implemented a check to verify the first version that the user was installed, and if this is paid, I can deduce that the user has already paid for the app.My problem comes with the android version, since in the sdk of this platform I cannot find an attribute similar to that of IOS that indicates the version or the date of the first installation of the app by this user. Is there any mechanism to be able to perform this check in android?
Hello,I am using flutter_inapp_purchase to manage in app purchase for my app. Now I migate old subscription that purchase by flutter_inapp_purchase to RC(RevenueCat) via Client Side Migration. But when I run drop release I got some crash:No virtual method getSku()Ljava/lang/String; in class Lcom/android/billingclient/api/Purchase; or its super classes (declaration of 'com.android.billingclient.api.Purchase' appears in /data/app/~~xCl5ZlazDyYqv4VPMsJnNg==/plant.identification.snap-HZYCA9GF94ar8lvpjvIVmQ==/base.apk) at com.dooboolab.flutterinapppurchase.AndroidInappPurchasePlugin$7.onPurchasesUpdated(AndroidInappPurchasePlugin.java:98)I have to use flutter_inapp_purchase to get subscription info then send it to RC. But flutter_inapp_purchase using Google Play Billing Library 3.0 and RC using Google Play Billing Library 4.0 that removed getSku() function.Do you have solution for this?Thank you
The entitlement identifier shows an purchase date of:While the user bought a new subscription at:It seems that the latest purchase date of the active entitlement is also returning the 2021-07-27 date from what I can see in the logs.My question is:Why isn’t the active entitlement date updating to the latest purchase?For full context: This user purchased a non-renewing IAP last year and now purchased my newest auto-renewing IAP.
Hello, I have had my android app in a closed test on the Google Play Store for the past two weeks. On Monday, i plan to promote the app to live. Is there an easy way to mimic the settings i have for my FollowTheMoney app - debug to a new FollowTheMoney app - release?
I have a server with a database for users and I can control accessing to my services by a login process.I want to grant premium access to users only for one device.If he/she wants to install my app on other devices how can I identify user and disable previous device?Is there any unique user id that refers to users?
Hi,The payment sheet is not displaying a free trial information even though everything is set up properly on App Store Connect. The issue that I have is very similar to this https://community.revenuecat.com/sdks-51/reactnative-payment-sheet-not-showing-trial-period-552 although I am using Flutter not React Native. Thanks,
Hello, I want to send a log to our logger system when a purchase success. I can get subscription started log from PurchaseProduct method’s callback. But I can’t find a way to send a log when subscription renewed. For example, Unity IAP system was sending a purchase log at the first opening after the player renewing their subscription. PurchaseProduct Method: private MakePurchaseFunc MakePurchaseCallback { get; set; } public void PurchaseProduct(string productIdentifier, MakePurchaseFunc callback, string type = "subs", string oldSku = null, ProrationMode prorationMode = ProrationMode.UnknownSubscriptionUpgradeDowngradePolicy) { MakePurchaseCallback = callback; _wrapper.PurchaseProduct(productIdentifier, type, oldSku, prorationMode); } I can see this logs from your Customer History Thank you!
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.