Discussion and help from anything related to RevenueCat.
Recently active
HI, trying to implement renewable subscription. followed the guide to the tee, I’m pretty sure. good news, android works 100%. tried on apple devices, doesnt work. using the sandbox account I set up on apple connect, it goes through, gives me the success blue checkmark, says your all set, and then a second later I get this black debug screen of death for about 3 seconds and disappears. any help woould be appreciated, thanks
The Graphs report no revenue and no new trials since more than 24 hrs.We do have both though.System status shows everything green which it obviously isn’t CheersKarl
Should the $firebaseAppInstanceId attribute be visible on the revenuecat control panel when integrated correctly? For example when browsing a user profile on https://app.revenuecat.com/customers/x/x. Currently it is not showing up despite us sending up the id using let instanceID = Analytics.appInstanceID()Purchases.shared.setAttributes(["$firebaseAppInstanceId": instanceID])Would be really helpful to know if it should be visible there if the integration is correct.Best,Oskar
My app has offered monthly and annual auto-renewable subscriptions. I would like to offer a special auto-renewable subscription with a longer free trial period for a limited time, e..g three days. The expected behaviors are:People can only buy it within the three-day period After the three-day period, existing subscribers will still be auto-renewed but no new customers are allowedWhat’s the best way to implement it? Thanks!
Our app has been approved & now in app store for almost a year without problem with app subscription.Today I tested a new version using sandbox environment, I got the following messages in the log:[BackgroundTask] Background Task 3 ("SKReceiptRefreshRequest"), was created over 30 seconds ago. In applications running in the background, this creates a risk of termination. Remember to call UIApplication.endBackgroundTask(_:) for your task in a timely manner to avoid this.After I got this message, the app is killed by iOS system & quit unexpectedly. The app purchase is never changed since it approved by Apple. The current new version in development hasn’t also been changed.The purchase SDK that I used is Purchases 3.13.1 Are there any leaks in this SDK version? or maybe Apple appstore has introducing new “mechanism” that this version of SDK can’t handle it? Thanks,Dann
I have setup a sandbox account to make purchases using the SDK.My products on AppStore Connect have multiple region prices setMy GBP price is £6.99My USD price is $7.49 (and is displayed correctly in app when I set the store locale as such) When I make a purchase in GBP (shown correctly by iOS SDK) the Event Data shows the correct price value (price_in_purchased_currency) for GBP but the ‘Currency’ is incorrectly in USD.{ "app_id": "app91a2d785de", "app_user_id": "$RCAnonymousID:5cb684d5429346688102439d2892be77", "country_code": "GB", "currency": "USD", "entitlement_ids": [ "Backstage" ], "environment": "SANDBOX", "event_timestamp_ms": 1655385097458, "expiration_at_ms": 1657977095000, "is_family_share": false, "offer_code": null, "period_type": "NORMAL", "price": 6.99, "price_in_purchased_currency": 6.99, "product_id": "backstage_monthly", "purchased_at_ms": 1655385095000, "store": "APP_STORE", "takehome_percentage": 0.7, "transaction_id": "StoreKitTest_Transactio
Hey guys,I’ve followed the docs on how to integrate Stripe with RC, however something doesn’t seem to be working.I’m receiving the webhook from Stripe for the purchase (customer.subscription event).I’m trying to use the https://api.revenuecat.com/v1/receipts endpoint in order to sync Stripe and RC, however I keep getting {"code":7103,"message":"The receipt is not valid."}I’ve went over each and every ID field on Stripe’s webhook, and got the same message for all of them.What am I missing here?Thanks!
Hi, I’m trying to send TEST Event to my newly created server with ssl certificate activated. But, I always see this error It wasn't possible to connect, are you sure the URL is correct? But, I can access the endpoint using Post Man without any issue. Please, advice what should I do to diagnose this error. Any help is appreciated. Thanks, JA
Let’s say I have two products both of which are auto renew subscriptions. Both give the same entitlements. Product A is $10 per monthProduct B is $15 per monthWe offer product A to select customers. Is it possible to migrate a user who has purchased product B to product A? I know I can change the price of product B to match A but I only want to affect this single user.
Is there a way to create a new customer from inside your app (both Android and iOS), without the customer buying anything? The idea is that I can then assign an entitlement for those customers. The above question stems from the following problem. My app operates on a one year subscription basis. However, an organization wants to pay for multiple subscriptions for their participants. I would like to bill the organization separately and allow the participants to access the paid content.
Hello everyone!I’m seeing that there are some differences between the documentation in https://docs.revenuecat.com/docs/ios-products and the iOS product page (https://appstoreconnect.apple.com/apps/xxx/appstore/subscriptions). Is there an ETA for upgrading that documentation?
I have an app defined in the Google Play Store and the goal is to sell subscription. I already have all the products defined in Google Play and Revenuecat. My problem is what to fill in Google Play app price item. Prices are for subscription only. Should I set the price to unpaid? Or paid with zero price?
I get this error when I try redeeming an offer code in a production app. It shows me the screen to enter a offer code and then shows a progress indicator which then leads me to this screen
fetchoffering() is able to fetch the in app products but not able to fetch subscription in android side only. Error logs :- Empty offeringserror log :- DEBUG(32279): ℹ️ API request started: GET /subscribers/6273eb4bda327c735a4b20de D/[Purchases] - DEBUG(32279): ℹ️ API request completed with status: GET /subscribers/6273eb4bda327c735a4b20de 304 D/[Purchases] - DEBUG(32279): ℹ️ PurchaserInfo updated, sending to listener. W/System (32279): ClassLoader referenced unknown path: system/framework/mediatek-cta.jar I/System.out(32279): e:java.lang.ClassNotFoundException: com.mediatek.cta.CtaHttp I/System.out(32279): [OkHttp] sendRequest>> I/System.out(32279): [OkHttp] sendRequest<< D/[Purchases] - DEBUG(32279): ℹ️ API request started: GET /subscribers/6273eb4bda327c735a4b20de/offerings D/[Purchases] - DEBUG(32279): ℹ️ API request completed with status: GET /subscribers/6273eb4bda327c735a4b20de/offerings 304 2 D/[Purchases] - DEBUG(32279): ℹ️ Requesting products from the store with
I switched from the “import Purchases” to import “RevenueCat” module today and am trying to simply call logOut() in my app when the user logs out but it isn’t working….(See images below)Why does the RevenueCat module not recognize logOut()? It is even gives me the option within auto-complete??import RevenueCatRevenueCat.Purchases.logOut() → Error "module 'RevenueCat' has no member named 'logOut'"???
I have a question about the correct way to setup entitlements my app with only monthly recurring subscriptions.There are simply 10 different monthly recurring subscriptions, no yearly option, etc..Of these, the user can only have ONE active subscription and be “entitled” to; Either 1 Ball, 2 Balls, 3 Balls, etc depending on what they are paying for...1 ball = $0.99 per month2 balls = $1.99 per month3 balls = $2.99 per monthetc….10 balls = $9.99 per monthAll of my subscriptions are configured in the *same subscription group* in the App Store so a user can only be subscribed to *one subscriptions at any time*.If the user has NO subscription they can't "play the game" in the app, however the app is a free download.POTENTIAL ENTITlEMENT SETUP 1 (10 Different entitlements)Entitlement 1 = 1 ball $0.99 per monthEntitlement 2 = 2 balls $1.99 per monthetc….Entitlement 10 = 10 balls $9.99 per monthPOTENTIAL ENTITlEMENT SETUP 2 (1 Entitlement)Entitlement 1 = "Can play game" (since user has
I’m confused about what the “New Customers” metric means? Does that mean how many people have subscribed or how many people have viewed the paywall screen?
I’m storing the “point of entry” that turned in a purchase. If entitlements changed I log the point of entryThis approach worked fine for months, but as the app ages, it seems more paid users are returning, and instead of using the restore option, they are actually buying the non-consumable again, so I’m getting more and more false flagsI looked at the entitlement properties, and I expected that checking equals for originalPurchaseDate and latestPurchaseDate might have been the solution. But at least in the sandbox, no changes occur to any of those dates after a repurchase I see purchasePackage returns an SKPaymentTransaction, which has a transactionDate and an “original” property with a transactionDate. So I could probably delay the storing and cancel if I see both of those dates not matching, but I was hoping to keep all the logic in the delegate when purchaseInfo changed
I am following the ‘Magic Weather’ tutorial using Flutter on iOS. I’ve set up the RC project, app, entitlements, offerings and products. When I run the app, purchaserInfo appears to be valid but all of the lists and maps are blank.Any help is appreciated.
I have an application and I would like to integrate it with your API. But my app is old and is in Ionic 3 and Cordova. It is possible to integrate via this documentation (https://docs.revenuecat.com/docs/ionic) as I tried and some errors occurred on my deviceionic infoIonic: ionic (Ionic CLI) : 4.12.0 Ionic Framework : ionic-angular 3.9.9 @ionic/app-scripts : 3.2.3Cordova: cordova (Cordova CLI) : 10.0.0 Cordova Platforms : not available Cordova Plugins : not availableSystem: Android SDK Tools : 26.1.1 (/opt/Android) NodeJS : v10.22.0 (/home/alyson/.nvm/versions/node/v10.22.0/bin/node) npm : 6.14.6 OS : Linux 5.4One of the mistakes:
Hi there,I’m new to developing and I’m trying to implement the purchases SDK for ioS. I’m using xCode and Swift UI.I’ve followed all the steps, I’ve installed via CocoaPods and I can see the Pod.xcodeproj in my xc file. Everything builds successfully. However when I try and use the import Purchase it just says there is No Such module ‘Purchase’. I’ve added In-App Purchase as a capability. In the tutorial I’ve followed it just worked and I’m at a loss as to what to try. ThanksChris
Good morning,We’re looking at the Firebase Integration documentation here : https://docs.revenuecat.com/docs/firebase-integration In the section about setting the Firebase User Identity in RevenueCat. Here: // Add state change listener for Firebase Authentication Auth.auth().addStateDidChangeListener { (auth, user) in if let uid = user?.uid { // identify Purchases SDK with new Firebase user Purchases.shared.logIn(uid, { (info, created, error) in if let e = error { print("Sign in error: \(e.localizedDescription)") } else { print("User \(uid) signed in") } }) } }It is clear that you call logIn when the user id is available. However, why don’t yo call logOut when it is not? Is there a reason? We just want to get our implementation right / complete and from an remote point of view, it feels incomplete. Thank you
I am enabling ASA Attribution by following the guide that says to import iAd then setPurchases.automaticAppleSearchAdsAttributionCollection = truebut the console gives me the warning:[Purchases] - WARN: ⚠️ Tried to post Apple Search Ads Attribution, but Apple Ad Framework is is required for it and it isn't included
Hello!I’m implementing RevenueCat in my application in order to handle user’s subscriptions. I have my own database and I want to set both “premiumLevel” and “expirationDate” (so I can use the benefits of Firestore sockets). I have a few questions:When a INITIAL_PURCHASE event is triggered, I am fetching the newest data in the subscribers endpoint and then getting the user’s id of my own database via aliases. Is that approach correct? When a EXPIRATION event is triggered, I am just updating my own database and setting premiumLevel to false and expirationDate to null (no request to subscribers), is that okay? Do I need to look up for other event types or the INITIAL_PURCHASE and EXPIRATION are enough to keep my database updated?
We have been using the ionic purchases plugin for a while in our project. Recently we have been working on getting offer codes working for iOS. This has not been successful at all.The implementation we have:- We call purchases.login at startup- We listen for purchases.onPurchaserInfoUpdated which triggers when someone makes a purchase (and we unlock based on the entitlements available)- We call purchases.presentCodeRedemptionSheet which pops up the iOS offer code screen- After it didnt work we started listening for purchases.addShouldPurchasePromoProductListener, we thought this might be triggered for the offer codesWe had to test this in production as offer codes didnt work at all in our test environment. Any tips to do this are more then welcome.We have seen multiple things going wrong in the app:- The redeem promo code button (the iOS native part) will go on disabled after pressing it, take a while and then enable again without doing anything- The redeem button works but the sale is
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.