Discussion and help from anything related to RevenueCat.
Recently active
Hi there!Can you please clarify the case of using RC with the Server-Side observer mode?Prerequisites:Apple App Store Server Notification is configured Google Real-Time Developer Notifications is configured Webhooks are configuredThe happy-path looks like:Our app (Android/iOS) completes a purchase for a new user and gets the fetch token/receipt Our app sends all needed data (app_user_id, fetch_token, price/currency, product_id) to our backend Our backend invokes POST /v1/receipts Our webhook receives the initial_purchase eventWhat will happen if our backend doesn't invoke POST /v1/receipts due to a network error or internal error:Will the initial_purchase event be raised anyway for that new user? Will any future events be automatically detected for that user? Should we guarantee to invoke POST /v1/receipts to ensure correct behavior?
Hello, I wanted to change the paywall display settings from the Paywall editor I wanted to include introductory offer values as well as variable preview values I had previously selected. When I select and save the second box (for introductory offer values ), it shows up on the preview but when refresh the page, the selection is gone and not reflected in the simulator. This behavior is same for both Chrome and Safari.
Love the new paywalls and here are some suggestions for improvements. This is paywall “Bengal” on an iPhone 15 Pro using UIKit.Please hide status bar. Big gap between header image and title. Footer font too big. Can you just say “Terms”, “Privacy”, and optional “Restore”? Please hide thumb bar.HTH
I’m building an app using Flutterflow, Firebase Authentication and RevenueCat.Authentication is optional and RevenueCat App Store subscriptions are optional with a freemium model.After a user has upgraded to a premium subscription, if they subsequently logout or login from the app (firebase auth) their RevenueCat entitlement is “forgotten”. When the user tries to subscribe again, their entitlement is “re-discovered”.Is this intended behaviour? I swear it wasn’t doing this a few days ago, but perhaps I didn't notice. I’d prefer for the RevenueCat entitlements and Firebase Authentication to be independent.I think this is related to anonymous app user IDs.https://www.revenuecat.com/docs/user-idsIs there anything I could have changed in my flutterflow setup that would trigger Flutterflow to change what kind of ID is used with Revenuecat? i.e. change from always anonymous to a mix of app IDs and anonymous? or vice versa?
Hello,I am using webhooks to store all webhook events that RC sends me in a postgres database. I noticed on the webhook documentation that I should be requesting the `/subscriber` endpoint on every subscription webhook event that comes in in order to “sync” the state of the database to the RC api source of truth. My question is - from a server, should I be using the apple API key or the google API key when requesting subscriber attributes from my server? My working assumption is that I can use this api to ultimately tell if a user is subscribed, so I am going to use that to unlock subscriptions / determine backend authorization for certain endpoints. Is this the correct approach here? If so, which key should I be using or does it not matter from the server (will using the apple and google api keys against the /subscriber endpoint return the same data?)Another question I have is about latency. Will the webhook event come in before the revenue cat api is updated? Also is this a bad appro
Hey, I get an error when I paste the JSON file in the Android app config.. Do you have any ideas where I can read how to troubleshoot? they don’t have anything on their website (or I can’t find it)
Hi,I have set up my app, with an auto-renewing subscription in a closed test track on Play Store with myself as License tester, and then downloaded the app on my test device. All subscriptions features seems to work fine, I can subscribe, cancel a subscription, restore a subscription and all actions are reflected in RC backend in the sandbox overview. But I am curious about the options one finds in Google Play Store>Configuration>License test page. I choose the ERROR_CONTACTING_SERVER as response and saved, my expectation was to get an error in the app when buying a new subscription. But no the purchase of a new subscription went well. So my question is how are these response options on the License test page linked to the RC SDK? Regards Tomas
Does anyone know if it's possible to get a shadow on the paywall footer like in their web editor? I am not sure if I am missing something? Looking through the paywall source code, it does not look like a shadow is applied anywhere?
What happens to the active subscriber’s entitlement when i remove the product from sale on my appstore connect. ? Scenario : A yearly subscriber having 10months left and i remove the yearly product from sale on appstore connect.
We are trying to show an alert if the user is not eligible for the trial/offer on our paywall. It’s very important we test that for new users this alert does not show, because otherwise we’re going to start blocking valid payments. We tried testing this on Testflight using a sandbox account. Our sandbox user presses Reset Eligibility to clear out any old uses of the trials/offers.When we carry out this test, the status comes back “Unknown”. Is this common when using a sandbox tester? Are there any obvious reasons this could be? Is there a way of testing the new user path (i.e. one that has just signed up and has not taken out any trials) without having to repeatedly create new users or something? We’re using react-native-purchases: 4.5.2
Hi guysI using Revunuecat to integrate subscription purchasing and daily payment functions.It works on iphone but not on android.Please look at my code section.Which product_id should be the same as the one currently in the rectangular region?Please let me know what I should set the product_id to in my code.Thanks
Hi there,I have completed the integration to my Flutter project. I published my App and test it using real payment. The end result confuses me. Could anyone understand how it works?This is the record on my iPhone, the subscription is 6 month expired in 23rd Sept 2023The screenshot from my iPhone above is customer with ID 14, the records for customer 14 is shown below. In addition, I have the “Renewal Receipts” checked on my iPhone but I did not see any related purchases in the Purchase History. In the Customer List, I have NO customer in the Active List, 2 customers in the Sandbox List, 0 customer in the Non-subscriber List, and 1 customer in the Expired List as shown above. This is the transaction shown in the Customer Profile This is the continuous section from the previous Customer Profile. The screenshot from iPhone shows the subscription to the product “bacabuku_9540_6_month”, but it did not show the subscription to product “bacabuku_1540_1_m”. Meanwhile, the customer profile fro
How can I search for a user, by my custom App User ID, which gets set after user logs in?
Hello, I would like to know if you can help me.I am developing an app in react native, in which my authentication method is through oauth. Next, I register the user in revenueCat using the login method by passing the unique user uuid.Currently, I am experiencing two issues:The first one is regarding virtual cards.I have followed all the steps described in the guide, but from the user account when trying to make a subscription purchase, only my real cards linked to my play store account appear. I have been reading that perhaps this is what is causing the error and I should use the sandbox with a test user without real cards linked, which leads me to the second question. To test the functionality from user “A”, I purchased the monthly subscription. everything worked fine, but from the same device when switching to user account “B”, even changing the play store account, when trying to make a subscription purchase, the error "The product is already active for this user" appears. I have tri
Right now I have a webhook setup to know if a user is going through a downgrade in the near future. But currently revenuecat does not send the PRODUCT_CHANGE notification when the user changes their product instead sends it when the actual downgrade happens and the user is charged but it’s not supposed to be this way according to documentation, where it says the PRODUCT_CHANGE notification will come through whenever the user requests for a change and a INITIAL_PURCHASE event will come through when the actual change takes place
Hi! We are migrating a legacy paid RN app to be subscription-based and need a way to “grandfather” in existing users (who bought the app before adding subscriptions/RevenueCat).These are anonymous users (no login) so can’t link legacy identifiers.RevenueCat provides this (Objective-C based) tutorial - https://www.revenuecat.com/blog/converting-a-paid-ios-app-to-subscriptions but does anyone know of React Native-based example (that will work on both iOS and Android)? Thanks in advance!
We would like to use the new Flutter Paywall in the Form of a footer in our app. Additionally we would like to customize the Paywall’s font and border of the CTA button. When can we expect that to be added? Best regards ✌️
Hello, I’m trying to get App Store Promotions for In-App Purchases working through RevenueCat. I feel like I must be missing a permission or some important setup call somewhere, because I just can’t seem to get the delegate purchases method containing readyForPromotedProduct to ever be called when opening an App Store Promotions link (e.g. itms-services://?action=purchaseIntent&bundleId=<BUNDLE_ID_HERE>&productIdentifier=<PRODUCT_ID_HERE>). I’ve confirmed that the normal purchases method (func purchases(_ purchases: Purchases, receivedUpdated customerInfo: CustomerInfo)) gets called every start, but not the one I want. I’ve tried all the following sources:RevenueCat documentation for readyForPromotedProduct Two different RevenueCat examples (MockPurchasesDelegate.swift, PurchasesDelegateHandler.swift) The following community threads: Here is my Swift code: final class PurchasesDelegateHandler: NSObject, Sendable { static let shared = PurchasesDelegateHandler()} e
This is very strange and I can’t believe it happened. I am testing a purchase with AppUserID 56 as shown in the log file below (indicated as /v1/subscribers/56/offerings). I made a purchase and got a message indicating that “There is already another active subscriber using the same receipt” (as shown below). When I check RC dashboard, it shows that the purchase is made by AppUserID 14, shown below. I am using purchases_flutter plugin and using the login() function upon user login. I supposed the login() function will set the current user of Revenuecat and thereafter the purchase made should be belonging to the ID passed in to the login() function. How can user 56 turn out to be user 14?I hope someone out there can help me. Thank you.
I am interested in whether I can use RevenueCat in Serbia, since Stripe is not supported in Serbia? I would like to create a React Native application that would have subscriptions and the application would be used only in Serbia.
Hi There,My app has already gone live. One of my iOS customer (first customer) complained that she has successfully make the subscription, money is paid, but the app did not grant her the subscribed service.I check the RevenueCat website but cannot find the customer and the purchase. What should I do?
If I use the Sphynx template on an iPhone (14) and want to display a close button I’m getting a really nasty layout.The close button is displayed in a black bar at the top. I feel I need a close button as there is no way to get past the paywall on the iPhone without it. By comparison, the iPad allows you to dismiss the paywall by tapping the modal background.The black bar overlays my content and does not allow scrolling to view the copy underneath. If the black bar could be transparent, that would be a start - is that possible?.The ‘restore purchases’ also takes up a lot of vertical space, which is impacting on how much of the actual unlock marketing copy can be seen.I’m displaying the paywall manually from UIKit code, here’s my code: // Need a close button on iPhone screens otherwise there is no way to get past the paywall without subscribing var withCloseButton = false if (traitCollection.verticalSizeClass == .compact) { withCloseButton
I am having trouble getting RevenueCat to work properly in my project when building for visionOS, integrating via CocoaPods. The problem seems to come from lines like this:#if os(iOS) || targetEnvironment(macCatalyst) || VISION_OSwhere VISION_OS is not defined, even when building for visionOS, causing the code to take the wrong path.How is this supposed to work? I can’t quite figure out where VISION_OS is supposed to be defined. Is there a reason this isn’t just using #if os(visionOS)? Any help or workaround you could provide would be much appreciated!Using Xcode 15.1 beta 2.
I tried testing my app before sending to app review and now I cannot cancel the payment for the reviewer account we have createdHow do we go about this so the reviewer has to make payment to test the payment flow
I am implementing Paywalls on kotlin for my Android app, however whenever the user swipes back or presses the back button, the paywall simply goes away and a white screen shows up. For context, I am implementing a hard paywall (without a back button, or option to say no). I wonder how I can override this behavior. I am using version 7.4.0.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.