Discussion and help from anything related to RevenueCat.
Recently active
I’m implementing RC on Android. Sandbox testing.My use case is this:✅ I make a purchase in the app and reload the purchaser info ✅ The user correctly now has an active subscription, in both RC and Google Play Store❌ 5 minutes later I re-open the app and load purchaser info. The active subscription is gone from RC, both via getPurchaserInfo and on the website✅ On Google Play Store it’s however correctly still active and I keep getting purchase confirmations mails every 5 minutesWhy is the subscription deleted from RC after the initial 5 minute subscription period?
Relatively minor but just seeking some clarification on the numbers in the dashboard. We are currently doing testing and haven’t published the app to a production environment yet. As it stands the dashboard is showing 132 new customers and 138 active users, all of these are test users. Deleting the test customers does remove them from the Customers list (after a period of time) however the dashboard still seems to count them. Active users, as I understand it, is just the number of user ID’s (including anonymous/generated) that have been seen within 28 days. My question is over time we’ll still be testing things and will interfere with these numbers. Is there anyway to differentiate between the testing users and production. Toggling the ‘View Sandbox data’ doesn’t seem to effect these numbers?
I would like to track on my server when each user first subscribed. I hit the /subscriptions endpoint and check `subscriber.original_purchase_date`, but it is set to some date in 2013 (I only started implementing IAPs in the past couple of weeks). The property under `subscriptions.<product>.original_purchase_date` seems correct, but I would prefer not to have to check every product in that `subscriptions` dictionary for the earliest date, especially not knowing right now which products I will want to add later, and which of those I will count as subscriptions.What is the purpose of `subscriber.original_purchase_date` and why is it set so early? Is it an artifact of Sandbox testing? A bug?
Hi , My Android app suddenly became returning an empty string on getDescription() . no code change on my app. however thegetProduct still return the products info.
Hello,I have an app, where I’m selling pictures. I have Non-Consumable and Auto-Renewable Subscription formula. This means, you can buy pictures one by one or you can subscribe for one year to get all of them. My GET API check your inventory, to make sure you own the image. Therefore I synchronise the database via Webhook. My RevenueCat structures look like this:I have 1 offering called default, with 2 packages (Annual and Lifetime) Annual package has 1 product Lifetime package has 1 product (I don’t want to map the product-image one by one, cuz it’s not scaleable) I have 2 entitlements First one is for lifetime things, therefore this has only 1 product (Lifetime package) Second one is for subscriptions and lifetime things, therefore this has 2 products My problem is, if my customer make a Non-Consumable purchase (so buy only 1 image), my webhook called, but i do not know, which image was bought. I know who bought, cuz after login I’m settings the app_user_id. Any suggestion?
User got purchase transferred from another user, in the renewal event after this transfer the webhook did not receive app user id, instead only RCAnonymousID is included in the webhook request. How do I know which user had this renewal in this case?
Hi, I have successfully running RevenueCat in-app subscriptions and now integrating another subscription method - Stripe Web Payments. I have created Products in Stripe and have created Products in RevenueCat using product ID from Stripe as product key in RevenueCat. I also have tried to create RevenueCat products using price id from Stripe. After I make a purchase in Stripe, I want to validate receipt so purchase appears in RevenueCat by making a POST request to API:curl --location --request POST 'https://api.revenuecat.com/v1/receipts' \--header 'X-Platform: Stripe' \--header 'Authorization: Bearer *** MY_STRIPE_KEY ***' \--header 'Content-Type: application/json' \--data-raw '{"app_user_id": "iLxQ2wdl26","fetch_token": "sub_1KRgPlGOGvcC5HQI5pE"}'But no matter of the configuration, I get this in response:{"code": 7103,"message": "The receipt is not valid."} Maybe anyone has any tips that I might be missing? Cheers,Daniels
Got this error while trying to setup Purchases 3.4.3 in React Native.Method addObserver must be called on the main threadAnyone faced it?
Besides the sdk still being in beta(rc), would you say it has the features to be used in production? or does it not yet have all the basic features of the old sdk? Will RevenueCat support the new refund API apple introduced past WWDC with v4?
Hello, I’m getting credentials issue with google play store in my flutter app. I created them about 5 days ago so more than 36h has passed. Also I creted other credentials but couldnt get it to work neither. DEBUG(19728): ℹ️ API request started: POST /receiptsD/[Purchases] - DEBUG(19728): ℹ️ API request completed with status: POST /receipts 503E/[Purchases] - ERROR(19728): 🤖‼️ There was a credentials issue. Check the underlying error for more details.I/flutter (19728): ERRORI/flutter (19728): PlatformException(11, There was a credentials issue. Check the underlying error for more details., {code: 11, message: There was a credentials issue. Check the underlying error for more details., readableErrorCode: InvalidCredentialsError, readable_error_code: InvalidCredentialsError, underlyingErrorMessage: Invalid Play Store credentials., userCancelled: false}, null)
Hi,I have multiple entitlements in my app and I want to group the products under respective entitlement on my paywall. I am able to get only purchased entitlements from `getPurchaserInfo` . Is their a way to get the "Associated Entitlements" for all products (both purchased and not purchased)? Thank you
I know its not possible to cancel a user’s subscription using the RevenueCat’s SDK however we want to build a user experience in the app where if a user presses on a ‘Cancel’ button we navigate the user to the settings app of their OS. For example in React Native you can use `Linking.openURL('app-settings://notification/')` to navigate the user to the notification's settings of the app. Does anyone know what the url is for the `manage subscription` setting page in iOS and Android? If you want to see a real-life example of this, check out the Strava App.
When I test the subscription in the sandbox, it prompts:Apple Media Services Terms and Conditions have changed.Finally, "Coming Soon!" appears and it is over, there is no response.Please see the screenshot below to help me see if any steps are missing.thank you all.
Hi, really loving RevenueCat!I have the following situation:Android App I initialize Purchases SDK in the AndroidApplication class with an anonymous User ID User logs in → I log in the user into the purchases SDK → User has an anonymous ID + my domain user IDThe problem happens, when the following happens:The user purchases a subscription with automatic renewal The user uninstalls the app and then installs it again The next time the webhook calls my backend for the renewal, it will contain ONLY an previously unknown anonymous ID and no way for me to match it to the userThe main problem stems from this I believe:Current App User ID Provided App User ID already exists? Provided App User ID has anonymous alias? Result Anonymous Yes Yes PurchaserInfo changes to Provided ID, no aliases created. My solution is to manually alias the current app user Id every time a user logs in IF the current app user id is an anonymous one. It has worked so far, however, it feels strange. Is t
Hey team, consider the following scenario: User Signs up. We show them an “Initial Paywall” Offerings: $20 month, 2 week free, $80 a year, 2 week free Here, we let the user “Skip” the Paywall In this case, we don’t show it to them again, for 2 weeks _2 weeks later_. We show the user a “Blocking Paywall” Offerings: $20 month, $80 a year Some users buy at “Initial Paywall”, some users buy at “Blocking Paywall”. 3 months later, the user goes to their “Membership Settings” We want to let the user upgrade / downgrade Here, their `activeSubs` could contain _either_ 2 weeks free, or notProblem:Let’s say in the upgrade / downgrade, I have “$20 a month”, “$80 a month”. A user on the “20 a month, 2 weeks free” _can theoretically “upgrade” to the $20 a month plan. This feels like a bug, as it won’t make a difference -- I would like it so they can only upgrade to the yearly one. Is there a “best way” to handle this scenario?
A customer of ours is encountering the error shown below in our React Native app on Android. It seems that from my research, this message is coming from Google’s subscription service. How do we troubleshoot?
Hi, We were wondering if there is a way to get the experiment name or id and the variant the user is in from the user object in the React Native SDK?Or does it come via the Webhook at least? Thanks so much!
Hey,We are reaching you because we have some questions concerning the switch between alias id and transfer purchase.Today we use the alias behavior, but we would like to have one user id = 1 subscription, so we should migrate to the transfer purchase behavior.What will happen for users who share a subscription with multiple ids (aliased)?Also, we would like to know if it's possible to detect the email linked to a subscription before he restores his purchase? If the purchase is already linked to an email, we would like to prevent our users to restore their purchase.Thanks a lot!
When using revenue cat on flutter, I am getting the billing unavailable error at times and cannot access any subscription info about the user, Mostly occurs when device starts offline, then later refreshed with internet connection, navigating to the page that checks subscription then gives billing unavailable error
Hello,I have user crashes related to configuring Purchases. However, when i have experienced this crash, it is when i am trying to close the app. I have a single exit point and use:startActivity(intent);finish();before moving to a new intent. My exit looks like the followingThread.currentThread().interrupt();finish();System.exit(0);finish();Any thoughts?
Good morning,We are trying to integrate Stripe into RevenueCat, in addition with Google Play and App Store. We had some doubts regarding if our product structure in Stripe is adequate for integration.- We have a Prime Entitlement.- In Stripe we have 2 products, one for Spain and one for the US.- Each of them has 3 prices (what in RevenueCat are packages) for monthly, quarterly and yearly subscription.These three packages are the same ones we have in Apple and Google Play.Therefore in Stripe we have two products, each of them with 3 prices.Will this Stripe structure work with Revenuecat? If not, how could we properly modify our Stripe structure to work correclty?
[Reposting in SDK’s as I accidentally posted in General]I’m trying to push my app out for Beta testing but when I upload a build to TestFlight and run it the call to Purchases.getPurchaserInfo() hangs and never returns. It works on the same device when just running outside of TestFlight. I can run through the whole IAP flow when running on this device. But as soon as I push to TestFlight and run it through there it just hangs waiting to get purchaser info. I think these are the logs needed:default 12:08:37.873277-0500 Runner [Purchases] - DEBUG: There are no requests currently running, starting request GET /subscribers/$RCAnonymousID0X0P+0f621ae3fbd374db9b96d0b6d31ea5d20default 12:08:37.873327-0500 Runner [Purchases] - DEBUG: API request started: GET /v1/subscribers/$RCAnonymousID:f621ae3fbd374db9b96d0b6d31ea5d20default 12:08:37.883570-0500 Runner [Purchases] - DEBUG: There's a request currently running and 0 requests left in the queue, queueing GET /subs
Hi,I would like to ask if the UpdatedPurchaserInfoListener works across platforms. eg. user will be logged in on iOS and the Android app and will buy a product on one of them. Does this listener also trigger the other platform's UpdatedPurchaserInfoListener? (when the other app is active)
MyApp requires signIn operation for purchase.And also, `Purchases.logIn("my_app_user_id");` after signIn. But, `created a new alias` executed about 1 month after purchased.This occurs a few users. Why??In the period, it has been used `$RC:AnonymouseID:xxx` instead of `my_app_user_id`.It is not expected. it should create alias as `my_app_user_id` as soon as possible(ex. next to First seen using the app). Any help, please
I have an app made in Flutter that is running on Android and using subscriptions. The most basic things are working. But this is not:User have an active subscription and then cancels the subscription.I wait for more than ten minutes. I restart the app.Still PurchaserInfo says willRenew is true and unsubscribeDetectedAt is null.What can be done to get the updated information?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.