question

dragonfoundry avatar image
dragonfoundry asked

IOS Sandbox purchases showing GBP as US cents

We're seeing some odd behaviour in our data. When sandbox purchases are made on iOS in GBP, we're seeing them be successful, but the logged price is RM 7 (8GBP), not RM 999 ($9.99). Is this on our end, or on your end?

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
brendan avatar image
brendan answered

In the case of receipt validation, we use the price and currency code you provide in the call. In all cases, it follows the same format - the price is in the smallest unit of currency.

So, if you're sending "GBP" for the CurrencyCode, and 8 for the PurchasePrice, that's really saying that the price is 8 pence, would result in it showing up as $0.07.

9 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

dragonfoundry avatar image dragonfoundry commented ·

so that logging is client-controlled? And we should be specifically sending all as US Cents (basically ignore what it says in the receipt)

It does only log if the receipt is verified, right?

0 Likes 0 ·
brendan avatar image brendan dragonfoundry commented ·

Actually, no - you should send the price in whatever currency was used to pay for it. So, for example, USD 199 would be $1.99 US, while GBP 199 would be £1.99. And there's nothing to ignore in the receipt - Apple does not provide that information in the receipt, and they don't give us a way to query for the amount charged, which is why we have no choice but to require that the client send this.

But yes, you are correct that we only then grant the digital goods purchased to the player and log the purchase if the receipt passes all tests (that it's valid, that it's actually for your title, that it's for a valid item in your catalog).

0 Likes 0 ·
dragonfoundry avatar image dragonfoundry commented ·

What's the reason to send in gbp? It pretty clearly messed up the analytics to do so - the dashboard adds the values together, so purchases of$19.99 and gbp7.99 would display an incorrect total of of $26.98.

0 Likes 0 ·
brendan avatar image brendan dragonfoundry commented ·

Can you point me to a specific event where you're seeing this? Looking at your purchase events (https://developer.playfab.com/en-us/721F/playstream/event-history?query=cGxheWVyX3JlYWxtb25leV9wdXJjaGFzZQ==), they all appear to have the correct amounts. I do see that in the Event Name column, it's doing something confusing - showing the total for the transaction in USD, but also providing the transaction's currency code. I'll file a bug to get that corrected.

0 Likes 0 ·
dragonfoundry avatar image dragonfoundry commented ·

2e830ea682d347a3acff817571233e86 is one event that's showing 0.07 GBP (would be 6.99 GBP). It should be showing up as 999 US cents.

If you look in the reports, you'll see those reflected directly in the reports, without being converted to USD.

I'm just going to send everything in USD.

0 Likes 0 ·
brendan avatar image brendan dragonfoundry commented ·

Let me rephrase - the issue with that receipt validation call is that the PurchasePrice was passed in as 7, where it should have been 699 (using the info above). All purchase prices are handled this way in the service - so in this case, the price isn't stated in British pounds, it's stated in British pence. If you're seeing something that doesn't sync with this in the reports, can you please send me a link to the report in question?

0 Likes 0 ·
dragonfoundry avatar image dragonfoundry commented ·

that's not the problem I'm stating. The problem is that the dashboard adds up british pence and US cents, and treats them all as "cents". So passing in non-US currency doesn't help us track global purchases.

Since the cost isn't used in receipt validation, we'd be better off passing in the catalog price in US cents, rather than the actual purchase price.

0 Likes 0 ·
brendan avatar image brendan dragonfoundry commented ·

Ah! Now I understand, thanks. I managed to get some testing on this today and confirmed what you're seeing. That's clearly a regression, as it wasn't doing this previously. We'll get it fixed shortly.

0 Likes 0 ·
brendan avatar image brendan brendan commented ·

ARG! Wait - I did the same thing you did and flipped the numbers, I just didn't realize 'till I was writing the bug and read what I wrote. :)

The reporting is actually correct. When I add up all the purchases for your title - including those in GBP, the total in USD is correct. Looking at the two most recent GBP purchases:

B6BE05F2A007C96 - OrderTotal (always in USD) is 8, while TransactionTotal - the price you specified in GBP is 7.

823F85B1543D2C9 - OrderTotal is 47, while TransactionTotal (again, GBP) is 39.

Looking at the conversion rate for USD to GBP, those values are correct. You can see that these purchases show up as $0.08 and $0.47 in your player's purchase report.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.