Documentation Steamworks
Fonctions Web de l'inventaire Steam
Il s'agit des pages Web structurées vers lesquelles vous pouvez rediriger l'utilisateur ou l'utilisatrice.

ItemCart

Vous pouvez utiliser ItemCart pour envoyer un panier contenant un ou plusieurs items à acheter via Steam. Vous devrez créer et gérer le panier dans votre propre jeu ou interface, puis envoyer le contenu de ce panier à Steam pour l'achat et l'activation de ces items.

Votre magasin doit demander au navigateur client d'envoyer une requête POST directement vers le paiement https://store.steampowered.com/itemcart/checkout en utilisant un formulaire en ligne. Ensuite, suivant son navigateur, la personne aura des processus d'achat légèrement différents.

Navigateur Web autonome (Chrome, Internet Explorer, etc.) :

  • Si la devise du porte-monnaie n'est pas conforme à celle du magasin, redirection immédiate vers l'URL de renvoi avec un code indiquant une non-correspondance (la personne a alors la possibilité de modifier la devise locale du magasin et de revenir au processus de paiement).
  • Panier avec les prix des items sur des lignes individuelles dans la devise de la personne, le cout total dans la devise de la personne et des boutons Acheter/Annuler.
  • Si Annuler est sélectionné, la transaction sera annulée avec le statut « refusé par la personne ».
  • Si Acheter est sélectionné, la transaction sera automatiquement finalisée.
  • La personne sera redirigée vers l'URL de renvoi appropriée.

Navigateur Web de l'overlay Steam/Big Picture :

  • Identique au navigateur Web standard sans étape de connexion initiale ; la personne ne peut pas changer de compte.

Navigateur Web en jeu avec cookie d'authentification de l'API Steamworks :

  • Si la devise du porte-monnaie n'est pas conforme à celle du magasin, redirection immédiate vers l'URL de renvoi avec un code indiquant une non-correspondance.
  • La page Web affiche une notification demandant d'utiliser l'overlay Steam pour autoriser l'achat.
  • L'overlay Steam s'activera automatiquement avec une boite de dialogue Acheter/Annuler.
  • L'overlay se ferme, le processus d'achat se poursuit comme dans un navigateur Web standard après sélection d'une des actions Acheter ou Annuler.

Exemple HTML

<form action="https://store.steampowered.com/itemcart/checkout" method="post"> <input type="hidden" name="appid" value="234560"> <input type="hidden" name="cart" value="1001,1006*2"> <input type="hidden" name="total" value="USD499"> <input type="hidden" name="sandbox" value="0"> <input type="hidden" name="return" value="http://mystore.com/checkout.php?fromsteam=1&cartid=BA13522FE31&result=[RESULT]&orderid=[ORDERID]&steamid=[STEAMID]&name=[USERNAME]&cc=[CURRENCY]&auth=[AUTH]"> <input type="hidden" name="auth" value="9a38954f503bf38a16024a9ae9328e8fa780f5be"> <input type="hidden" name="lang" value="en"> <input type="image" src="checkout.png" alt="Checkout"> </form>

  • appid : c'est votre numéro d'identification de l'application (AppID).
  • cart : ce sont des nombres d'index de définitions d'items séparés par des virgules, avec un suffixe de quantité facultatif xN ou *N. L'ordre n'a pas d'importance. Les doubles sont traités comme une quantité supplémentaire.
  • total : cout total prévu du panier. La finalisation du paiement échouera si ce montant n'est pas conforme. Le format est un type de devise en majuscules (USD, EUR, GBP, etc.) suivi d'un total numérique.
  • sandbox : vaut 1 ou 0. Notez que sandbox=1 échouera quand le test sandbox n'est pas spécifiquement activé pour votre application dans Steamworks.
  • return : c'est une URL vers laquelle la personne sera dirigée à la fin du processus de paiement, au moment de la finalisation. Les champs de remplacement facultatifs sont décrits ci-dessous.
  • auth : code d'authentification HMAC-SHA1 calculé à partir des cinq valeurs précédentes dans l'ordre, séparées par des nouvelles lignes et utilisant votre clé secrète Itemcart. Consultez l'exemple de PHP à la fin du document. Votre clé secrète est visible dans le menu Économie de l'onglet Communauté sur la page de configuration Steamworks de votre application.
  • lang : c'est un code de langue ICU facultatif (« en » pour l'anglais) qui définit la langue par défaut sur la page de finalisation du paiement. Ce champ facultatif n'est pas authentifié.

Les chaines suivantes seront remplacées dans l'URL de renvoi :
  • [RESULT] : code du résultat (0 = réussite, 1 = refusé par la personne, 2 = non-correspondance de devise, 3 ou plus correspond à un code d'échec interne).
  • [ORDERID] : entier décimal non signé de 64 bits représentant l'orderid Steam ; peut être utilisé avec l'API ISteamMicroTxn/QueryTxn pour vérifier les informations de transaction. Vide en cas d'annulation par la personne. Correspond au rapport généré par ISteamMicroTxn/GetReport.
  • [STEAMID] : entier décimal non signé sur 64 bits représentant le SteamID de la personne. Vide si la personne a refusé de se connecter.
  • [USERNAME] : nom choisi par la personne pour l'affichage, encodé de manière appropriée pour un paramètre URL. Vide si la personne a refusé de se connecter. ATTENTION : vérifiez l'affichage et prenez garde aux personnes qui se nomment < script> !
  • [CURRENCY] : code de la devise du porte-monnaie de la personne (USD, EUR, etc.). Vide si la personne a refusé de se connecter.
  • [AUTH] : clé HMAC-SHA1 de l'URL complète relative au serveur (par exemple, qui commence par « /checkout.php ») calculée comme si [AUTH] était une chaine vide et que tout le reste avait déjà été remplacé. La clé HMAC est votre clé secrète Itemcart.

Exemple de PHP pour générer la valeur auth :
define( 'CLÉ_SECRÈTE_ITEMCART', '11111111111111111111111111111111' ); $appid = '234560'; $cartstring = '1001,1006*2'; $totalstring = 'USD499'; $sandbox = '0'; // ou '1' $returnurl = 'http://mystore.com/checkout.php?fromsteam=1&cartid=BA13522FE31&result=[RESULT]&orderid=[ORDERID]&steamid=[STEAMID]&name=[USERNAME]&cc=[CURRENCY]&auth=[AUTH]'; $auth = hash_hmac( "sha1", "$appid\n$cartstring\n$totalstring\n$sandbox\n$returnurl", CLÉ_SECRÈTE_ITEMCART );

Exemple de PHP pour valider l'URL de renvoi :
hash_hmac( "sha1", str_replace( $_GET['AUTH'], "", $_SERVER["REQUEST_URI"] ), CLÉ_SECRÈTE_ITEMCART ) === $_GET['AUTH']

Le code d'authentification dans l'exemple de formulaire HTML est calculé comme si la clé secrète ItemCart était composée uniquement de uns (32 caractères de longueur). En fonction des autres valeurs des champs (appid, cart, total, sandbox, return, lang), vous devriez pouvoir répliquer la valeur « auth » ; si votre valeur « auth » générée ne correspond pas à la valeur attendue, votre code contient probablement des erreurs qui empêchent la bonne marche du processus de paiement.

BuyItem

BuyItem est une simple page Web structurée qui permet à une personne d'acheter un item en jeu via une interface d'achat Steam simple.

Construction de l'URI

Utilisez le modèle ci-dessous pour construire un URI puis partagez-le avec les joueurs et les joueuses : https://store.steampowered.com/buyitem/{appid}/{itemdefid}/{quantity}

Paramètres

  • appid : ID de l'application associée à l'item.
  • itemdefid : ID de l'ItemDef à présenter pour l'achat. Cet item doit avoir un prix (price) ou une catégorie de prix (price_category) et ne doit pas être masqué dans le magasin (store_hidden à false). Consultez la section « Schéma d'items ».
  • quantity : facultatif. Plusieurs instances d'un item peuvent être achetées ; si rien n'est renseigné, la valeur par défaut est 1.

Remarques

Cette page simplifiée peut être utilisée uniquement pour vendre des instances d'un ItemDef unique (y compris un bundle vendable). Pour un panier doté de toutes les fonctionnalités, voir ItemCart.

Consultez la documentation sur le schéma d'inventaire pour savoir comment spécifier les items à vendre, y compris la tarification et les bundles.