Steamworks-Dokumentation
TradeSetUnowned/v0001
Wird aufgerufen, wenn der Steam-Wirtschaftsserver ein Element oder eine Währungsmenge aus dem Inventar eines Benutzers entfernen und in den Status „unowned“ versetzen muss. Der Asset-Server muss dann entscheiden, ob die Änderung an dem betreffenden Element oder der betreffenden Währungsart zulässig ist. Er sollte überprüfen, ob das der Besitz des Elements tatsächlich mit dem angegeben Eigentümer übereinstimmt, ob das Element bzw. die Währungsmenge handelbar ist und ob es bzw. sie in der angeforderten Quantität vorhanden ist.

Aufgerufen von: Handelssystem

HTTP-Methode: POST

Parameter:

NameTypErforderlich?Beschreibung
keystringDies ist der „Asset-Server-Schlüssel“, den Sie in den Steam-Wirtschaftseinstellungen Ihrer Anwendung auf der Partnerseite angegeben haben.
appiduint32Die 32-Bit-App-ID der Anwendung, auf die sich das Element bezieht.
owneruint64Die 64-Bit-Steam-ID des momentanen Eigentümers des Elements bzw. der Währungsmenge.
contextiduint64Die 64-Bit-ID des Kontexts, in dem das Element bzw. die Währungsmenge enthalten ist.
assetiduint64Die 64-Bit-Element-ID, die entfernt wird. Es wird entweder die Element- oder die Währungs-ID eingestellt und angegeben, welche Art von Objekt als „unowned“ markiert werden soll.
currencyiduint32Die 32-Bit-Währungs-ID, die entfernt wird. Es wird entweder die Element- oder die Währungs-ID eingestellt und angegeben, welche Art von Objekt als „unowned“ markiert werden soll.
amountuint32Die Anzahl der Elemente bzw. Währungseinheiten, die entfernt werden sollen. Bei nicht stapelbaren Elementen ist diese Zahl immer 1.
Außerdem ist die Zahl immer kleiner als oder höchstens gleich der Menge, die nach Einschätzung des Steam-Economy-Servers für dieses Element bzw. diese Währung in diesem Kontext vorhanden ist. Standardwert: 1.
trade_start_timeuint32Der Zeitpunkt, zu dem die für diese Aktion verantwortliche Handelssitzung gestartet wurde, ausgedrückt in Sekunden seit dem 1. Januar 1970.
audit_actionuint32Eine 32-Bit-Zahl, die die Art der Aktion angibt, die das Element bzw. die Währungsmenge als „unowned“ kennzeichnet.
audit_referenceuint64Eine 64-Bit-Zahl zur Identifizierung des Ereignisses, auf das sich die Aktion bezieht. Es wird empfohlen, diese Zahl zu Audit- und Debugging-Zwecken vom Asset-Server aufzeichnen zu lassen.
leave_originalboolWenn dieser Boolesche Parameter auf 1 gesetzt ist (= true), wird der Asset-Server aufgefordert, den Gegenstand zu duplizieren und eine als „unowned“ gekennzeichnete Kopie des angegebenen Elements zu erstellen. Dies ist nur „true“ wenn ein Handelsgeschäft allein durch einen Supportmitarbeiter rückgängig gemacht wird. Standardwert: 0 (false).
request_repeatedboolWenn dies auf 1 gesetzt ist (= true), gibt der Steam-Economy-Server an, dass er bereits früher einmal eine identische Anfrage geschickt hat, aber keine eindeutige Erfolgs- oder Fehlermeldung zur Antwort bekommen hat. Wenn es den Anschein hat, dass dieses Element bzw. diese Währungsmenge für dieselbe audit_action und dieselbe audit_reference bereits auf „unowned“ gesetzt wurde, sollte der Asset-Server eine Erfolgsmeldung zurückgeben und new_assetid sowie new_contextid auf den Wert setzen, der bei der ersten Anfrage zurückgegeben wurde.
is_marketboolWenn dies auf 1 gesetzt ist (= true), ist die Anfrage eine Antwort auf irgendeine Aktivität im Steam-Communitymarkt.

Rückgabewerte

Die Ausgabe dieser Methode sollte im JSON-Format kodiert sein.

Antwort:
  • result
    • success: Gibt den Wert „true“ aus, wenn die Methode erfolgreich war. Wenn der Asset-Server „false“ zurückgibt, sollte error auf einen String eingestellt werden, in dem der Grund dafür erklärt wird.

      HINWEIS: Wenn für Erfolg „false“ zurückgegeben wird, die Antwort ungültig ist oder eine Zeitüberschreitung auftritt, wiederholt Steam die TradeSetUnowned-Anfrage so oft, bis sie erfolgreich ist. Tritt der Fehler dauerhaft auf (wenn der Gegenstand beispielsweise nicht mehr existiert), setzen Sie should_retry auf 0.
    • should_retry: Standardmäßig ruft Steam TradeSetUnowned so lange immer wieder auf, bis die Anfrage erfolgreich ist. Damit wird sichergestellt, dass sich der Gegenstand in einem konsistenten Status befindet, bevor der nächste Schritt entschieden wird. Wenn es sich jedoch um einen dauerhaften Fehler handelt und Sie wissen, dass der Aufruf nie erfolgreich sein wird (beispielsweise wenn der Gegenstand nicht mehr existiert), können Sie den Wert dieses Felds auf 0 setzen.

      Sie können auch 1 einstellen, wenn Sie Steam ausdrücklich darauf hinweisen möchten, dass es sich um einen vorübergehenden Fehler handelt (wenn Sie beispielsweise nicht in der Lage waren, Ihre Datenbank zu prüfen oder zu bearbeiten).

      Dieses Feld ist erforderlich, weil es Situationen geben kann, in denen der Asset-Server für dieselbe Element-ID zwei verschiedene TradeSetUnowned-Anfragen mit unterschiedlichen Werten für audit_reference erhält. Beispiel: Ein Benutzer verkauft einen Gegenstand, versucht aber gleichzeitig, den Gegenstand im Communitymarkt aufzulisten.
      Der Asset-Server sollte die erste TradeSetUnowned-Anfrage akzeptieren, die zweite aber ablehnen, da sich der Gegenstand nicht mehr im Besitz des Benutzers befindet. In der Antwort auf die zweite Anfrage sollte „should_retry“ auf 0 gesetzt werden, da diese Anfrage niemals erfolgreich war und niemals erfolgreich sein wird.

      Wichtig: Wenn dieser Wert 0 ist, geht Steam davon aus, dass Ihr Asset-Server nie Änderungen an diesem Element als Antwort auf die TradeSetUnowned-Anfrage vorgenommen hat.
      Daher ist es sehr wichtig, dass Sie dieses Feld nur dann auf 0 setzen, wenn Sie absolut sicher sind, dass die TradeSetUnowned-Anfrage nie verarbeitet wurde. Ein Fehler in diesem Punkt kann dazu führen, dass Benutzer Gegenstände verlieren.
      Wenn Sie beispielsweise ein Verfahren zur Verarbeitung einer doppelten Anfrage und auch ein Verfahren zur Überprüfung der Existenz des betreffenden Elements haben, sollten Sie sichergehen, dass das Verfahren zur Verarbeitung einer doppelten Anfrage zuerst ausgeführt wird. Andernfalls meldet Ihr Asset-Server bei der Wiederholung der Anfrage, dass der Gegenstand nicht mehr existiert und dass Steam die Anfrage nicht mehr zu wiederholen braucht, anstatt die Ergebnisse des vorherigen Aufrufs zurückzugeben.
    • error: Ein String, der beschreibt, warum dieser Aufruf fehlgeschlagen ist. Diese Nachricht wird im Fehlerprotokoll verzeichnet, das im Tab „Wirtschaft“ auf der Webseite von Steamworks verfügbar ist.
    • new_assetid (optional): Die 64-Bit-Element-ID der „unowned“-Version des Elements. Wird nur für Elementübertragungen eingestellt. Kann je nach Implementierung auf dem Asset-Server eine neue Element-ID oder die gleiche wie in der Anfrage sein.
      In der Standardeinstellung ist es die gleiche Element-ID wie in der ursprünglichen Anfrage.
    • new_contextid (optional): Die 64-Bit-Kontext-ID der „unowned“-Version des Elements oder der Währungsmenge. Kann je nach Implementierung auf dem Asset-Server eine neue Kontext-ID oder die gleiche wie in der Anfrage sein. In der Standardeinstellung ist es die gleiche Kontext-ID wie in der ursprünglichen Anfrage.

Audit-Aktionen

Das ist die aktuelle Liste der Audit-Aktionen, die mit dieser Methode übergeben werden können. Dieser Liste können jederzeit neue Audit-Typen hinzugefügt werden. Die Asset-Server sollten daher in der Lage sein, sämtliche 32-Bit-Zahlen ohne Vorzeichen als Audit-Aktionen zu interpretieren.
  • 101 – Handels-Abschluss: Diese Anfrage ist Teil des Prozesses zum Abschluss eines Handelsgeschäfts. audit_reference ist eine Handels-ID.
  • 102 – Handels-Rückabwicklung: Diese Anfrage ist Teil des Prozesses zur Rückabwicklung eines Handelsgeschäfts. audit_reference ist eine Handels-ID.