x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Steam microtransactions without purchasing server

I am implementing microtransactions in my game, following the guide at https://partner.steamgames.com/doc/features/microtransactions/implementation

That guide describes using a purchasing server in between your game and the Steam billing server. I'm wondering if the purchasing server is necessary though, and instead doing the following:

  1. Game makes request to Steam billing server for the user's country, language, and currency

  2. Game receives this response and then initiates a payment transaction on behalf of the client to the Steam web service

  3. Game's callback receives a notification that the purchase was either authorized or denied, and posts a FinalizeTransaction call to Steam to complete the operation

Am I missing something? It seems like the game can make/receive the microtransaction requests without the use of a purchasing server. Any sample code from your implementation would be appreciated!

Product Version: UE 4.18
Tags:
more ▼

asked Jun 15 '18 at 11:58 PM in C++ Programming

avatar image

HighlandScotch
8 1 2

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

I've only had a brief read, but I think in principle it would be possible to do this without a server in the middle, although these are a few reasons why it might not be possible or at least not a good idea:

  • I imagine you need to supply API keys to communicate. It may not be a good idea to embed these into the App.

  • Anyone who is able to make direct requests to steam may be able to manipulate the intended purchase request and pass in false data which could result in cheating / unhandled errors etc

  • Without the middle server, you would be limiting the data you could collect for analysis and any additional filtering you might want.

On top of this it may be that you need to whitelist request IPs with Steam (I don't know if this is true), or it may be part of their agreement that you must have a server to handle all requests.

It does add to the work load of releasing, but depending on the level of purchases you're expecting you could setup a server for around $5 a month. You'd need to write something to handle the requests too. There might be something out there already you can just use, but if not then take a look at something like NodeJS and Express which will get you up and running pretty quickly.

more ▼

answered Jun 16 '18 at 10:49 AM

avatar image

phil_me_up
984 4 6 12

avatar image HighlandScotch Jun 19 '18 at 12:56 AM

You make some good points I hadn't thought about in terms of security and validating purchases. I was hoping to avoid creating a server because of the time involved but it likely is the best practice because of the issues mentioned above. Thanks.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question