Discussion and help from anything related to RevenueCat.
Recently active
Hi,I’m developing an app that requires the users to sign in before making purchases (subscriptions).However, as I understand, Apple requires that we add a Restore button that enables restoring purchases without the user having to log into app’s account.My question is about the following case:the user logs in, makes a purchase for some reason, e.g. on a new phone, the user enters the app w/o being logged in, does not log in and restores his purchases, his subscriptions therefore transferred to the id auto-generated for the anonymous user Question 1: if the same user does log in on their Android device, will they be able to access the subscription? Question 2: I understand that if the user logs in on said new iphone device after restoring purchases, the new anonymous id along with the purchases will be merged with the existing id, therefore providing access on Android devices where the users signs in as well. Is that correct?Thank you kindly. :)
BACKGROUND: We sell IAP subscriptions and lifetime access to premium content. We also sell subscriptions and lifetime access through Stripe on out website. Standard stuff works great. No problems. ISSUE: after user bought lifetime access through Stripe, I successfully refunded the purchase using Stripe. I expected RC would cancel the entitlement but it has not done so after waiting about 1 hour. No refund is showing in RC console. The user still has access to the content. Is this expected behavior? If so then how can I cancel entitlements after refunds?
https://cln.sh/99ueV6Data has been "coming soon" for 3 days.My guess is that it's because I have two offerings which are the same: https://cln.sh/KlaTpN`pro sub` was what I originally setup before I started experiments`pro sub 2` I setup to test against `pro sub` in my first experiment`pro double` has the same packages as `pro sub`, but I thought that making a new offering id would make it easier to analyse the data
My Flutter app is showing a prompt to sign in with Apple when I call Purchases.checkTrialOrIntroductoryPriceEligibility on iOS. I found a related topic from a RC customer using the iOS SDK.The suggested workaround is to check if a receipt exists before calling checkTrialOrIntroductoryPriceEligibility. The Flutter SDK doesn’t seem to provide a way to check for receipts. Is there any workaround for me without writing custom iOS plugin code?It sounds like this issue only happens in the sandbox environment, but I’m concerned that my app will be rejected if the reviewer is constantly getting sign-in prompts.
I am unable to replicate the Active Subscriptions number from the dashboard chart.From the transactions data obtained through the ETL exports, I have tried the SQL example found here, as well as variations of it, but the result always differs from what’s in the chart.What are the calculation details for Active Subscriptions?
Hello, I am testing my purchases with a test user and when I do my very first purchase I get presented with two purchase sheet from apple. After I enter the password to confirm the purchase on the first one, a second purchase sheet is shown after. Then I re enter the password a second time an I am able to do the purchase. This happens only on the very first purchase, the following purchases do not show this behaviour. Here’s my traces:2021-11-30 08:47:05.098181+0100 StickerTune[569:24807] [Purchases] - DEBUG: ℹ️ makePurchase2021-11-30 08:47:05.100231+0100 StickerTune[569:24807] [Purchases] - DEBUG: 💰 Purchasing product from package - st_499_1m in Offering st_monthly_yearly2021-11-30 08:47:05.110488+0100 StickerTune[569:24807] [Purchases] - DEBUG: ℹ️ PaymentQueue updatedTransaction: st_499_1m (null) ((null)) (null) - 02021-11-30 08:47:21.310017+0100 StickerTune[569:24807] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive2021-11-30 08:47:22.494746+0100 StickerTune[569:25165] [tcp] tcp
One of the purchase related scenarios for my app is removing ads that are normally displayed right after the app is installed.I was wondering what would be the best way of handling the case where:1) the user installs the app2) the user makes a purchase removing the ads (a non consumable)3) the app is uninstalled4) the user reinstalls the app on the same or a different device.At this stage of my project I do not want to maintain a backend server or use Firebase with a login mechanism etc, and instead I would very much like to rely on the RevenueCat alone. I have tested the scenario on Android and it appears that since it is recommended that the method that restores transactions should be triggered consciously - by tapping a button for example and not when the app is starting up, the only way I can think of to do this is to display a dialog when the app is started for the very first time and give the user opportunity to restore the purchases (if any were previously made) and once the pu
Hi, documentation at https://docs.revenuecat.com/docs/purchaserinfo says that we should call getPurchaserInfo() any time a user accesses premium content.However, I can see that SDK updates its cache when app comes to screen.Is it still necessarily to call getPurchaserInfo() anyway?
Hello,We are currently testing RevenueCat.On iOS, we are setting the user email with:Purchases.shared.setEmail(email)It works as intended:[Purchases] - DEBUG: 😻 Subscriber attributes synced successfully for App User ID: ZDOuNi1VLxWfXSJtdrO6eMbYe3H2On the customer profile we can see that the email attribute has been set correctly:https://app.revenuecat.com/customers/...But searching the user by email on the web console does not work (we checked several times for typos).Searching by user id works as intended.Thank you for your help.
Recently one user subscribed to our annual plan, however the webhook failed to proceed because the App user ID returned only the RC Anonymous ID ( $RCAnonymousID… ).I have no idea why it happens and not sure what to do next, all I can do is wait for him to contact us. Any advice? FYR, all other users has successfully logged in with the correct App user ID.
Hello Everyone,We developed an app using Appgyver Composer Pro that currently doesn’t have In App purchase plugins. I saw this documentation: https://docs.revenuecat.com/reference#basic and was wondering if this could work for adding Zoom meeting links in the app considering Appgyver Composer Pro has capability to integrate REST APIs? Apple will not accept our app becuase we do not have In-app purchase services within the appThank you all for your help!
The users that have NemID verification (security step for online payments in Denmark) for payments with their cards can’t make an in-app-purchase in order to subscribe to the premium content in our app. They get a 403 HTTP error when being redirected to the verification website and when trying to verify. This has so far only happened for users that use Mastercard.What should we do about that? Did we miss something in our payment implementation or should we configure something more on RevenueCat as well? Also, is there a possibility to have multiple web-hook urls? Basically we would like to have one url for the Sandbox account for the development environment and a second url for the production environment. Can this be done? And lastly, can we somehow test this flow (paying with a card with NemID verification) on the test versions of the app and RevenueCat sandbox account. (Otherwise the only way to test this, would be going live with the app, and we obviously don’t want to test the app
I'm preparing the Store listings and they ask me how I use the data. I do not collect any user data, I only make the app purchase through subscription through RevenueCat. Now I wonder if the fact that there is RevenueCat in the middle must make me say that some data are withheld and if so what should I say about the use of user data.Can I say that I don't collect any data or isn't it?Thanks
Apologies if this isn’t the right place for this question but I’m really struggling to evaluate whether our use case is possible.Our desirable payment method would be to offer a subscription after the user has completed so many tasks within our app, rather than over a time period. The most common example to this is “You’ve read 4 articles this month.. now here's how you can subscribe”. Everything I’ve read around subscriptions seems to offer free trials based on time. It's our first time implementing in app purchases and we’re assessing our options. My assumption at the moment is that we can keep track of their usage and then present a non-free trial subscription after they’ve reached that threshold but I’m not sure if I’m being naive there. Does anyone have any experience with this approach or could kindly point me in the direction of any examples of it with Revenue Cat?
When I initially set up RevenueCat, I created and used a Non-Renewing Subscription product. This product was used to indicate if a user is premium or not. Everything works as it should be. What I want to do is to change this existing product with a Auto-Renewable Subscription product WITHOUT any of my existing premium users loosing premium access. This is really important for our app, this is why I want to make sure that nothing goes wrong as I make the required changes. I created a new product on App Store Connect which is a Auto-Renewable Subscription product. What steps should I take, in order to change the product that is now used inside the app and WITHOUT any of my existing premium users loosing premium access?
Hi, We’re setting up Stripe on our webapp to work alongside our app. Now we’ve connected Stripe successfully through the dashboard and it looks ok there. But now when we want to save the receipt to RevCat is gives us this error: { "code": 7116, "message": "Invalid Stripe. Make sure your Stripe account is properly connected."} Don’t think the problem is the call itself, but here is the code: const _response = await fetch('https://api.revenuecat.com/v1/receipts', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Platform': 'stripe', 'Authorization': 'Bearer ' + REVCAT_KEY, }, body: JSON.stringify({ fetch_token: _subscriptionId, app_user_id: _userId, }), });Is there any way to get some clearer debug logs on what exactly is wrong?
I am using Revenuecat (purchases_flutter: ^3.7.0) plugin in my Flutter Android app. However I noticed, even if the (test) subscription has been ended the code shows it is still active.I am using the following method to determine whether the subscription is active or not. static isUserSubscribed() async { bool _isSubscribed = false; await Purchases.setDebugLogsEnabled(false); await Purchases.setup(revenueCatId); if (userId != null) { await Purchases.setup(revenueCatId, appUserId: userId); PurchaserInfo purchaserInfo = await Purchases.getPurchaserInfo(); if (purchaserInfo.entitlements.all["Ads Free"] != null && purchaserInfo.entitlements.all["Ads Free"].isActive != null && purchaserInfo.entitlements.all["Ads Free"].isActive) { // it comes here even though the subscription has been expired _isSubscribed = true; } return _isSubscribed;}I noticed, when I do test purchase and even after the subscription has been ended the above method retur
Hi, I’m going to outline my processes to easily create free trials and subscriptions for one device per google account. I am looking for advice on how to administer the subscription accounts and what pitfalls I may have, basically will my system work. Free TrialThe app is installed and on its first execute, RevenueCat creates an account for the app. Every time the app is executed the app will request the requestDate and check it against the current date, when the dates are more than 14 days apart the free trial will end. My trial time is currently hard coded in honesty I would not really change this time but I am aware I can grab this information from Google if required.I believe the requestDate does not change as its a static date when the account was created so it can be used for this process.Is there anything I need to know about using this date does it change at all ?Questions : I want to allow a one time only free trial unless I authorise a second trial but I don’t want the app
Hello,Our custromer tried to subscribe to our app and had an error message in French "Transaction Denied" when she tried to proceed payment within Play Store (French location).The customer tried to delete and re-install the app and also tried to reset the bank detail for no better result. Any idea of could have occurred and what to do to resolve this issue? Our app is very recent with only few succeeded transactions of this type. Thanks a lot for you help, Kind regards,Bertrand
Hi,My app is on the store a long time ago, the app-purchase product is approved, the problem is that offerings works well in testing mode when running the app from Xcode, but in production it shows that the device is not allowed to make purchase.I have installed the sandbox configs and license in the Xcode.
Hi there! When we first set up Stripe subscriptions, we verified that they appear in Segment, but now no events are appearing in Segment. Could it be due to the fact that we’re using a coupon / free trial setup (whereas our initial tests did not use coupons)? Why are Stripe free trial events showing up in RevenueCat (as $0.00 purchases) but not in Segment? This is incredibly important for our business analytics, and I was very surprised to see that it isn’t working as expected.
Hi,I am testing revenueCat webhooks, and the webhooks can send events our server, but it is always display “empty” response body on dashboard, not matter what response text from server, as following:How can I get our server response text to show on revenueCat dashboard?
I published my flutter app in both iOS and Android, got the approval from Google Play in a day. Today I got the message from Apple saying I need to make some changes. I went tho the resolution centre and the message is “We found that while you have submitted in-app purchase products for your app, the in-app purchase functionality is not present in your binary.Next StepsIf you would like to include in-app purchases in your app, you will need to upload a new binary that incorporates the in-app purchase API to enable users to make a purchase.Once you revise and resubmit your binary, you will also need to resubmit your in-app purchases for review since they are in the Developer Action Required state. For each in-app purchase product submitted, please be sure to edit the detail information or cancel the request to change the detail information for the in-app purchases using App Store Connect.Alternatively, if you do not want to include in-app purchase products in your app, it would be appro
I have created multiple products within App Store Connect with the correct prices set in GBP. However when the IAP popup appears in the app the price is 10% greater that what I set in App Store Connect. For example one product has a price of £79.99 but when I try to pay for it in the app the price is £84.99. I am using the React Native SDK. IAP:App Store Connect:
At the moment I’m trying to read custom user attributes using the REST API.https://api.revenuecat.com/v1/subscribers/XXXXXXXXXXXXX'According to the following link this should be possible:https://docs.revenuecat.com/docs/subscriber-attributes#reading-attributesHowever; after a request I get the following data: without any attributes:{ "request_date":"2021-11-30T09":"16":09Z, "request_date_ms":1638263769288, "subscriber":{ "entitlements":{ "Pro":{ "expires_date":"2021-12-25T12":"38":30Z, "grace_period_expires_date":null, "product_identifier":XXXXXXXXXXXX, "purchase_date":"2021-11-25T12":"38":30Z } }, "first_seen":"2020-11-14T21":"10":39Z, "last_seen":"2021-11-29T15":"03":39Z, "management_url":null, "non_subscriptions":{ }, "original_app_user_id":XXXXXXXXXXXX, "original_application_version":1.0, "original_purchase_date":"2013-08-01T07":"00":00Z, "other_purchase
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.