Wywoływana, gdy serwer Ekonomii Steam musi przesłać zasób lub część waluty, których stan w ekwipunku użytkownika był wcześniej ustawiony na „nieposiadany”. To na serwerze zasobów ciąży odpowiedzialność weryfikacji prawidłowości wprowadzanej zmiany do rodzaju zasobu lub waluty – powinien on sprawdzić, czy stan zasobu jest rzeczywiście określony jako „nieposiadany”, czy zasób lub waluta są wymienialne oraz czy żądana liczba jest dostępna.
W przypadku walut oraz zasobów, które można ze sobą łączyć, jest możliwe, że to żądanie zwróci mniejszą liczbę, niż jaka oryginalnie była określona jako „nieposiadana”. W takim przypadku liczba „nieposiadanych” zasobów lub walut powinna zostać zmniejszona i powinien zostać utworzony nowy zasób.
Stanie się tak, jeśli masz przedmioty, których można mieć wiele kopii jednocześnie i które mogą zostać wystawione na Rynku Społeczności Steam. Na przykład jeśli użytkownik wystawi na sprzedaż dużą liczbę identycznych przedmiotów w ramach jednego potwierdzenia, to możliwe, że zostaną one sprzedane w wielu mniejszych transakcjach.
Serwer zasobów otrzyma jedno wywołanie
TradeSetUnowned podczas tworzenia oferty, a następnie jedno wywołanie
TradeSetOwned
dla każdego zakupu. Kiedy ktoś zakupi pierwszy przedmiot znajdujący się w danej grupie wystawionych, wartość
audit_reference
w wywołaniu
TradeSetOwned
dopasuje wartość
audit_reference
z wywołania
TradeSetUnowned
. Kolejne zakupy przedmiotów z tej grupy będą miały inne wartości dla
audit_reference
, ale wciąż będą odwoływały się do tego samego
assetid
. Jeśli wystawienie przedmiotów zostanie wycofane, to wartość
audit_reference
w następującym wywołaniu
TradeSetOwned
przybierze wartość, która nie była wcześniej używana w innych wywołaniach
TradeSetOwned
, i w rezultacie może nie pasować do wartości użytej w wywołaniu
TradeSetUnowned
, gdy przedmioty zostały początkowo wystawione.
Wywoływana przez: system handlu
Metoda HTTP: POST
Parametry:
Nazwa | Typ | Wymagane? | Opis |
key | string | ✔ | Jest to klucz serwera zasobów, który podano w ustawieniach Ekonomii Steam twojej aplikacji na stronie partnerskiej. |
appid | uint32 | ✔ | 32-bitowe ID aplikacji powiązanej z zasobami. |
owner | uint64 | ✔ | 64-bitowe ID Steam nowego właściciela zasobu lub waluty. |
contextid | uint64 | ✔ | 64-bitowe ID kontekstu, w którym znajduje się ten zasób lub waluta. |
assetid | uint64 | | 64-bitowe ID przenoszonego zasobu. Albo assetid, albo currencyid zostanie ustawione w celu wskazania, jaki rodzaj obiektu należy określić jako „posiadany”. |
currencyid | uint32 | | 32-bitowe ID usuwanej waluty. Albo assetid, albo currencyid zostanie ustawione w celu wskazania, jaki rodzaj obiektu należy określić jako „posiadany”. |
amount | uint32 | | Liczba zasobów lub waluty do przeniesienia. W przypadku zasobów, których nie można łączyć ze sobą, liczba ta wynosi zawsze 1. Ta wartość jest zawsze mniejsza lub równa liczbie zasobów lub walut, co do której serwer Ekonomii Steam wierzy, że jest obecna dla tego zasobu lub waluty w tym kontekście. Domyślnie: 1. |
trade_start_time | uint32 | ✔ | Czas rozpoczęcia sesji odpowiadającej za to działanie, który jest wyrażany w sekundach od 1 stycznia 1970 roku. |
audit_action | uint32 | ✔ | 32-bitowa liczba wskazująca, który rodzaj działania spowodował zmianę statusu tego zasobu lub waluty na „posiadany”. |
audit_reference | uint64 | ✔ | 64-bitowa liczba używana do zidentyfikowania zdarzenia powiązanego z działaniem. Serwer zasobów może zarejestrować ten numer do celów kontrolnych i debugowania. |
leave_original | bool | ✔ | Jeśli ten parametr boolowski jest równy 1 (w celu wskazania „true”), od serwera zasobów żąda się utworzenia duplikatu przedmiotu i utworzenia nowego przedmiotu ze statusem „posiadany” i który jest kopią określonego zasobu. Ten parametr będzie równy „true” tylko w przypadku jednostronnego anulowania wymiany przez pracownika pomocy technicznej. Domyślnie: 0 (false). |
request_repeated | bool | ✔ | Jeśli ten parametr wynosi 1 (w celu wskazania „true”), serwer Ekonomii Steam wskazuje, że wcześniej wysłał żądanie identyczne z tym, ale nie otrzymał jasnej odpowiedzi, czy się ono powiodło, czy nie. Jeśli okaże się, że stan zasobu lub waluty został już zmieniony na „posiadany” dla tych samych parametrów „audit_action” i „audit_reference”, serwer zasobów powinien zwrócić odpowiedź pozytywną i ustawić „new_assetid” i „new_contextid” na cokolwiek, co zostało zwrócone w pierwszym żądaniu. |
is_market | bool | ✔ | Jeśli ten parametr wynosi 1 (w celu wskazania „true”), to żądanie jest wysyłane w odpowiedzi na jakąś aktywność na Rynku Społeczności Steam. Jeśli „audit_action” ma wartość 101 (zatwierdzenie wymiany), oznacza to, że użytkownik kupił przedmiot. Jeśli „audit_action” wynosi 102, oznacza to, że użytkownik anulował wystawienie przedmiotu lub przedmiot został zwrócony do użytkownika z powodu błędu podczas tworzenia oferty. |
Wartości zwrotne
Wynik tej metody powinien być zakodowany w formacie JSON.
Odpowiedź: -
result
-
success
– wartość „true”, jeśli metoda zakończy się powodzeniem. Jeśli serwer zasobów zwraca wartość „false”, to powinien ustawić error
jako string z wyjaśnieniem dlaczego.
-
error
– string wyjaśniający, dlaczego to wywołanie nie powiodło się. Ta wiadomość zostanie zapisana w dzienniku błędów, który jest dostępny w zakładce „Ekonomia” na stronie Steamworks.
-
new_assetid
(opcjonalnie) – 64-bitowe ID zasobu w jego „nieposiadanej” wersji. Ta wartość jest ustawiana tylko wtedy, gdy zasób jest przenoszony. Może to
być nowe ID zasobu lub takie samo jak to określone w żądaniu w zależności od implementacji serwera zasobów.
Domyślne ID zasobu jest takie samo, jakie zostało wcześniej przekazane.
UWAGA: Dla lepszej kontroli zalecamy wdrożenie tego w taki sposób, aby serwer zasobów tworzył nową kopię zasobu i zwracał nowe ID zasobu w odpowiedzi TradeSetOwned. Uważamy, że takie podejście pomaga zapobiegać błędom, ponieważ oznacza to, że jeśli zasób został usunięty lub pozbawiony właściciela, pozostaje on w tym stanie na zawsze. Przydatne może być także śledzenie relacji między starymi i nowymi zasobami (na przykład można zapisać niektóre ID oryginalnych zasobów z czasu, kiedy zostały one początkowo utworzone w twojej grze). Nie jest to jednak wymagane — po prostu uważamy te działania za użyteczne.
-
new_contextid
(opcjonalnie) – 64-bitowe ID kontekstu wersji tego zasobu lub waluty, która niedawno zmieniła status na „posiadany”. Może to być inne ID kontekstu lub takie samo jak to określone w żądaniu w zależności od implementacji serwera zasobów. Domyślne ID kontekstu jest takie samo, jakie zostało wcześniej przekazane.
Działania kontrolne
Jest to bieżąca lista działań kontrolnych, które można przekazać za pomocą tej metody. Możemy dodać nowe rodzaje tych działań w dowolnym momencie, więc serwery zasobów powinny być gotowe na obsługę dowolnych 32-bitowych liczb bez znaku jako numer działania kontrolnego.
- 101 – Trade Commit (zatwierdzenie wymiany). Żądanie jest częścią zatwierdzenia wymiany. Pole „audit_reference” to ID wymiany.
- 102 – Trade Rollback (anulowanie wymiany). Żądanie jest częścią anulowania wymiany. Pole „audit_reference” to ID wymiany.