Discussion and help from anything related to RevenueCat.
Recently active
I’m quite new to RevenueCat, and I’m currently working on a Flutter app targeting all OS.Since the purchases_flutter package is not available for Windows or Linux (please do something about it!), I assume that I need to use Stripe, connected to my RevenueCat account, to display a web page with a Stripe paywall (I use a Payment Link to keep it simple), and then call the RevenueCat REST API to:list my offerings purchase a product through Stripe check if a user has purchased my one-time payment product or not recover a one-time payment purchaseSo I have 2 questions:Is it the right way to do? Why do I need a secret API Key (that, I assume, I need to store on a server), while I only need a public API Key for the Android, iOS and macOS version of my app?Thanks for your help.
Is there a way to send customer data when you use presentPaywall? All of my customers are anonymous.App User ID$RCAnonymousID:dad1b19971024dfcbb968e83ac87e288I’m using the react node package,import RevenueCatUI from 'react-native-purchases-ui';await RevenueCatUI.presentPaywall({displayCloseButton: false,});
Hello,I’m using Revenuecat SDK in flutter (purchases_flutter 6.30.2).I have an app on Google Console with a free phase of 10 days.When I call Purchases.getOfferings(), I'm getting it, but the duration is expressed as below:period shows P1W3D = 10 days (ISO 8601), which is ok.periodNumberOfUnits = 7 days, which is wrong.Is there a problem in my interpretation or the data returned is inconsistent ? I found the same problem in freePhase.billingPeriod:Thanks for your supportChris
It was working fine a few weeks ago, but now it just crashes every time I try to configure RevenueCat. Issue goes away when I don’t configure it.What do I do?
Is there a way to set custom package name & details on paywalls? Currently, you can only set the same info across all packages. I have different packages that offer different levels of access (which need some description and can’t be purely forced into the name). I see the Siamese (tier) option allows this but the other paywall templates do not. Thanks.
Hello, I'm starting to test the platform and I came across a problem using the Purchases.setAttributes method in Flutter!When I create a customer with the ID: "teste_123", and put some information in the Purchases.setAttributes method, everything works normally. I can see this attribute information both in the webhook and in the platform.However, if I cancel this subscription and make a new one with the same customer, the information is no longer set in the attributes.My code looked like this:
Hello, I know this has been asked before. Please forgive me for needing clarification. I am currently using `react-native-purchases` version `7.28.1`. I understand that simply installing this package fulfills the requirement. My application in production uses 7.28.1. Why did I still get a notification that my current release is not fulfilling this requirement? If I submit a new release, do I need to add: `implementation "com.android.billingclient:billing:7.0.0"` to build.gradle ? Do I need to add `implementation 'com.revenuecat.purchases:purchases:7.0.0'` to build.gradle? Do I need to add ` <meta-data android:name="com.google.android.play.billingclient.version" android:value="7.0.0" />` to AndroidManifest.main ?I intend to keep react-native-purchases to 7.28.1 instead of upgrading to 8.2 due to the fact that after the upgrade, I realize Purchases.getCustomerInfo() does not fetch active entitlements properly. (The subscription purchase in sandbox mode s
I’ve set up a default paywall for my React Native app which updates and displays correctly on my main device (iPhone 15 Pro). However it was rejected from the App Store because when they open it, it shows a much earlier version of the paywall without all the features or formatting included. This is also the case on my Android test device. If the updated paywall is showing on one device, why wouldn’t it work on the others?I should mention that the updated paywall is still not showing correctly on all devices more than 12 hours after creating it (changes update instantly on my main device, though).
I have two subscription set up in play store (Standard and Premium) and i have two base plans in each of these subscriptions ( Monthly and Premium ) . When i upgrade within the same subscription (ex: standard monthly to standard yearly) i use the Proration mode : IMMEDIATE_AND_CHARGE_FULL_PRICE and when i upgrading to a different tier (ex: Standard monthly to Premium monthly/yearly) I use the Proration mode : IMMEDIATE_AND_CHARGE_PRORATED_PRICE. Everything works fine. The issue I have is that play store allows the user to have more than one subscription. It allows the user to have Standard and Premium subscription at the same time. The way i knew about this is that i signed into an account, bought a Standard Monthly subscription, then deleted the account and created a new account and on the paywall i clicked to buy the Premium Monthly subscription and it bought the premium monthly subscription also and I checked the google play store and the play store account is paying for Standard m
Purchases work fine, but I realised my users take no further steps as expected. So I debugged with a Appstoreconnect Sandbox user and real iPhone device.After the purchase in PaywallFooterView(), log shows both debugPrints from onPurchaseCompleted, but navigation inbetween gets ignored. A bit strange since not async. Navigation in onDismissed gets executed.I can probably workaround by settings flags in onPurchaseCompleted, and navigate to another page in onDismissed, but I think this is unexpected behaviour?Log:flutter: 🟩💰 onPurchaseCompleted msg[paywalls] DEBUG: ℹ️ Looking up localization but found no stringsflutter: 🟩💰 onPurchaseCompleted - Transaction: xyzflutter: 🟩💰 onDismissflutter: Page2 opened Code in PaywallFooterView():onPurchaseCompleted: (CustomerInfo customerInfo, StoreTransaction transaction) {debugPrint('🟩💰 onPurchaseCompleted msg);Navigator.of(context).push(MaterialPageRoute(builder: (context) => Page1()));debugPrint('🟩💰 onPurchaseCompleted - Transaction: ${
I’m playing around with releasing my mobile app as a web app, as it’s on the same codebase. The only thing is missing is being able to offer purchases.I know the JS SDK is in Beta, and I guess if I was not a solo-dev, I’d use the stripe integration instead as it seems more mature and stable.Is anyone else here using it in production? How is it working out for you all?
I’m look at the targeting logic to choose a different offering to show a user based on either custom attributes or placements sent from the app. I don’t see why you need placements, in terms of you could just create a custom attribute with a name like “paywall-opened-from” and have different values depending on where the user launched the paywall from e.g. “first-run”, “settings”, membership-page” etc. Why have this separate concept of a placement along side custom attributes, what are the benefits of using them vs. just creating an attribute to define that logic? Thanks.
Is the web sdk “@revenuecat/purchases-js” suitable for use on a node.js server or does it have browser specific dependencies? If it is not, is using an open-api client generator the preferred way to use the rest API?
When RevenueCat update firestore collection to indicate that subscription is cancelled claims are not updated.Scenario to proof : - Cancel your subscription and create a listener on the collection containing the subscription data.- Once subscription is updated by RevenueCat at ‘expiresDate’ your app will be notified.- Once notified call FirebaseAuth.instance.currentUser!.getIdTokenResult(true).- As you can see claims are not updatedBecause of that, after subscription i can’t read some collections protected by firestore rules using claims.
Hi, My game is distributed via Steam on Windows Desktop Platform. I’ve already setup RevenueCat Store Page and Stripe as well. I need to use Stripe payments because my game is distributed only on Windows Plaftform. But in the Purchase script I see only Android/iOS and Amazon. But I don’t use none of these because my game is on Windows Desktop.So, How can I use RevenueCat with Stripe configuration in Purchase Script? Please help me!
According to Revenuecat documentation:“Subscriber attributes are only synced with RevenueCat servers on app launch, app backgrounded, and when purchases are made or restored.” However, we want to sync these attributes to RevenueCat servers without app being sent to background.As you can see from the attached pictures of code I tried, and debug logs, I could never force subscriber attributes to be synced to revenuecat servers without app being sent to background. They are also synced if there is a purchase, but after purchase event. However, we need to use them for before purchase event. Because they are missing with the initial purchase event webhook we are receiving from revenuecat.Any help would be greatly appreciated, thanks
Whenever a user logs out or updates an app their subscription seems to be lost. We are using React Native SDK.
hello alli am trying to import the CSV Glassfy to Integrate to RevenueCat without success.i have only 3 purchases this is very few.i wrote a PHP procedure to do that but no succesful.Glassfy sent me a CSV file with the fetch_token for the 3 purchases and when i try to import i got this error “HTTP Code 521""{"code":7104,"message":"Invalid App Store shared secret for the receipt."} "can somebody help methanl youStr
I am planning to transition our customers to fixed user id from Anonymous ID.in my next Flutter app version, iOS and Android However when we did this for a test customer, I see that a new user ID was created and the existing entitlements remain on the old $RCAnonymousID id. They were not merged.The transfer is:Transfer Behavior:Share between App User IDs (legacy)What are my options?
Hi, We are using Expo EAS to build our app and looking forward to integrate RevenueCat SDK to our project. In RevenueCat React Native SDK Docs, it is pointed out that we need to add payment/billing permissions for Android and IOS (Link). However, with Expo EAS in Managed, it is not possible to modify xcode and gradle projects. I have seen that some people used EAS successfully with RevenueCat, so can somebody please share how they did the “Android Billing Permission” and “IOS In-App Purchase Capability” configurations? Thanks a lot.
How does Revenuecat handle chargebacks and fraudulant refund requests?Is there a place to view / contest disputes in the dashboard or is this handled elsewhere?Do I need to monitor for anything in particular? I struggled to find any information about this in the docs!Thanks!
I’m having a bear of a time wrapping my arms around how to use the wonderful Paywall features of RC, but offering my users both a subscription AND method to just buy a consumable (e.g. 20-pack of credits). I understand RC Paywall features won’t include non-subscription (consumable) products, even if they’re in the offering, correct?So what’s the recommended method for displaying both the subscription products AND consumables in one Paywalled screen?We’re coding in Flutter/Dart using FlutterFlow to help with UI design Our app is free to use, but users may purchase “Credits” (consumables) to use with some features Subscription will entitle them to use certain features (e.g. credit sharing), and may automatically add auto-resetting credits based on the particular product. (think like a phone plan which includes n minutes of data, and then they need to purchase additional data-packs if they run out, but the n minutes auto-resets every billing period)When a user is out of credits, or simp
Hi,My app was rejected because the paywall didn’t load:- Device type: iPhone 13 mini and iPad Air (5th generation)- OS version: iOS 17.6.1 I’ve seen this image when the paywall is slow to load. I’ve never seen it not load. It could be because my initial data is slow to load, but it’s never not loaded before.thanks
I am working on preparing an Android app to properly support the `Transfer to new App User ID` behavior. Up until now, the project on RevenueCat was blocking transfers. The app offers access to content based on a subscription, and the users require an account to purchase any subscription. While reading the documentation, I noticed this section that mentions the following auto-transfer behavior:So I made the following changes - as instructed by the docs here - , to make sure the existing subscription tied to the Google Play account doesn’t transfer to an anonymous user id:Only call `configure` or `login` on the SDK when the user is logged in the app (has a user id) Never call `logout` on the SDKHowever, the problem that I noticed is that when I log in to another in-app account, the auto transfer behavior that is mentioned on the doc snippet shown at the beginning is not happening. Is that section of the documentation outdated or am I missing something?Here is an example scenario that I
How do I know the customer id (originalAppUserId) when a notification is sent to my server?When a user purchases a consumible item I can see the userId in the dashboard, but can’t see it in the callback to my server URL. I only get this information:['appAppleId', 'bundleId', 'bundleVersion', 'environment', 'signedTransactionInfo'] In the signedTransactionInfo I get this keys:[transactionId, originalTransactionId, bundleId, productId, purchaseDate, originalPurchaseDate, quantity, type, inAppOwnershipType, signedDate, environment, transactionReason, storefront, storefrontId, price, currency]None of them are related to the user, so how can I know what user made the purchases being notified to my server?Hopefully somebody can help me out with this.Thanks in advance :)
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.