Documentación de Steamworks
TradeSetOwned/v0001
Se llama cuando el servidor de economía de Steam necesita transferir un recurso o un importe de moneda previamente establecido como sin propietario al inventario de un usuario. Corresponde al servidor de recursos verificar que es un cambio legal para tal recurso o tipo de moneda. Deberá comprobar que la propiedad del recurso está realmente vacante, que el recurso o la moneda sean intercambiables y que exista la cantidad solicitada.

Para recursos y monedas apilables, es posible que esta solicitud aporte una cantidad que sea menor que la originalmente establecida como sin propietario. En tal caso, el recurso o la moneda sin propietario deberá ver su cantidad reducida y deberá crearse un nuevo recurso.

Esto sucede si se posee un artículo apilable que pueda comercializarse en el Mercado de la Comunidad. Por ejemplo, si alguien ofrece una gran pila de artículos en el Mercado para su venta en una única transacción, podrían entrar varias compras menores.

El servidor de recursos recibirá una llamada TradeSetUnowned cuando se crea el listado y luego una llamada TradeSetOwned para cada compra. Cuando alguien realiza la primera compra para el listado en el mercado, el valor de audit_reference en la llamada de TradeSetOwned coincidirá con el valor audit_reference de la llamada TradeSetUnowned. Las compras posteriores de esa lista tendrán valores diferentes para audit_reference, pero seguirán haciendo referencia al mismo assetid. Si la lista se cancela, el valor de audit_reference en la llamada resultante TradeSetOwned será un valor que no se haya utilizado anteriormente en ninguna otra TradeSetOwned llamada y por lo tanto no se garantiza que coincida con el valor utilizado en la llamada TradeSetUnowned cuando se creó la lista.

Llamada por: Trading System

Método HTTP: POST

Parámetros:

NombreTipoObligatorioDescripción
keystringEsta es la "Clave del servidor de recursos" que proporcionaste en la configuración de la economía de Steam de tu aplicación en el sitio de asociado.
appiduint32Id. de 32 bits de la aplicación asociada con el recurso.
propietariouint64Id. de Steam de 64 bits del nuevo propietario del recurso o de la moneda.
contextiduint64Id. de 64 bits del contexto en que puede encontrarse el recurso o la moneda.
assetiduint64Id. del activo de 64 bits que se transfiere. Se establecerán assetid o currencyid para indicar qué clase de objeto debe configurarse como que ya se posee.
currencyiduint32Id. de la divisa de 32 bits que se está eliminando. Se establecerán assetid o currencyid para indicar qué clase de objeto debe configurarse como que ya se posee.
cantidaduint32El número del activo o moneda a transferir. Este número siempre será 1 para los recursos no acumulables.
Siempre será menor o igual a la cantidad que el servidor de la economía de Steam cree que está presente para este recurso/moneda en este contexto. Por defecto es 1.
trade_start_timeuint32La hora en que comenzó la sesión de intercambio responsable de esta acción, expresada en segundos desde el 1.° de enero de 1970.
audit_actionuint32Un número de 32 bits que especifica qué tipo de acción hace que este activo o moneda se establezca como que se posee.
audit_referenceuint64Número de 64 bits que identifica el evento al que se asocia la acción. El servidor de recursos puede querer registrar este número con fines de auditoría y depuración.
leave_originalboolSi este parámetro booleano se establece como 1 (para indicar "true"), se está pidiendo al servidor de recursos que duplique el artículo y cree un nuevo artículo que ya posees, que es una copia del recurso especificado. Esto solo será "true" para anulaciones unilaterales de un intercambio por parte de un agente de soporte. El valor predeterminado es 0 ("false").
request_repeatedboolSi se establece como 1 (para indicar "true"), el servidor de economía de Steam está indicando que ya realizó una solicitud idéntica a esta en algún momento pasado, pero que no recibió una respuesta clara de si se completó o falló. Si parece que el recurso o la moneda ya se ha establecido como ya poseído para la misma audit_action y audit_reference, el servidor de recursos debe devolver "success" y establecer new_assetid y new_contextid a lo que se devolvió en la primera solicitud.
is_marketboolSi se establece como 1 (para indicar "true"), la solicitud se está realizando en respuesta a alguna actividad en el Mercado de la Comunidad de Steam. Cuando audit_action es 101 (Compromiso comercial), esto indica que el usuario ha comprado este artículo. Cuando audit_action es 102, indica que el usuario está cancelando su oferta en el mercado o que el artículo se devuelve al usuario debido a un error en la creación de la oferta.

Devuelve:

La salida de este método debería estar codificada en formato JSON.

Respuesta:
  • result
    • success - devuelve "true" si el método fue exitoso. Si el servidor de recursos devuelve "false", debería establecer error en una cadena que explique por qué.
    • error - una cadena que describe por qué falló esta llamada. Este mensaje se incluirá en el registro de errores, que está disponible en la pestaña "Economía" del sitio de Steamworks.
    • new_assetid (opcional) - Id. de Steam de 64 bits del usuario que actualmente posee este activo. Solo se establece para transferencias de recursos. Esto
      podría ser un nuevo id. del recurso o ser el mismo que el id. de ese recurso especificado en la solicitud, dependiendo de la implementación del servidor de recursos.
      El valor predeterminado es el mismo que el id. del recurso que se pasó.

      NOTA: Para fines de auditoría, recomendamos que las implementaciones del servidor de recursos creen una nueva copia del recurso y devuelvan el nuevo id. de recurso en la respuesta de TradeSetOwned. Hemos comprobado que, además, esto ayuda a prevenir errores, pues significa que, una vez que un recurso queda eliminado o no poseído, permanece para siempre en ese estado. También puede ser útil comprobar que exista un vínculo entre el recurso nuevo y el antiguo (por ejemplo, conservando el "id. del recurso original" del momento en que se creó el recurso en el juego). Nada de esto es obligatorio, pero sí hemos comprobado que resulta útil.
    • new_contextid (opcional) - Id. de contexto de 64 bits de la versión de nueva propiedad de este activo o divisa. Puede ser un id. de contexto diferente o ser igual al id. de contexto especificado en la solicitud, dependiendo de la implementación del servidor de recursos. De forma predeterminada, es igual al id. de contexto que se pasó.

Auditoría de acciones

Esta es la lista actual de acciones de auditoría que pueden pasarse con este método. Pueden agregarse nuevos tipos de auditoría a esta lista en cualquier momento, de modo que los servidores de recursos deben estar preparados para gestionar cualquier número de 32 bits sin signo como acción de auditoría.
  • 101 - Trade Commit - La solicitud es parte de realizar una venta. audit_reference es un id. comercial.
  • 102 - Trade Rollback - La solicitud es parte de deshacer una venta. audit_reference es un id. comercial.