Get help with your SDK implementation.
Recently active
Hi, Just checked today, my app in the Apple app store is not fetching subscriptions. It is showing ‘No subscriptions found’. I have not updated app recently, nor made any changes in apple store connect account. Not sure what is the problem here. I quickly checked on my local setup, I am able to see subscriptions while running the app in simulator. Could you help me in debugging this further. Thanks
Hi,I just started using RC and I have some problems regarding renewals. I’m using React Native SDK and primarily targeting Android. I only have 1 subscription offer for my app. After the user successfully completes a purchase, I can see that he is given 7 minutes of access, I receive emails from Google Play Store about the purchase. After 7 minutes ( first renewal ) I receive another email from Play Store about successfull renewal. But when I refresh my app and make a request to customerInfo, the response is empty. Next time I open the app, I can see another event is added to customer history page in RC panel: “Opted out of renewal for ….”I identify to RC after firebase login with user email. Users must login to purchase something. I tried with both an old subscription before Play Store changes, and new subscription. Results are same.Am I missing something?
Well, I manage to test my app in the sandbox and buy a subscription plan for a month, it work like expected, it auto-renew 3 times and then “Opted-out of renewal” and “Had their subscription expire” after that, I load again the app and it show me that I have not current any active subscription what is great, but here the problem, when I try to renew the subscription, I do the same process using “purchasePackage”, sending the same package that the user previous subscribe, I don’t get any error the call work but the return “purchaserInfo” do not have any new active subscription. the debug info after I call purchasePackage: 2022-01-11 20:55:07.209981-0500 LoosidApp[26462:18273130] [Purchases] - DEBUG: ℹ️ Vending Offerings from cache2022-01-11 20:55:07.211967-0500 LoosidApp[26462:18273130] [Purchases] - DEBUG: ℹ️ makePurchase2022-01-11 20:55:07.213718-0500 LoosidApp[26462:18273130] [Purchases] - DEBUG: 💰 Purchasing product from package - soberplus_month_1 in Offering Default2022-01-11 20
We have things working properly on iOS and Android, but the Amazon Store is not working, and we have no idea why. Here is the log from live app testing:2022-04-05 19:42:59.883 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: App foregrounded2022-04-05 19:42:59.884 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: Checking if cache is stale AppInBackground false2022-04-05 19:42:59.885 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: CustomerInfo cache is stale, updating from network in foreground.2022-04-05 19:42:59.887 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: Offerings cache is stale, updating from network in foreground2022-04-05 19:42:59.888 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: Offerings updated from network.2022-04-05 19:42:59.888 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DEBUG: Updating pending purchase queue2022-04-05 19:42:59.898 4959-4959/com.alltogether.Hellosaurus D/[Purchases] - DE
API request completed with status: POST /receipts 503.Subscription purchases successfully but not working on android side.Even i received google play receipts by email.We are facing this issue since two weeks.
Hello,There have been some similar reports about GetOfferings callback not being called on Fire OS (and some other on Android and iOS, but looks like iOS one has been fixes). I’ve setup everything and was able to get my offering for Android. When I setup the app for Amazon Store the GetOfferings doesn’t call the callback (neither success nor error). I’ve tried the other offerings API that registers a listener, but that one is also not firing events.Here are the logs of the call:DEBUG: ℹ️ Debug logging enabledDEBUG: ℹ️ SDK Version - 5.6.0DEBUG: 👤 Initial App User ID - nullDEBUG: 👤 Identifying App User ID: $RCAnonymousID:602c1ecc192b4d6b9bf2d776a95b0564DEBUG: ℹ️ Deleting old synced subscriber attributes that don't belong to $RCAnonymousID:602c1ecc192b4d6b9bf2d776a95b0564DEBUG: ℹ️ No cached Offerings, fetching from networkDEBUG: ℹ️ App foregroundedDEBUG: ℹ️ CustomerInfo cache is stale, updating from network in foreground.DEBUG: Retrieving customer info with policy: FETCH_CURRENTDEBUG: ℹ
I am testing revenue cat 4.0 with Unity 2020.3.8f1 on fire tablet amazon but the callback of Purchases.GetOfferings is never called. With other platforms (iOS and google play) it works correctly.I’ve already configured amazon revenuecat key, shared amazon key,set useAmazon=true and enable sandbox mode as write here: https://developer.amazon.com/docs/in-app-purchasing/drm-sample-app.html#step-6-enter-sandbox-modeI have created a scene empty with your script “PurchasesListener.cs” (and Purchases.cs) to replicated the issue.The callback in GetOfferings is never called either on PurchasesListener.Start() or when you pressed on the UI Button “GetOfferings”
I have followed instructions from the official documentation (https://docs.revenuecat.com/docs/ios-subscription-offers) but I can’t get promotional offers to appear.I’m using a sandbox user, which has an expired annual subscription. When I call any of these methods, I either get 0 offers or it says that the user is not eligible for the promo offer (pay up front, x% off first year).let d = package.storeProduct.discounts (returns 0)let e = await Purchases.shared.checkTrialOrIntroDiscountEligibility(product: package.storeProduct) (returns ineligible)let promoOffers = await package.storeProduct.getEligiblePromotionalOffers() (returns 0) Here are the entitlements for the user:identifier=pro,isActive=false,willRenew=false,periodType=Normal,latestPurchaseDate=Optional(2022-05-28 12:36:19 +0000),originalPurchaseDate=Optional(2022-05-27 16:03:13 +0000),expirationDate=Optional(2022-05-28 13:36:19 +0000),store=Store(rawValue: 0),productIdentifier=com.mycompany.myapp.pro.yearly,isSandbox=true,unsu
After a few re-purchases of the same product (after it expired normally) it becomes impossible to re-purchase it again. The Apple native purchase dialog is not displayed, PurchaseProduct callback is called with no errors, but the CustomerInfo does not include any active Entitlement or any ActiveSubscription.(We are using RevenueCat SDK 4.0.0 and Unity 2021.3.8)Of course, those purchases are in sandbox. But it's impossible for us to determine if this is a sandbox-only issue. We never had a similar issue with in our current implementation of Unity IAP, so answering this is actually an important for us as we are currently trying to assess if the SDK is stable enough to transition to.Here are the [Purchases] logs from one of those failed purchase: 2022-09-01 12:06:22.334218-0400 AppName[18946:594262] [Purchases] - DEBUG: ℹ️ Skipping products request because products were already cached. products: ["com.company.app.subscription_one_month_01"]2022-09-01 12:06:22.337390-0400 AppName[18946:593
I have two products (weekly, monthly) and two entitlement attached to them. In sandbox, when I purchase the first weekly, the entitlement is right. But when I upgrade to the monthly when weekly entitlement is active, active entitlement seems to be be still the weekly. I expect it to entitled to only monthly. Upon purchase of monthly debug logs show the purchased product as monthly but I can’t get its entitlement as active entitlement.purchaseInfo.entitlements.active seems to have only one entitlement and it’s weekly. The product definitions are in the same subscription group. The sandbox data also shows the latest purchase as weekly and user’s entitlement to monthly. What could be the problem here?I’m checking it like shown below: Purchases.shared.purchase(package:selectedPackage) { transaction, purchaseInfo, error, userCancelled in if let error = error { print(error.localizedDescription) self.purchaseFailed(purchaseInfo, error, userCanc
Hello, I’m trying to to handle the error thrown when the transaction is interrupted ( Accept terms and conditions, update payment info ). All the clue I have is “ Error: There was a problem with the App Store.”Can i rely on this message to identify this type of error? This seem too generic to me, and i fear that by handling this message some errors could stop being monitoredI’m testing with the enable interrupted purchases in store kit
This is the behavior I’m seeing (tested on iOS) when setting the Restore behavior to Block Restores.App store userA logs into our app as user1 user1 purhcases a monthly subscription user1 eventually cancels monthly subscription and it expires user2 logs in on the same device (i.e. still app store userA) user2 purchases monthly subscription, gets the ‘receiptAlreadyInUse’ error, HOWEVER, the purchase still went through successfully and user1’s purchase was restored.This feels like a bug that the purchase made it through even though the SDK returned an error.Also, the link to the documentation on restores is currently pointed to here which gives a 404.
As per the title:I always get the ‘Receipt is missing error’ when testing via TestFlight.In Xcode, when configured with a StoreKit file, it works fine. Without StoreKit and TestFlight it does not work, the app review is also always getting rejected.I cannot see why it does not work. The products and offerings are configured correctly (and they are shown in the app), it’s just the receipt that is always missing when purchasing.
Hi, I have searched and read many posts regarding to my problem.Many users encountered the same issue as mine. However, none of them received a solution or clear confirmation about this issue.A new sandbox user works fine with the first purchase of a subscription item. But after expiration, if we want to resubscribe, it sometimes just fails.More specifically, we are using https://github.com/RevenueCat/purchases-unity/releases/download/4.1.0/Purchases-UnityIAP.unitypackage with a Unity app.When we click on a subscription button for a resubscription, the function PurchasePackage works fine without an error, but in the callback, we check customerInfo.Entitlements.Active.ContainsKey(entitlementId) and it is still false.I think at least there should be a confirmation whether it only happens in TestFlight/sandbox environment or not?Thanks!
I installed the expo managed workflow and also followed the revenuecat/react-native-purchases guide and trying a simple code to setDebugLogs I keep getting React.useEffect(() => { Purchases.setDebugLogsEnabled(true); }, []);null is not an object (evaluating 'RNPurchases.setDebugLogsEnabled') I also tried a simple configure and got similar issue React.useEffect(() => { Purchases.configure({apiKey:"xxxxxxxxx"}); }, []);null is not an object (evaluating 'RNPurchases.setPurchases') Any idea what could it be or how to debug this?I read other comments and issues but none of them had a working solution Note: I started trying this today so I have the latest versions of everything, expo, react native and react native purchases
HelloI want to use billing client v4(Google) with purchases_flutter over 3.4.0 and flutter 3.1.1.but “java.lang.NoSuchMethodError: No virtual method queryPurchases" occured at this code.await Purchases.setup(publickey);and stack trace is this.D/[Purchases] - DEBUG(21733): ℹ️ API request started: GET /subscribers/oDNEWTpax9Xkz0FVC3tdoRzdPbh1/offeringsD/[Purchases] - DEBUG(21733): ℹ️ API request completed with status: GET /subscribers/oDNEWTpax9Xkz0FVC3tdoRzdPbh1/offerings 304D/[Purchases] - DEBUG(21733): ℹ️ Requesting products from the store with identifiers: jp.kazushige.sato.suudoku.month1, jp.kazushige.sato.suudoku.month6, jp.kazushige.sato.suudoku.month12D/[Purchases] - DEBUG(21733): ℹ️ Requesting products from the store with identifiers: jp.kazushige.sato.suudoku.month1, jp.kazushige.sato.suudoku.month6, jp.kazushige.sato.suudoku.month12D/[Purchases] - DEBUG(21733): ℹ️ Querying purchasesE/AndroidRuntime(21733): FATAL EXCEPTION: Thread-11E/AndroidRuntime(21733): Process: jp.kazushig
I'm currently using the revenucat webhook to manage the subscriptions (iOS works just fine) and while testing the Android purchase flow, I've been struggling with the following issues:The trial webhook is not being received as the documentation says, it's just coming as a normal initial purchase, it does not have the property "period_type": "TRIAL" but has the "period_type": "NORMAL" instead. This is making really hard to identify when a user is trialing or already has trialed.I created the offer just as the documentation explains: The other problem I've been facing is that a user is not doing an upgrade but another new subscription purchase is happening instead, why is this happening? example situation:Starts with a premium trial Decides to downgrade to a basic planSubscription should change to basic (even that the change is not being applied immediately, the plan should be changed (probably in the end of the trial with a renewal) and at least one PRODUCT_CHANGE event should be trigg
In the past 2 weeks we have had 5 Google Play Pass users complain that they are not getting an unlocked version of our app upon install. When we look up their accounts in the Rev Cat portal we are not seeing any entitlements. Please check the following account ids:eccadc44-b852-49e3-9abd-98ca8caaa5793e02d09e-39af-4f3e-97e7-1202c5721a800bbacb64-3025-438d-9c97-e9072834ad3fff55917c-c849-4a1e-8a76-47055e13cf62 Normally we see the entitlements that are tied to purchase we provisioned for Google Play Pass on accounts like these in the portal
Working through setting up RC for the first time am using https://docs.revenuecat.com/reference/subscribers to grab a particular user’s entitlements and subscriptions information. Per the docs, I see that the subscriptions payload returns a mapping of product_id to the subscription itself. When testing with a Sandbox account, I see the is_sandbox populates as true which is to be expected. If a user has a sandbox subscription and I then subscribe the same user with a production subscription, what exactly happens? Is this allowed and, if so, how does this affect the final subscriptions payload?
When I am setting attributes with Cordova whether generically like this:Purchases.setAttributes({“age”: “24”});Or when using something like the display name like this:Purchases.setDisplayName(“Doe”);I always end up with an error message that looks like this:To Native Cordova -> PurchasesPlugin setAttributes INVALID ["options": [{ age = 24;}]]Or this for the display name:To Native Cordova -> PurchasesPlugin setDisplayName INVALID ["options": [Doe]] Am I missing something? I went through and updated everything in my app to be uptodate. I am using the following versions of things:"@ionic-native/core": "^5.35.0","@ionic-native/purchases": "^5.35.0","cordova-plugin-purchases": "^2.3.0",Everything else with purchases is working just fine as far as I can tell, I just can’t seem to use it to set an attribute.
While working with on the app in my simulator everytime I remove and run the app revenue cat new customer data is increasing. I would like to filter this debug mode datas. Is there anyway to do that? some thing like this:#if DEBUG Purhcases.environment = .sandbox#endif
I have 2 products in the AppStore: a monthly subscription and a yearly subscription, and I am testing the RevenueCat API in sandbox.the purchase function (Purchases.shared.purchase(package: package)) seems to be working fine, there’s no error.I’ve tested a scenario where I buy a monthly subscription, and then a yearly subscription right after, the purchase function returns the CustomerInfo with old info (still the productIdentifier pointing to the monthly subscription). However, Purchases.shared.restorePurchases actually return the up to date CustomerInfo with the yearly subscription.Here’s the code I’m using to purchase:static func purchase(package: Package, completion: @escaping (_ info: CustomerInfo?, _ error: Error?, _ usercancelled: Bool) -> Void) { Purchases.shared.purchase(package: package) { transaction, customerInfo, error, userCancelled in completion(customerInfo, error, userCancelled) } } Could it be a bug or is there something wrong wi
Hi Team - My goal is to setup offer codes to allow customers coming from partnerships to redeem prepaid subscriptions.After setting up auto-renewing subscriptions, I’ve hit a snag implementing Offer Codes in my iOS app.The following has been configured:2 subscriptions(yearly and monthly) setup in App Store Connect under same the subscription group Both subscriptions are at the same level of service and include a 7-day trial period Subscription key uploaded to RevenueCat Created 1-year free offer codes under the yearly renewable subscription Offer code is for new, existing and expired usersObserved user experience:User logs in to app and subscribes to monthly renewable subscription User then navigates to https://apps.apple.com/redeem?ctx=offercodes&id=1579782821&code=CODE to redeem 1-year free offer Code is accepted and Apple ID authorization is prompted After authorizing the subscription a error is presented stating, “ This offer can’t be redeemed with your current subscription
I setup every thing as in documentation and wait for a weak and still getting that error “Invalid Play Store credentials “ after making purchasewhat should i do now ???and dose space in Service Account credentials JSON string make a different ?
If there is an attempt to change the purchase (switch between subscriptions), while app is without internet we will get a response like this:`PurchasesError(code=StoreProblemError, underlyingErrorMessage=Error finding existing purchase for SKU: something, message='There was a problem with the store.')`All the next attempts (even if the internet is now available) will return the following response:`PurchasesError(code=OperationAlreadyInProgressError, underlyingErrorMessage=null, message='The operation is already in progress.')``This is happening until the app is killed and restarted.
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.