Steamworks 文獻庫
TradeSetOwned/v0001
於 Steam 經濟體伺服器需要將先前設為無主的資產或貨幣轉移到另一個使用者的物品庫時呼叫。 資產伺服器將驗證對此資產或貨幣的更改是否符合規定。 資產伺服器需要檢查資產是否確實無主、資產或貨幣是否可以交易,以及具要求的數量。

如果是可堆疊的資產或貨幣,此要求提供的數量可以少於最初設定為無主的數量。 這種情況下、應減少無主資產或貨幣的數量,並且須建立新資產。

如果可堆疊物品能在社群市集上架,便會出現這種情況。 例如、如果有人單次在市集中上架了大量物品,便可能出現多次少量購買。

建立上架物品時,資產伺服器將收到一次 TradeSetUnowned 呼叫,然後每次購買將有一次 TradeSetOwned 呼叫。 市集上架物品第一次被購買時,TradeSetOwned 呼叫中的 audit_reference 值將與 TradeSetUnowned 呼叫中的 audit_reference 值一致。 該上架物品下一次被購買時將會有不同的 audit_reference 值,但仍會參考相同的 assetid。 若取消上架,所產生的 TradeSetOwned 呼叫中的 audit_reference 值將不會是 TradeSetOwned 呼叫任何之前使用過的值,因此不保證與建立上架物品時的 TradeSetUnowned 呼叫中的值一致。

呼叫方: 交易系統

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 的資產和貨幣已被設為有主,則資產伺服器應該傳回成功,並將 set new_assetid 和 new_contextid 設定為對第一個要求所傳回的值。
is_marketbool如果將其設為 1(代表 True),則要求正在執行,以回應 Steam 社群市集上的某些活動。 當 audit_action 為 101(提出交易),則表示使用者購買了此物品。 audit_action 為 102 時,則表示使用者正在取消市集上架,或由於上架時發生錯誤,物品正在被退回給使用者。

傳回

此方法的輸出應以 JSON 格式編碼。

回應:
  • result
    • success - 若方法成功,則為 True。 如果資產伺服器傳回 False,則會將 error 設為說明其原因的字串。
    • error - 說明呼叫失敗原因的字串。 此訊息將儲存於錯誤紀錄中。錯誤紀錄位於 Steamworks 網站中的「經濟」分頁之下。
    • new_assetid(可選用)- 此資產的無主版本的 64 位元資產 ID, 僅有在轉移資產時設定。 根據資產伺服器實作方法的不同,
      此值可以是新的資產 ID,也可以與回應中指定的資產 ID 一致。
      預設為與傳入的資產 ID 一致。

      備註: 作為稽核用途,我們建議資產伺服器的實作建立資產的新副本,並在 TradeSetOwned 回應中傳回新資產 ID。 如此一來一但資產被刪除或無主,該資產將永遠保持該狀態,我們發現這樣有助於防止出錯。 紀錄新舊資產之間的連結(例如保存資產在遊戲中首次建立時的「原始資產 ID」)也可能有好處。 我們認為這些方法有所益處,但不強制要求您採用。
    • new_contextid(可選用)- 此資產或貨幣新的持有版本的 64 位元脈絡 ID。 根據資產伺服器實作方法的不同,此值可以為不同的脈絡 ID,也可以與回應中指定的脈絡 ID 一致。 預設為傳入的脈絡 ID。

稽核動作

此為目前可以通過此方法傳入的稽核動作列表。 隨時皆可將新的稽核類型加入此列表,因此資產伺服器應準備好處理任何代表稽核動作的無正負號的 32 位元數字。
  • 101 - 提出交易 - 要求為交易提出程序的一部分。 audit_reference 為交易 ID。
  • 102 - 交易復原 - 要求為交易復原程序的一部分。 audit_reference 為交易 ID。