Discussion and help from anything related to RevenueCat.
Recently active
Suddenly started having these compiler errors and no idea why.
Trying to add RevenueCat to IOS project. Get an error that the package is corrupted. Please see the 2 attachments.
My app is available both on iOS and Android platforms, which means some of my users will be purchasing subscriptions on App Store and other users will be purchasing subscriptions on Google Play.RevenueCat’s documentation states the following in section “Sharing Subscriptions Across Apps and Platforms”Managing SubscriptionsA user can only manage their subscription on the platform it was purchased from. My doubt is: can I just redirect the user to either Google Play or App Store for him to manage his subscription at these stores manually? Or is it a requirement that my app should have a subscription management screen which allows the user to manage his subscription (downgrade, upgrade, cancel) from inside my app?I understand it would be much more user-friendly to allow the user to manage his subscription from inside the app, but I want to avoid as much implementation as possible for the first versions of my app, so that I can focus more on the required things and less on the improvements
Hi!I have this customer https://app.revenuecat.com/customers/ef084a7e/64164405which had BILLING_ISSUE and CANCELLATION events but no EXPIRATION event, although the "grace_period_expiration_at_ms" is passed. We are relying on EXPIRATION event to remove access.Can you check why there’s no EXPIRATION EVENT?
Hello! As the title suggests, I’m concerned about making purchases with “Block Restores” restore behaviour for our project. Our app requires an account to make a subscription purchase, and requires the user to be logged into that account to use any subscription entitled features. If a user under Account A makes a purchase of a subscription and cancels it some time in the future, then signs in to Account B - could it be possible for him to purchase a subscription again (under the same Apple ID), but now attached to Account B? I’ve only been able to try out this scenario in the Sandbox environment (which is full of its own quirks), so I’m really interested in how RevenueCat handles this case in production. Or will it still raise “there’s already another user using the same receipt” type of an error, regardless of any circumstances?
Goal:We want to test our In-App Purchase Flow end-to-end in TestFlight using a sandbox account and see sandbox data in RevenueCat and receive the associated webhook events. Problem:Our app has not yet been approved on the apple app store. It appears I can only provide App Store Server Notifications URLs in the App Store section under App Information. I don’t see a way to add them to a TestFlight build. Question:Is there a way to accomplish my goal before being approved on the app store, or is that a prerequisite of receiving webhook events from sandbox IAP transactions? Thanks!
After purchasing the app for 11.99€ in the Amazon App Store, the amount is shown as 1199€ or 1298.05$. The problem is probably the German representation of “11.99” as “11,99”, which is being parsed as 1199.
Hello, We’ve tested with multiple store accounts and we’re running into the same issue: The first subscription purchase works correctly After several renewals the subscription auto-expires, as expected When we attempt to re-subscribe, Purchases.purchaseProduct resolves without showing the App Store purchase flow, or actually renewing the subscription.
I am working on implementing RevenueCat into my iOS App. I am able to make purchases using the sandbox environment and within the RC Sandbox Dashboard I am able to see that the Firebase Authentication id I am using is displaying properly as the RC Unique ID. To be clear, I am using the automatically generated Firebase Authentication Unique Identifier as the UID on RC. The issue I am having is determining the subscription state. Following along with the example project included in the swift package. I am attempting to determine state using the following code… @Published var customerInfo : CustomerInfo? { didSet { subscriptionActive = customerInfo?.entitlements[entitlementID]?.isActive == true } } I have noticed that upon launch, I am unable to retrieve customerInfo however, when I logout then log back into my Firebase Auth account - it will display customerInfo? I am not sure where I am going wrong.
Hi, We are seeing a strange behavior with some users on our app: a user who has already a custom user id is getting at some point a new RCAnonymousId like it is a new user. How is it possible? Do you know what are the reasons this could happen? Here is an example: Thank you,
Hi,I've the following class that handles everything regarding RevenueCat. My current problem is that I just don't get the current state of my subscription. So the point after purchase was clicked. Is it useful to have this class as a singleton like I've it here? Or rather as an EnvironmentObject?If there's still missing information - please don't hesitate to ask. enum EUserSubscriptionState { case SUBSCRIBED case UNSUBSCRIBED case NONE }enum EUserSubscriptionType { case TRIAL case BASIC case NONE} class SubscriptionManager: ObservableObject { @Published var subscriptionType: EUserSubscriptionType = .NONE @Published var subscriptionState: EUserSubscriptionState = .NONE @Published var isSubscriptionSheetShown: Bool = false static let shared = SubscriptionManager() private init() { Purchases.shared.getCustomerInfo { info, error in guard let info = info, error == nil else { return } if info.entitlements.all["Basic"]?.
Hi, Is it possible for the RC in-app SDK to grant a user a promo (free access) using the public key? We do this with our website, but I want to deep link certain users to get free access. So I want to use the RC SDK to start RC promos. Is this possible? Thanks, Toby
We would like to either be able to create/update/delete offerings/packages/products/entitlements programmatically, or at least get a web hook notification in our backend when these are created/updated/destroyed.Is there anything like that implemented or in the works? Is there any way we can get this data by polling if not?We’re trying to implement a series of things on top of RC for handling promotions and our backends need to be aware of what the existing offerings/packages/products are. Right now the best solution we have is to manually create things in both the backend and RevenueCat, but that’s very error-prone.
Hi there,We use Segment to route events between all our tools. We have recently integrated AppsFlyer into our app and we would like to send RevenueCat events to AppsFlyer. We currently have the RevenueCat/Segment integration set up where we forward all webhook events. Ideally we would like to forward events from RevenueCat to AppsFlyer via Segment, however I believe this is not possible because AppsFlyer requires a certain event structure which includes having the appsflyerId in the integrations event property. Is there any way that we can make this possible or do we have to set up the RevenueCat/AppsFlyer integration directly?Thanks,Lydia
Hi, after i buy my subscription, purchaserInfo show sometimes indicates a purchase, sometimes not With Android Emulator / Flutter Here is my code to check checkPremium() async { Purchases.addPurchaserInfoUpdateListener((purchaserInfo) async { PurchaserInfo purchaserInfo = await Purchases.getPurchaserInfo(); (purchaserInfo.entitlements.all["remove_ads"] != null && purchaserInfo.entitlements.all["remove_ads"]!.isActive) ? print("Active") : print("Not Active"); setState(() {}); }); }
Recently, we have run into cases where using multiple Android devices leaves our users in a state where they have no entitlements. Repro Steps:1.) On the RevenueCat dashboard, set “Restore Behavior" to “Transfer Purchases”.2.) On Device #1…. - Log into Google Play with your account. - Install our app. - Launch our app (configure() is called at startup with a null user ID) - Create an account. (login() is called with the new user ID) - While logged into this new account, purchase a subscription managed by RevenueCat.3.) On Device #2… - Log into Google Play with the same account from Step 2. - Install our app. - Launch our app (configure() is called at startup with a null user ID) - Do not log in yet.6.) Notice that the subscription that was purchased on Device #1 is transferred from the user’s account to the anonymous user that was created when the application was launched for the first time on Device #2. This is denoted by “Got their purchases transferred from another user” on
I have integrated CleverTap and set the Account ID And Passcode correctly but when I checked so all subscription events are in retrying status or fail. I have sent the events by https://api.clevertap.com/1/upload and all sent success. How can I resolve this case?
Hi,I've the above error message when testing on the simulator and I don't know what the reason for this error is. The API key should be correct. I've taken the Public API Key. The configuration looks like this here: Purchases.configure(withAPIKey: Config.getConfiguration(for: .revenueCatAPIKey))I don't know where the problem could be. I'm afraid that I've to reset my simulator to cancel the subscription. FYI: I don't use the sandbox testing from Apple. I just created the StoreKit configuration in my Xcode project and uploaded it to RevenueCat accordingly. For some reason, 0 products are also displayed here. Although when I click on it have deposited products there. Does anyone have any ideas what this could be? If there is more information missing please let me know.
In the SDK docs it is mentioned that the SDK caches user information. What is the TTL on the cache information? How stale can the information get? If a user leaves the app in the background for a few days does the SDK refetch information when the app is opened back up? https://docs.revenuecat.com/docs/purchaserinfo#get-user-information
Hello! I decided to start use RevenueCat for my android application (it is using flutter) instead of native in_app_purchase package. I tried to follow your Docs, but I still couldn't find the point I was looking for :( My app provide possibility to buy month/year subscription. I am using purchasePackage method to make a purchase. But as I see in Subscription section in Google Play Market this purchase is not complete. Do you have some API, to complete a purchase?Best regards, Roman.
Is it possible to get the value of currency in initial_purchase web hook. Initial_purchase webhook return currency: null when trial is provided to the user. I need a currency value to create subscriptions in my system.store: Amazon
Hi everyone, Is there a simple way that Revenue Cat can manage app discount codes? We’d like to share regular discount codes for specific groups to make the app free for some users. Thanks, Louise
Hello, In Stripe you have a product and a customer.Product has a one off payment, e.g. it is not recurring. Customer is created in advance in RC and also in Stripe with some metadata as app user id etc. I have a codeless solution in Integromat where I want to listen on Stripe event, then get app user id metadata for purchase from Stripe and create new Purchase in RC.However, in Stripe you have multiple ways how to charge users. The one I am interested in is that I go to Stripe, and create an invoice to existing customer that they should pay. Once it’s paid, they should be granted a lifetime entitlement in RC. This way user gets an email into their inbox with a direct pay link. The problem is that this method doesn’t create a checkout session, so there is no event for completing checkout session with session id to send to RC. Also, there is no subscription created in Stripe, because Stripe allows to create subscriptions only for recurring prices and this one is one off payment. So the
Hi RevenueCat,After renew subscription, the isActive become to false, I got the log:EntitlementInfo(identifier='Premium', isActive=false, willRenew=true, periodType=NORMAL, latestPurchaseDate=Tue Apr 19 15:22:10 GMT+07:00 2022, originalPurchaseDate=Tue Apr 19 15:22:10 GMT+07:00 2022, expirationDate=Tue Apr 19 15:29:08 GMT+07:00 2022, store=PLAY_STORE, productIdentifier='com.test.nightshade.one.monthly', isSandbox=true, unsubscribeDetectedAt=null, billingIssueDetectedAt=null, ownershipType=UNKNOWN)I saw somethings:ownershipType is UNKNOWN → it should be PURCHASED isActive = false + willRenew = true → it should be isActive = true + willRenew = trueDo you know why it’s happen and how to fix it?---------------------------------------SDK Version: 5.0.0-rc3Operating System: android 9
Hello!I have used block transfers as a restore behavior in revenue cat in accordance to my application’s business logic which is:If User A subscribes to product and his subscription in underlying store is active then the User B shouldn't be able to make the purchase, but if the subscription of User A in underlying store is expired then the User B should be able to make the purchase.Currently I am facing issue of There is already another active subscriber using the same receipt.while trying to purchase from User B even if the subscription purchased by User A is expired. For the desired behavior when the subscription of User A is expired then the purchase should be transferred to the User B but if the subscription of User A is active then the purchases shouldn’t be transferred to the User B.Is there any way that I can achieve this desired behavior? If not is there any workaround for this ?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.