Get help with your SDK implementation.
Recently active
Hi,I am developing an app for Android using Flutter and I am trying your awesome service!!All is working fine by now, but the refund operation. I explaining what I did till now:I have purchased successfully a non-cosumable (life time) with my testing account. This is working fine also when restarting the app without internet active also after hours, meaning the cache does the job.Then I refunded the account in Google Play console and waited till it was successfuly refunded.Starting the app the entitlement is still active. At start I check this using:PurchaserInfo purchaserInfo = await Purchases.getPurchaserInfo();purchaserInfo.entitlements.all['myLifeTimeEntitlement']?.isActive <== this is trueBasically I have the same issue described in this post:https://community.revenuecat.com/topic/show?tid=326&fid=7I read somewhere that the SDK cache is refreshed about every 5 minutes. Thinking about this, I found:await Purchases.invalidatePurchaserInfoCache();which is not recommended. Any
Not sure if bug or intended, but I noticed that after paywall is triggered by RevenueCatUI.presentPaywallIfNeeded() and user presses "Restore" (they have no subscription to restore) and then dismiss the paywall, RevenueCatUI.presentPaywallIfNeeded() returns PAYWALL_RESULT.RESTORED (in the jsdoc it says that this will be return if successful restore happened, but this is not the case).The problem is that I can't rely on PAYWALL_RESULT.RESTORED in my code.Any ideas?
Is there a way to generate the same Customer Portal link (the one outlined here https://www.revenuecat.com/docs/web/revenuecat-billing/customer-portal) for a user that is sent to them in their invoice?
I’m having issues with a lifetime product I’m trying to setup here. This is my configuration:However, the returned `currentPrice` shows `null`:I don’t see any other way to retrieve the prices using the API either. Am I missing something here?
I want to support multiple subscription tiers (silver, gold, ...) for my Android App. The subscriptions grant a monthly token quotum, consumed by using the apps features. Different tiers grant different quota. I use the RevenueCat Paywall.I have set up the different subscription tiers each with their own entitlement and currently have a single offering for all tiers.I want customers to have only one subscription at a time, but have the ability to upgrade/downgrade the subscription tier. How would I implement that?
Hello RevenueCat Community,I’ve been using RevenueCat SDK 7.28.1 for several months with a single "Pro" plan, and everything worked fine. Recently, I added a new "Collaborator" plan within the same offering (premium_access). However, adding this new plan has introduced numerous issues, and I’m now struggling to get everything working as intended.Offering StructureHere’s the structure of my offerings:Each plan includes three products, and they are all grouped within the same premium_access offering, as users cannot be subscribed to both plans at the same time.JSON Structure Returned by RevenueCatAfter extensive testing, I’ve identified the JSON structure RevenueCat is returning when I fetch offerings. Here’s a simplified version that includes the full detail of colab_monthly:{ "offerings": { "serverDescription": "Unlimited access to all premium features for a monthly/annual price", "metadata": {}, "monthly": { "offeringIdentifier": "premium_access", "product": { "identifier": "com.myapp
Error enumerating unfinished transactions for first transaction listener: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={client-environment-type=Sandbox, storefront-country-code=GBR, NSUnderlyingError=0x600000c02dc0 {Error Domain=AMSErrorDomain Code=2 "Finance Authentication Error" UserInfo={NSLocalizedDescription=Finance Authentication Error, AMSURL=https://mzstorekit-sb.itunes.apple.com/inApps/v1/history?guid=7666DF87F208&reason=initial, AMSStatusCode=401, NSLocalizedFailureReason=No delegate to perform authentication: <AMSAuthenticateRequest: 0x600000c0f4b0> { account = jerichomiles6@gmail.com (78985344-F6FD-42AD-BCEB-DF36B39D9837), logKey = 1379CD2F, options = <AMSAuthenticateOptions: 0x600003b408c0> { AMSAuthenticateOptionsAllowPasswordGeneration = 0, AMSAuthenticateOptionsAllowSecondaryCredentialSource = 0, AMSAuthenticateOptionsAllowServerDialogs = 0, AMSAuthenticateOptionsAuthenticationTypeKey = 1, AMSAuthenticateOptionsCanMakeAccountActiveKey =
I am using RevenueCat in my React Native app. I have a subscription and I use getCustomerInfo to keep track of subscription status. When the subscription is purchased, getCustomerInfo’s activeSubscription property lets me know that it’s been purchased and I can let the customer know the same. But when the subscription is cancelled, activeSubscription still shows active until the subscription finally expires (in real life this would be month but in my case, it’s 5 mins). As a result, I’m not able to let the user know they’re subscription has been cancelled when they cancel (I have to wait till it expires). I have also checked out the willRenew and unsubscribeAt properties of getCustomerInfo.entitlements but they show the same behaviour. I also tried out addCustomerInfoUpdateListener instead of getCustomerInfo and it also shows the same behaviour.
This have been extremely frustrating, and I am in dire need for help or assistance. I created a app and added the RevenueCat code information to my project, and followed all the examples exactly. I watch countless videos. I finally got it to work on the simulator IOS 14 like explained. it works perfect. I triple checked my information both on RevenueCat platform and in apple developer. after being uploaded to apple developer, and I downloaded it from TestFlight. I try to make a purchase, and nothing happen. it is as if the screen is frozen. please help me with this issue. Thanks!!!!
Dear RevenueCat, Thank you for the Paywall functionality.How can I customise the close button color in Swift?
I set the light mode color of the close button to white, but it is always black on Android, how to fix this problem?
Is there any way of getting the FFI file for the revenue cat purcahse SDK?
Hi, I am implementing Revenue cat SDK 8.4.0 in my Android app. It works perfectly and everything is ok for most of users but lately I am receiving this crash on crashlytics java.lang.IllegalStateException: Attempting to launch an unregistered ActivityResultLauncher with contract com.revenuecat.purchases.ui.revenuecatui.activity.PaywallContract@81ad151 and input PaywallActivityArgs(requiredEntitlementIdentifier=flixunblocker_v5, offeringId=flixunblocker_offer_v5, fonts=null, shouldDisplayDismissButton=true). You must ensure the ActivityResultLauncher is registered before calling launch(). I tried to reproduce the crash but I didn’t succeed. The common thing that all the users receiving this crash are Android TV users. Do you have any idea how to fix this or how to reproduce this issue. Thanks
In my app once the user has successfully subscribed and has access to the app, I want to be able to display the current pricing that the user is on back to the user. This is fine if the user is not on an intro pricing plan, but I am having a hard time determining and then displaying this if the user is in an intro pricing period. I am able to find the correct intro pricing using the snippet below, but this does not help me figure out if the user is paying that price or the full price. packageInfo.product.introPrice?.priceString I am using React Native. Thanks
export const extFirestoreRevenueCatPurchasesHandler = onRequest( async (request, response) => { const {processUserCredits} = require("./functions/userCredits"); await processUserCredits(request); response.status(200).send('Webhook received'); });export interface RCEvent { api_version: string event: { aliases: string[] app_id: string app_user_id: string country_code: string currency: string entitlement_id: string entitlement_ids: string[] environment: string event_timestamp_ms: number expiration_at_ms: number id: string is_family_share: boolean offer_code?: string original_app_user_id: string original_transaction_id: string period_type: string presented_offering_id: string price: number price_in_purchased_currency: number product_id: string purchased_at_ms: number store: string subscriber_attributes: any takehome_percentage: number transaction_id: string type: string }}export async f
When i build my app on the new sdk i get a coiuple errors:Trying to purchase a plan: ERROR: 😿‼️ There is an issue with your configuration. Check the underlying error for more details. This StoreProduct represents an SK1 product, but SK2 was expected.
I’m seeing this error pop up in production only, through Sentry logs. It is intermittent -- it looks like most users are able to subscribe successfully. And, I know that in some cases this may be a legitimate situation where someone clicks purchase and then cancels out of it.However, I see this happening a lot more than I would expect if it were just that situation. In addition, I have specific reports of users trying to make the purchase and seeing an error message in my app. When I triangulate that back to the Sentry issue occurring on that device at that time, it’s the “Purchase was cancelled” error.So my question is, if the user is saying they are attempting to purchase and not canceling it, but they are still getting this error back from RC, how can I further debug?For additional context here is the complete error I get back from RC. Again, this happens intermittently when users attempt to make a purchase, even if they state that they did not cancel it:{ code: 1, message: Purcha
When I use the price string from the API, we see 12.99 like we have in the Apple app store. However, when I access the price itself in the Flutter client library, I see 12.989999771118164. I am not manipulating this price at all, I am printing it directly from Flutter lib. Do you think this is: 1) Apple weirdness 2) RevenueCat API bug OR 3) Flutter bug?
I have created a product in google play console, and I also created a revenuecat product with the same id, but the the following line of code returns an empty array.// Fetching all products by passing an array of their product_idconst products = await Purchases.getProducts(['product_id']);// Printing the list of products available.console.log(products); // Example response:[]Project info:Expo SDK version: 45 React native: 0.68.2 react-native-purchases: 4.6.1 Device tested: android
Now Apple requires privacy manifest for each third party SDK. We are using revenue cat 6.10.0 and there is no xcprivacy file inside this revenue cat for unity version. Where can I get xcprivacy for revenue cat to use it in unity3d project?
Hello, Team, hope you are doing well.I upgraded revenueCat module to latest one in my ionic/angular project.this is the module in package.json"@revenuecat/purchases-capacitor": "^7.3.1"it’s working on xCode without issue.but I can’t build android build on Android Studio.Execution failed for task ':revenuecat-purchases-capacitor:compileDebugKotlin'.> 'compileDebugJavaWithJavac' task (current target is 17) and 'compileDebugKotlin' task (current target is 19) jvm target compatibility should be set to the same Java version. Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.This is the error log when building. if I use old package, the android build will work without error."@awesome-cordova-plugins/purchases": "^6.4.0""cordova-plugin-purchases": "^5.5.1" Can anyone help me to resolve this issue?
Hi,While testing my subscriptions on IOS with a sandbox account i found a strange behaviour of getCustomerInfo(), needing to call it twice in order to get the correct data.The way i’ve set my app is to call getCustomerInfo on appLaunch and on appResume, to check for updates. The scenario is the following:I purchase a subscription and get back info that the entitlement is active and my expirationDate is 5min from now (because of the sandbox account). Then i minimize the app and wait 6 mins, after which i can see the sub renewal transaction appearing in rc dashboard and in the customer details screen. I open the app, which triggers getCustomerInfo, but it’s returning the same data i got from when i first purchased the sub. Then when i minimize the app and open it again, triggering getCustomerInfo for the 2nd time, it return the correct updated data with the new expirationDate.Is this the expected behaviour? Is this because of Sandbox? Or am i doing something wrong?P.S. it’s a flutter app
iOS purchases made using a promo code aren’t being recognised in my app. Initially I take a user to the URL below from my app. Once they come back Purchases.syncPurchases() is called. I also have a button in the same page that calls Purchases.restorePurchases(), but pressing that seems to have no effect as well. I do have a listener for any changes in the customer information using this Purchases.addCustomerInfoUpdateListener((info) {}), it starts when the app is opened. Once a promo code has been used successfully and the user comes back to the app and the syncPurchses method is called there is still no update in customer info. My app is in production (available on app store) and I already have in-app-purchses/subscriptions working and fully integrated. What is going wrong here? https://apps.apple.com/redeem?ctx=offercodes&id={apple_app_id}&code={code}
Hi all,I have an iOS app created by PWABuilder that Apple have rejected for not having in app purchases. Therefore I’m implementing RevenueCat. However I’m struggling to see where I would add and present the paywall within the code built by PWABuilder. I have 0 experience with Xcode and Swfit unfortunately.Does anyone have any experience of this at all please?https://www.revenuecat.com/docs/tools/paywalls/displaying-paywalls Thanks.
D/[Purchases] - DEBUG( 6814): Request already scheduled with jitter delay, adding existing callbacks to unjittered request with key: BackgroundAwareCallbackCacheKey(cacheKey=[/subscribers/%24RCAnonymousID%3A05155e0681644ad69dc66564531ea514/offerings], appInBackground=false)D/[Purchases] - DEBUG( 6814): Getting storefront from cache was null.D/EGL_emulation( 6814): app_time_stats: avg=9341.14ms min=3.54ms max=130723.25ms count=14D/[Purchases] - DEBUG( 6814): API request started: GET /subscribers/%24RCAnonymousID%3A05155e0681644ad69dc66564531ea514/offeringsD/[Purchases] - DEBUG( 6814): API request completed with status: GET /subscribers/%24RCAnonymousID%3A05155e0681644ad69dc66564531ea514/offerings 304D/[Purchases] - DEBUG( 6814): ℹ️ Requesting products from the store with identifiers: premium, elpa_1299_foreverW/BillingClient( 6814): getSkuDetails() failed for queryProductDetailsAsync. Response code: 2E/[Purchases] - ERROR( 6814): 🤖‼️ Billing is unavailable. App is in foreground. Won't
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.