Steamworks 文献库
TradeSetUnowned/v0001
当 Steam 经济体服务器需要从用户处移除资产或货币,并将之更改为无主状态时,调用此 API。 由资产服务器验证对此资产或币种进行的更改是否符合规定。 需要检查资产确实属于该指定的所有者、资产或货币可以交易,并确实存在所请求的数量。

调用方: 交易系统

HTTP 方法: POST

参数:

名称类型是否必需描述
keystring这是在合作伙伴网站上,您在自己应用的 Steam 经济体设置中提供的“资产服务器密钥”。
appiduint32与资产相关联的应用程序的 32 位 App ID。
owneruint64资产或货币的当前所有者的 64 位 Steam ID。
contextiduint64资产或货币所在的上下文的 64 位 ID。
assetiduint64要移除的资产的 64 位 ID。 assetid 或 currencyid 将设置为表示哪种对象应为无主。
currencyiduint32要移除的货币的 32 位 ID。 将用 assetid 或 currencyid 表示哪种对象应为无主。
amountuint32要移除的资产或货币的数量。 对于不可堆栈资产,此数字应始终为 1。
此数字将总小于或等于 Steam 经济体服务器认为此资产或货币在此上下文中所存在的量。 默认为 1。
trade_start_timeuint32此操作的交易会话的开始时间,表示为从 1970 年 1 月 1 日起的秒数。
audit_actionuint32一个 32 位数字,指明哪种操作导致此资产或货币设置为无主。
audit_referenceuint64一个 64 位数字,指明操作与哪个事件关联。 资产服务器也许希望记录此数字,用于审核与调试。
leave_originalbool如果此布尔参数设置为 1(表示 true),那么资产服务器正在被要求复制物品并创建新无主物品,作为指明资产的副本。 只有客服对交易单方撤销时才为 true。 默认为 0(False)。
request_repeatedbool若设置为 1(表示 true),那么 Steam 经济体服务器表示其在过去曾有一个完全相同的请求,但未明确是否成功,或请求失败。 如果资产或货币看起来已为同样的 audit_action 和 audit_reference 设置为无主,则资产服务器应该返回成功并将 new_assetid 和 new_contextid 设置为对第一个请求所返回的值。
is_marketbool如果设置为 1(表示 true),那么请求正在执行,以响应 Steam 社区市场上的某些活动。

返回

此方法的输出应为 JSON 格式。

响应:
  • result
    • success - 如果方法成功,为 true。 如果资产服务器返回 false,应将 error 设置为解释原因的字符串。

      注意:如果成功设置为 false,或如果响应无效或超时,Steam 将重试 TradeSetUnowned 请求,直至成功为止。 如果错误为永久性失败(如物品不存在等),您需要将 should_retry 设置为 0。
    • should_retry - 默认情况下,Steam 将重试 TradeSetUnowned 调用,直至成功为止。 这样做是为了先确保物品在一致的状态后,再决定下一步的操作。 然而,对于您知道重试也不会更改响应的永久性失败(如物品不存在等),您可将此字段的值设为 0。

      如果您希望明确告知 Steam 错误为暂时的(比如,您不能查看/修改您的数据库),您也可以将此值设为 1。

      由于资产服务器可能会收到针对 assetid 相同但 audit_reference 值不同的两个不同的 TradeSetUnowned 请求,此字段必需设置。 例如,一个用户也许会尝试交易一个物品,且同时试图将该物品在社区市场上架。
      资产服务器应该接受第一个 TradeSetUnowned 请求,然后,由于用户不再拥有该物品了,再拒绝第二个请求。 在这个例子里,由于第二个请求绝不会成功也从未成功,因此 should_retry 的设置应为 0。

      重要须知:当此值为 0 时,Steam 假设您的资产服务器从未响应 TradeSetUnowned 请求而对此资产进行过任何修改。
      因此,请务必记住,只有在您十分确定 TradeSetUnowned 请求之前从未被处理过时,此字段才能设置为 0。 如果设置错误,将可能导致用户丢失物品。
      例如,如果您有逻辑处理重复请求,且您有逻辑查看该资产仍存在,那么您会希望先进行对该重复请求的处理。 否则,对于重复请求,您的资产服务器将返回称物品不再存在,并通知 Steam 不再重试,而非正确返回上一个调用的结果。
    • error - 描述为何此调用失败的字符串。 这条消息将记录入错误日志,可在 Steamworks 站点的“经济体”选项卡下查看。
    • new_assetid(可选)- 此资产的无主版本的 64 位资产 ID。 只为资产转移设置。 视资产服务器的实现方式而定,可以为新资产 ID,或者与请求中所指定的资产 ID 相同。
      默认为与传入的资产 ID 相同。
    • new_contextid(可选)- 此资产或货币的无主版本的 64 位上下文 ID。 视资产服务器的实现方式而定,可以为不同的上下文 ID,或者与请求中所指定的上下文 ID 相同。 默认为与传入的上下文 ID 相同。

审核操作

这是可以通过此方法传入的审核操作的当前列表。 新审核类型能随时添加入此列表,因此资产服务器为处理任何无符号的 32 位数字的审核操作做好准备。
  • 101 - 交易提交 - 请求为提交一项交易的一部分。 audit_reference 为交易 ID。
  • 102 - 交易回滚 - 请求为回滚一项交易的一部分。 audit_reference 为交易 ID。