question

Jeremy Rose avatar image
Jeremy Rose asked

Steam purchase is not respecting case of item id

Originally I created my bundles to be purchased using camel case on iOS store. This worked fine as well on steam.

Then when implementing google they require all IAP items to have lowercase ids. And when trying to verify the receipt with the playfab. Something was complaining about the case of the item id not matching.

So I created a second set of currency bundles with the same id's as the first ones but all lowercase. These are not in a store and have no RM pricing set. This allowed google purchasing to work.

Now when I purchase through steam. It gives me errors saying no currency defined for the items. Could not determine any valid currency options for items Bundle_Currency_RC_P10 13789219988148443295 222599352555699054,bundle_currency_rc_p10 13789219988148443295 14674882877081633153

I am only specifying the first camel case entry (Bundle_Currency_RC_P10 ) in the items of the StartPurchaseRequest. But it appears to be trying to purchase both items and the lowercase item does not have any currency associated with it. Since it is only a workaround for google.

Why does google need case sensitive but StartPurchaseRequest is ignoring it?

In-Game Economy
2 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.

Jeremy Rose avatar image Jeremy Rose commented ·

I tried adding the lowercase items to a second store with pricing. The calls still fail. I added them to the current store with pricing and now steam shows that I am trying to purchase the item 2x.

0 Likes 0 ·
Simon Cui avatar image Simon Cui commented ·

I will do some research on this issue. Your patience is appreciated.

0 Likes 0 ·
Simon Cui avatar image
Simon Cui answered

I understand your thoughts. May I suggest that try to use lower case only ItemIds for testing with IOS, Google and Steam purchase? Please don’t hesitate to tell us when you have any further question. Thanks.

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

Jeremy Rose avatar image Jeremy Rose commented ·

Yes I have changed all platforms to use lower case only. It is kind of a pain do to the stores processes etc.

But it is done now.

It would of been great if the tutorials you have for setting up stores could call this out as a side note or something. Or explain the issue with having duplicates ids for stream/startpurchase.

It would of helped to know ahead of time since this was my first time implementing across all stores.

But it is working now using all lowercase ids and removing the duplicate camel case ones.

0 Likes 0 ·
Simon Cui avatar image Simon Cui Jeremy Rose commented ·

Thanks Jeremy, I appreciate your patience and will consider your advice sincerely.

0 Likes 0 ·
ahmdmslb238 avatar image
ahmdmslb238 Suspended answered

link text](http://example.com

10 |1200

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

Simon Cui avatar image
Simon Cui answered

The IAP of Google is different from IAP of Steam. When implementing cross-platfom purchasing feature, I suggest you use different itemId for Google and Steam separately to avoid conflicts, such as a suffix for an itemId.

10 |1200

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

Jeremy Rose avatar image
Jeremy Rose answered

Thanks Simon.

I don't know that really fixes the issue. It is a possible workaround. And I did try something like this. I have Bundle_Currency_RC_P10 that is my iOS and steam product. This was all working fine.

And like you said google has different requirements so I created a bundle_currency_rc_p10 item. That is not in a store, and has no price associated with it. But it allowed the receipt verification for google to succeed.

But the issue is that the StartPurchaseRequest when specifying a single item instance of id Bundle_Currency_RC_P10 fails because it also matches with bundle_currency_rc_p10. Since bundle_currency_rc_p10 does not have a price defined in a store. If I put it in a store and give it a price. Steam now lists both items in the purchase window. Even though the Items array of StartPurchaseRequest only contains a single item id.

I am currently changing everything to the lower case only ids and removing the camel case ones. I don't really want to have to manage 3x the number of items where each id has _ios, _steam, _google appended to them.

This still seems like a bug in StartPurchaseRequest and its searching of the catalog. Either ids should be case sensitive or they should not and the game manager should give an error when trying to create ids that are duplicates when creating items. Either way a StartPurchaseRequest specifying a single item id to purchase should not initiate a purchase of multiple items.

10 |1200

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

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.