question

giorgiotino avatar image
giorgiotino asked

Apple subscription validations when enabling Pricing Subscriptions for Each Territory

Apple allows setting different prices for the same subscription product based on specific territories:

https://developer.apple.com/app-store/subscriptions/#territory

Since we use PlayFab to validate apple receipts, and since (as far as I know) the subscription product id should match an item with the same id AND price in the PlayFab catalog and store, would validation succeed for ANY price of a subscription that refers to the same item id?

In other words, if the item id "my_monthly_subscription" on PlayFab has a price of 999 RM (9.99$, tier 10 on the App Store) but we want to make it Tier 9 for Europe (so that it shows 9.99 Euros, instead of 10.99 as it does now, which mean 899 RC) I am concerned that European players won't be able to validate their receipts.

Is that true?


If so, is there a workaround? (e.g. use different Stores and make players point to a specific one based on their territory, overriding the RC prices?)

(keep in mind that right now on PlayFab we only have two stores: Apple Store and Android Store, and we pick one or the other based on platform only, obviously - we do not override the catalog prices)

Let me know, thanks!

apisunity3d
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

·
Rick Chen avatar image
Rick Chen answered

Theoretically, the price in the ValidateIOSReceipt API does not need to match the catalog price configured in PlayFab. The receipt would be validated as long as the CurrencyCode and PurchasePrice match the price which was set up for the item in the Apple store, and the ItemId of the inventory in the PlayFab Catalog match the Product ID as it was set up in the Apple store.

In other words, the European players can validate their receipts with Euros as long as you have set the price in the Apple store.

4 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.

giorgiotino avatar image giorgiotino commented ·

Thanks for the comment, this makes sense - I am using Unity IAP, and I just use the items in the PlayFab catalog for a given store in order to initialize Unity IAP. I use whatever CurrencyCode and PurchasePrice is returned by Unity IAP on successful purchases when I make the ValidateISOReceipt call, so I guess that the RC price on PlayFab is completely ignored by my system - assuming that the values returned by Unity IAP are correct (and automatically depending on the price set for the store the current player is using) theoretically a change on the Apple Store should be immediately reflected in my game for the users of those Nationalities.

I wonder then what is the purpose of setting and overriding RC values if at the end looks like it's always a good idea to just use the CurrencyCode and PurchasePrice of Unity IAP (or any other underlying library)?

0 Likes 0 ·
Rick Chen avatar image Rick Chen ♦ giorgiotino commented ·

By “RC”, do you mean RM (real money)? In some receipt validation method, the RM could still be useful for some legacy titles. Please check this thread: https://community.playfab.com/questions/45414/rm-currency-does-not-make-sense.html

1 Like 1 ·
giorgiotino avatar image giorgiotino Rick Chen ♦ commented ·

Yes, sorry I meant RM (I thought about Real Currency while typing it, my bad) - thanks for linking that thread, it's exactly what I was looking for.

0 Likes 0 ·
Show more comments

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.