Dokumentacja Steamworks
TradeSetOwned/v0001
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:

NazwaTypWymagane?Opis
keystringJest to klucz serwera zasobów, który podano w ustawieniach Ekonomii Steam twojej aplikacji na stronie partnerskiej.
appiduint3232-bitowe ID aplikacji powiązanej z zasobami.
owneruint6464-bitowe ID Steam nowego właściciela zasobu lub waluty.
contextiduint6464-bitowe ID kontekstu, w którym znajduje się ten zasób lub waluta.
assetiduint6464-bitowe ID przenoszonego zasobu. Albo assetid, albo currencyid zostanie ustawione w celu wskazania, jaki rodzaj obiektu należy określić jako „posiadany”.
currencyiduint3232-bitowe ID usuwanej waluty. Albo assetid, albo currencyid zostanie ustawione w celu wskazania, jaki rodzaj obiektu należy określić jako „posiadany”.
amountuint32Liczba 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_timeuint32Czas rozpoczęcia sesji odpowiadającej za to działanie, który jest wyrażany w sekundach od 1 stycznia 1970 roku.
audit_actionuint3232-bitowa liczba wskazująca, który rodzaj działania spowodował zmianę statusu tego zasobu lub waluty na „posiadany”.
audit_referenceuint6464-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_originalboolJeś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_repeatedboolJeś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_marketboolJeś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.