Currency in IOS seems incorrect

  • 8 August 2021
  • 4 replies

Badge +2

I’m using react native to fetch the packages and looking at the logs:

            const offerings = await Purchases.getOfferings();

const packages = offerings.all["default"].availablePackages;
console.log("Paywall Currency", packages[0].product.currency_code)

Looking at the logs, the products inside the package has the price in USD. But the phone I am running the code on is set to Australia for the region of the account. I went to Settings > Account name > Media & Purchases > Country Region > Set to Australia

Am I doing something wrong here?


Best answer by cody 9 August 2021, 18:42

View original

4 replies

Badge +2

It seems like it’s working now. Maybe there was a delay.

Userlevel 6
Badge +8

Hey @Joshua! 👋

There’s likely propagation time that caused a delay in the product price from being accurate. If you recently changed the price or your production region, you may need to wait a little while for the price to reflect the actual price or try to restart the app. We pull our prices directly from the underlying store product, so ultimately there’s nothing you are doing wrong, it’s just a quirk with the store itself.

Glad to hear that it sounds like waiting a little while worked!

Badge +2

I have the same problem

I followed guides and am retrieving offerings with data.  So I believe all is working.

I have restarted the app on the physical phone.  It’s been >48 hours, so I don’t believe it is a time-lag sync issue.

Product price has NEVER been set in USD, so RevenueCat is making an assumption somewhere in the process.  How do I “kick” RevenueCat into getting the correct information ? 

(note: really poor setup if RevenueCat assigns default assumptions to data]

Badge +2

OK, I’m pleased to report that my currency codes are now showing correctly (from Apple anyway, haven’t tested Playstore yet)

Sorry for doubting you.

I still think there’s something screwy, someone somewhere is assigning a default currency in responding to a request or in receiving it, which is terrible coding practice. 

But hey ho, working now, and other battles to fight ;-)