Документация Steamworks
QueryRefundAllowed/v0001
Вызывается Steam, когда пользователь заходит на сайт поддержки, чтобы получить больше информации о внутриигровой покупке. Ответ включает в себя текущее состояние купленных предметов, а также информацию о доступности возврата средств за каждый из них.

Вызывается: Steam Refunds

Метод HTTP: GET

Параметры:

НазваниеТипОбязательно?Описание
keystringЭто ключ сервера ресурсов, который вы предоставили в настройках экономики Steam своего приложения на партнёрском сайте.
appiduint3232-битный номер приложения, к которому относится покупка. Это будет AppID вашей игры.
steamiduint6464-битный SteamID пользователя, который совершил покупку.
languagestringЯзыковой код ISO639-1 и код страны ISO 3166-1 alpha-2 для языка, на котором необходимо возвращать строки.
К примеру: en_US, de_DE, zh_CN, ko_KR. По умолчанию: en_US
orderiduint64Уникальный 64-битный номер заказа. Этот тот же самый номер orderid, который был отправлен нам в ISteamMicroTxn/InitTxn.

Возвращаемые значения

Результат этого метода кодируется в .json.

Ответ:
  • result
    • success — true, если метод успешен. Если сервер ресурсов возвращает false, будет также возвращено поле error с объяснением.
    • error — объяснение сбоя. Это сообщение будет записано в журнал ошибок, который увидеть во вкладке «Экономика» раздела «Сообщество» настроек приложения.
    • assets — массив приобретённых предметов.
      • itemtypeid — номер предмета из игры. Этот тот же самое значение itemid, которое было отправлено нам в ISteamMicroTxn/InitTxn.
      • allow_refund — должно быть true, за исключением случаев, когда купленный предмет был потреблён, изменён или передан.
      • in_inventory — должно быть true, если купивший пользователь всё ещё владеет предметом.
      • bundle — если тип приобретенного предмета — bundle, содержащий другие предметы, тогда это поле должно быть true, а в массив assets в ответе необходимо включить предметы, которые входили в bundle.
      • current_state — человекочитаемая строка с текущим состоянием предмета. Этот текст будет показан пользователю и по возможности должен быть локализован. Чем больше здесь будет приведено подробностей, тем лучше, особенно если allow_refund = false. Это может быть что-то вроде «Предмет использован для создания другого предмета 25 марта 2015 года» или «Находится в вашем инвентаре».
      • item_name — название предмета. Этот текст будет показан пользователю и по возможности должен быть локализован.
      • amount — число приобретённых предметов. У всех предметов должен быть один и тот же id (неприменимо, если в вашей игре не реализован API экономики Steam). Если были куплены несколько предметов, но у них разные значения поля id, вместо использования поля amount включите эти предметы в массив assets.

        Обратите внимание: следующие поля применимы, только если в вашей игре поддерживается API экономики Steam.
      • id — assetid или currencyid предмета, выданного пользователю.
      • contextid — contextid, в который был помещён предмет.
      • currency — true, если id является currencyid.
      • class — массив идентификаторов классов ресурсов, заданных в игре. Это должен быть тот же самый класс, который вернул бы GetAssetClass/v0001.

Пример вывода

{ "result": { "assets": [ { "itemtypeid": 594, "contextid": 2, "currency": false, "amount": 1, "id": 3837860447, "class": [ { "name": "def_index", "value": "594" }, { "name": "flags", "value": "16" }, { "name": "origin", "value": "2", "instance": true }, { "name": "@tradable after date", "value": "1434493482", "instance": true } ] , "allow_refund": true, "in_inventory": true, "bundle": false, "current_state": "In your inventory", "item_name": "The Phlogistinator" }, { "itemtypeid": 214, "contextid": 2, "currency": false, "amount": 1, "id": 3837860448, "class": [ { "name": "def_index", "value": "214" }, { "name": "flags", "value": "16" }, { "name": "origin", "value": "2", "instance": true }, { "name": "@tradable after date", "value": "1434493482", "instance": true } ] , "allow_refund": true, "in_inventory": true, "bundle": false, "current_state": "In your inventory", "item_name": "The Powerjack" } ] , "success": true } }