Discussion and help from anything related to RevenueCat.
Recently active
After integrating RevenueCat, the in_app_purchase event stopped in Firebase. Is this normal? Meanwhile, the purchase event is still coming from RevenueCat's Firebase integration.Flutter, Android
Hello, I'm using Flutter and have connected everything except for StoreKit, but it's not showing up in the production list. Does anyone know why? What could be the reason?
When a new user registers in my app, I also set the email attribute in RC.However, Firebase for Unity doesn’t support the ability to verify an email address before updating it.This creates a situation where a user can update their email address to a wrong one (mistype). At this point I also fire an update to the $email attribute in RC with their new email. Meanwhile, they receive an email stating that someone updated their account’s email address (which they can see is mistyped). The email gives them the option to click a link and revert to their old email address. If they click the link, Firebase will revert to the old email address, while RC will reference the new one in the attributes.I can’t use the email verification flow in my app and ensure that the RC attribute updates only when an email is verified, because the verification flow opens only if the account is not verified. Verification happens outside the app.I thought I can read the RC attributes in-app and compare to the lates
Any tips or advices on how to make Revenuecat work on TvOS using the react native implementation?
Hi revenucat Team,I want to achieve this kind of payment:1 month free trial, after that 3 $ for each month ( for 3 months ) and after that 6 $ per monthHow can I achieve this?for free trial I’m using Introductory offer, and for rest of them should I use promotional offer?but promotional will not support new users and depend on doc its just for subscribed users…any way to achive this goal?
I made a promo code purchase using the app store url method below, but the webhook did not pick up that purchase even though i have uploaded my App Store Connect API Key and my In-App Purchase Config Key in the settings. Any guidance on how to get the webhook to trigger if they go through this route? Thanks!https://apps.apple.com/redeem?ctx=offercodes&id={apple_app_id}&code={code}
Hi, I need to get from an Alias, all aliases related to that one, for example, if a user created the account with alias `1`, and changed the alias somewhere to `2`, and then `3`, and so, I want to be able to retrieve all other aliases just by sending one to RevenueCat.I’ve tried with the EP https://api.revenuecat.com/v1/subscribers/{userId} but it doesn’t retrieve that data.I’ve found a related post but the only answer said that on API v2 it would be possible, and I didn’t find anything in there in order to do that. Thank you!
I am not finding the “IMMEDIATE_AND_CHARGE_FULL_PRICE” Proraion-mode option on the Flutter SDK. Is this available on the latest package? We are using the version ^3.10.0 now. We need this Prorationmode but the SDK enum does not have this method. Anyone found a work around?
I’m using the RevenueCat Paywall UI component in React-Native, however there seems to be no way for a customer to input a discount code to get a percentage decrease on the product. We have setup a discount code in Apple Subscription and it’s linked to a product we are showing the customers in the paywall but there seems to be no way of the customer redeeming a code like you can see in the Apple Documentation belowhttps://developer.apple.com/design/human-interface-guidelines/in-app-purchase#Supporting-offer-codesThe only way I could get this to work is to engage the presentCodeRedemptionSheet function. <RevenueCatUI.PaywallonDismiss={() => router.replace("/(app)/(tabs)/")}/><TouchableOpacity style={{marginBottom: 24}} onPress={() => Purchases.presentCodeRedemptionSheet()}>Redeem Offer</TouchableOpacity>
In my Flutter app, I am trying the different prorationModes that there are for Google Play, when purchasing a subscription upgrade. I noticed that the modes in the docs differ from the ones in the purchases package (using purchases_flutter latest version 6.23.0):/// GoogleProductChangeInfo's ProrationMode.enum GoogleProrationMode { /// Replacement takes effect immediately, and the remaining time will be /// prorated and credited to the user. This is the current default behavior. immediateWithTimeProration, /// Replacement takes effect immediately, and the new price will be charged on /// next recurrence time. The billing cycle stays the same. immediateWithoutProration, // Replacement takes effect immediately, and the user is charged full price of new plan and is // given a full billing cycle of subscription, plus remaining prorated time from the old plan. immediateAndChargeFullPrice, // Replacement takes effect immediately, and the billing cycle remains the same. immediateAn
Hi Everyone,I’m building an app which will be integrated with RevenueCat. The idea is that user can purchase coins (internal game currency which uses can use only inside application). I want to implement server side validation to make sure that user has purchased the coins so i can add the coins to their game account. The user will make a purchase in mobile app and then I want sent the transaction to server for validation and adding the coins. How I can do this on java backend?Thanks.
Hi All,I am integrating IAP into my React Native APP using react-native-purchases. I am creating a development build using EAS for Android and getting the below error: I am using react-native-purchases version 7.22.0 and expo ~47.0.14. As per my understanding, expo ~47.0.14 already supports Android SDK Version 34. Do you think I need to upgrade my Expo SDK version to the latest to make it work?“Execution failed for task ':app:checkDebugAarMetadata'.A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction 3 issues were found when checking AAR metadata: 1. Dependency 'androidx.core:core-ktx:1.12.0' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-31. Also, the maximum recommended compile SDK version for Android Gradle plugin 7.2.1 is 32. Recommended action: Update this project's
I am using real device for test and I am getting these errors:🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)2022-10-27 13:47:15.436381+0300 Runner[12975:595117] [Purchases] - ERROR: 😿‼️ There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-empty2022-10-27 13:47:15.445840+0300 Runner[12975:595300] flutter: PlatformException(23, There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). But I have conjectures:I
So,I am trying to log the offerings I have for my App.. However, I am getting this message > [Error: There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used).More information: https://rev.cat/why-are-offerings-empty] General Information on the App This is the App Store View of the subscription General Information Revenue Cat This is how I set it up in Revenue Cat And here the offerings I have signed all the contracts Apple needs to be signed. We are thinking about migrating to Revenue Cat. Before, we tested buying a subscription with a StoreKit file and a local certificate. I deleted the Sorekit file and the certificate and set the configuration of StoreKit to None I am testing on a simulator.Any ideas what is causing this problem?
I'm trying to connect RevenueCat with Stripe for one-time payments in my JavaScript web app, but I'm running into a problem. When I try to send information about one-time payments to RevenueCat, I get an error message saying there's an internal server error ({ code: 7110, message: 'Internal server error.' }). This issue doesn't happen with subscriptions; it's only with one-time payments. I've tried using different combination with/without Stripe product and price IDs but keep getting the same error. The instructions mentions to use the Stripe's Price objects in documentation, but there aren't clear details on how to do this in the API documentation. Here's the API request I've been using to send the payment information. I would really appreciate any help or advice on what I might be doing wrong or missing. curl --location 'https://api.revenuecat.com/v1/receipts' \--header 'X-Platform: stripe' \--header 'Authorization: Bearer strp_xxxxxx' \--header 'Content-Type: application/json' \--da
We have implemented the simple subscription process and as a part of that process. The following is the process:User gets passed PayWall ==> receives the “premium” entitlement AND 10 points within the app.But the issue is, that we would like to deduct those 10 points in cases where user has subscribed and then fully canceled the subscription i.e. requested a refund within the first week. As if we won’t implement that logic, you can imagine that this process can be abused.So we are a bit baffled with the customerInfo data, specifically what field is responsible for cancelation/refund ? As we assume “unsubscribeDetectedAtMillis” filed is only linked to the renewals.
I recently made the migration from SwiftyStoreKit to handle consumable purchases. It was working well, didn’t see any problems. Days later, while testing in sandbox, I am now getting the error “There is already another active subscriber using the same receipt.” There were no changes on my part that could have broken something. How can I fix this?
When I am trying to change the default offering, why I am getting this error: There is a problem with the internet connection Also while creating the experiment, is is getting created if check the API call in the developer console for POST request, but the GET request is giving 404 error with the code 7233.
If a user is half way through a ‘Plan A’ which cost £5pm - then they upgrade to ‘Plan B’ which is £10 per month - how does this work with billing?I would like to know so I can explain to customers what will happen? In the app it just says ‘Starting today £10’ etc.. but is whats left of their £5 plan knocked off? or refunded?If somebody could clarify his it would really help gert my head around it - so I can explain to users etc
When following the ( excellent! ) documentation for the OneSignal integration, it references the old methods of getting the device ID, which don’t exist since the OneSignal migration to their new `User Centric` model. OneSignal.add(self as OSSubscriptionObserver) // No longer exists// If you've already set up OneSignal, then users should already have// a OneSignal Id. We can check if it's available and send it to RevenueCatif let onesignalId = OneSignal.getUserDevice()?.getUserId() { // No longer exists Purchases.shared.attribution.setOnesignalID(onesignalId)}I’d love to know what I should be setting as the attribution ID using the new methods ( they’re not covered in the migration guide ), as trying the various IDs I can find results in the web hooks failing due to missing aliases, or invalid IDs, and the device ID is no longer accessible as far as I can tellThanks!
I am trying to purchase a product in React native.my env:"react-native": "0.68.2","react-native-purchases": "^6.6.5", in iOS, after configure with iOS public key, I try to purchase a product by using a function purchaseStoreProductconst { customerInfo, productIdentifier } = await Purchases.purchaseStoreProduct(product);But I could not get any response as well as any errors.In my test, I could get the Apple login modal prompt at the first function call.But after some times, when trying to call this function, I could not get any response.
Hello,I may be wrong, but I seem to remember that there used to be an AI in the documentation that you could ask questions to.Kind Regards,Marius
I developed an EXPO app for ios, android and web. I am able to successfully purchase using Revenuecat in android and ios devices, but the web version doesn’t trigger the stripe payment screen. I get this error. I thought that revenuecat will help me to seamlessly trigger IAP regardless of the platform?Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'isConfigured') at Purchases.isConfigured (AppEntry.bundle?platform=web&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.routerRoot=app:67623:26) at Function.<anonymous> (AppEntry.bundle?platform=web&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.routerRoot=app:67631:46) at step (AppEntry.bundle?platform=web&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.routerRoot=app:66197:19) at Object.next (AppEntry.bundle?platform=web&dev=true&hot=false&lazy=true&transform.engine=hermes
Whoever made the decision to use GIFs as visual demonstrations in the docs should be fired and publicly humiliated. Their thought process must have been, “Let’s make things extremely difficult to see, fast moving, and cannot be paused.”. It’s unbelievably frustrating. The documentation is very nuance and attention to detail is highest priority. Why not use a 30 second clip in video format that can be paused and rewinded …. ya know so people can actually see what they need to do 😂😂😂🤡🤡🤡?
I feel stupid, but I don’t understand how to implement the Paywall in fragment in Kotlin.Is there any tutorial or sample available ?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.