Questa funzione viene chiamata quando il server dell'Economia di Steam deve trasferire all'inventario dell'utente una risorsa o un blocco di valuta precedentemente non in suo possesso. Il server della risorsa verifica la liceità della modifica da apportare alla risorsa o al tipo di valuta, controlla che la risorsa non sia effettivamente posseduta, che la risorsa o valuta sia scambiabile e che la quantità richiesta sia disponibile.
Per le risorse e le valute cumulabili, la richiesta può fornire una quantità inferiore a quella originariamente impostata su non posseduta. In questo caso è necessario diminuire la quantità della risorsa o valuta non possedute e creare una nuova risorsa.
Ciò accadrà se si dispone di un oggetto cumulabile che può essere messo in vendita sul Mercato della Comunità. Ad esempio, se viene pubblicata una singola inserzione sul Mercato per un gran numero di oggetti, potrebbero pervenire acquisti multipli di dimensioni ridotte.
Il server della risorsa riceverà una chiamata
TradeSetUnowned quando viene creata l'inserzione e una chiamata
TradeSetOwned
per ogni acquisto. Quando un utente effettua il primo acquisto dell'inserzione sul Mercato, il valore
audit_reference
della chiamata
TradeSetOwned
corrisponderà al valore
audit_reference
della chiamata
TradeSetUnowned
. Tutti gli acquisti successivi da tale inserzione avranno valori diversi per
audit_reference
, ma continueranno a fare riferimento allo stesso
assetid
. Se l'inserzione viene annullata, il valore di
audit_reference
nella chiamata risultante
TradeSetOwned
sarà un valore che non è stato usato in precedenza in nessun'altra delle chiamate
TradeSetOwned
e che quindi non corrisponderà con certezza al valore utilizzato nella chiamata
TradeSetUnowned
al momento della creazione dell'inserzione.
Chiamata da: Sistema di scambio
Metodo HTTP: POST
Parametri:
Nome | Tipo | Necessario | Descrizione |
key | stringa | ✔ | Questo è il "codice del server delle risorse" che hai fornito nelle impostazioni Economia di Steam sul sito per i partner della tua applicazione. |
appid | uint32 | ✔ | L'appID a 32 bit dell'applicazione associata alle risorse. |
owner | uint64 | ✔ | Lo SteamID a 64 bit del nuovo proprietario della risorsa o valuta. |
contextid | uint64 | ✔ | L'ID a 64 bit del contesto in cui la risorsa o valuta è disponibile. |
assetid | uint64 | | L'ID a 64 bit della risorsa che viene trasferito. L'ID della risorsa o valuta verrà impostato a indicare il tipo di oggetto da impostare come in possesso. |
currencyid | uint32 | | L'ID a 32 bit della valuta che viene rimosso. L'ID della risorsa o valuta verrà impostato a indicare il tipo di oggetto da impostare come in possesso. |
amount | uint32 | | Il numero di unità della risorsa o valuta da trasferire. Questo numero sarà sempre pari a 1 per le risorse non impilabili. Sarà sempre inferiore o uguale al numero di unità di risorsa o valuta ritenuto presente nel contesto dal server dell'Economia di Steam. L'impostazione predefinita è 1. |
trade_start_time | uint32 | ✔ | L'orario in cui la sessione di scambio responsabile dell'azione è stata avviata, espresso in secondi dall'1/1/1970. |
audit_action | uint32 | ✔ | Un numero a 32 bit che specifica il tipo di azione che determina l'impostazione della risorsa o valuta su in possesso. |
audit_reference | uint64 | ✔ | Un numero a 64 bit che identifica l'evento cui è associata l'azione. Il server della risorsa può registrare questo numero per scopi di controllo e di debug. |
leave_original | bool | ✔ | Se questo parametro booleano è impostato su 1 (a indicare "true"), al server della risorsa viene chiesto di duplicare l'oggetto e di creare un nuovo oggetto posseduto che sia una copia della risorsa specificata. Restituirà "true" solo per gli annullamenti unilaterali di uno scambio effettuati da un agente di supporto. Il valore predefinito è 0 (false). |
request_repeated | bool | ✔ | Se impostato su 1 (a indicare "true"), il server dell'Economia di Steam sta indicando che ha eseguito una richiesta identica a questo parametro in passato ma non ha ricevuto una restituzione di successo o fallimento. Se la risorsa o valuta sembra già essere impostata su posseduta per gli stessi parametri audit_action e audit_reference, il server della risorsa deve restituire "success" e impostare i parametri new_assetid e new_contextid sui risultati restituiti dalla prima richiesta. |
is_market | bool | ✔ | Se impostato su 1 (a indicare "true"), la richiesta viene eseguita in risposta ad alcune attività sul Mercato della Comunità di Steam. Quando audit_action è 101 (commit di scambio), questo parametro indica che l'utente ha acquistato l'oggetto. Quando audit_action è 102, questo parametro indica che l'utente sta annullando l'inserzione del Mercato o che l'articolo è in fase di restituzione all'utente a causa di un errore nella creazione dell'inserzione. |
Restituzioni
L'output di questo metodo deve essere codificato nel formato JSON.
Risposta: -
result
-
success
: se il metodo è riuscito, restituisce "true". Se il server della risorsa restituisce "false", imposta la stringa error
che ne fornisce una spiegazione.
-
error
: una stringa che descrive il motivo per cui la chiamata è fallita. Questo messaggio verrà incluso nel registro degli errori, disponibile alla scheda Economia del sito di Steamworks.
-
new_assetid
(opzionale): l'ID a 64 bit della risorsa della versione non posseduta della risorsa. Viene impostata solo per il trasferimento della risorsa. In base all'implementazione del server delle risorse,
potrebbe essere un nuovo ID della risorsa oppure può essere uguale all'ID specificato nella richiesta.
Le impostazioni predefinite devono essere identiche a quelle dell'ID della risorsa inviata.
NOTA: per scopi di auditing è consigliabile che le implementazioni nel server delle risorse creino una nuova copia della risorsa e restituiscano il nuovo ID nella risposta TradeSetOwned. Abbiamo notato che questa operazione aiuta a prevenire i bug: quando la risorsa viene eliminata o non è più in possesso dell'utente, rimane in tale stato per sempre. Può risultare utile verificare che ci sia un collegamento esistente tra la nuova e la vecchia risorsa (ad esempio, preservando l'ID originale della risorsa generato al momento della sua creazione nel gioco). Nessuno di questi parametri è strettamente necessario, ma potrebbero comunque essere utili.
-
new_contextid
(opzionale): l'ID del contesto a 64 bit della nuova versione di proprietà della risorsa o valuta. A seconda dell'implementazione del server delle risorse, può essere un ID di contesto diverso o uguale a quello specificato nella richiesta. Il valore predefinito è uguale a quello dell'ID di contesto che è stato passato nel metodo.
Azioni di audit
Quello che segue è l'elenco delle azioni di audit che attualmente è possibile passare con questo metodo. I nuovi tipi di audit possono essere aggiunti a questo elenco in qualsiasi momento. Pertanto, i server della risorsa saranno pronti a ricevere qualsiasi numero non firmato a 32 bit come azione di audit.
- 101 commit di scambio: la richiesta fa parte dell'esecuzione del commit di uno scambio. audit_reference è l'ID dello scambio.
- 102 annullamento di scambio: la richiesta fa parte dell'annullamento di uno scambio. audit_reference è l'ID dello scambio.