Steam 경제 서버가 기존에 사용자의 보관함에서 소유자 없음으로 설정된 에셋 혹은 통화 묶음을 이전해야 할 때 호출됩니다. 에셋 서버는 해당 에셋 혹은 통화 유형에 합법적인 변화를 줄 수 있는지 확인해야 합니다. 에셋 소유권이 실제로 소유자 없음 상태인지, 에셋 혹은 통화가 거래가 가능한지, 요청된 수량이 존재하는지 확인해야 합니다.
겹칠 수 있는 에셋 및 통화의 경우 이 요청이 실제 소유자 없음으로 설정된 것보다 적은 양을 제공할 수 있습니다. 이런 경우에는 소유자 없는 에셋 혹은 통화의 양이 감소한 것이므로 새로운 에셋을 생성해야 합니다.
이는 커뮤니티 장터에 판매 가능하며 겹칠 수 있는 아이템이 있는 경우에 발생합니다. 예를 들어 누군가가 대량의 겹칠 수 있는 아이템을 단일 품목으로 장터에 올리면 다수의 소규모 구매가 발생할 수 있습니다.
판매 품목이 생성되면 에셋 서버는 하나의
TradeSetUnowned 호출을 받고 각 구매마다 하나의
TradeSetOwned
호출을 받습니다. 누군가가 장터의 해당 품목을 처음 구매하면,
TradeSetOwned
의
audit_reference
값이
TradeSetUnowned
호출의
audit_reference
값과 일치하게 됩니다. 이후 해당 품목을 구매하면 다른
audit_reference
값이 적용되지만, 여전히 동일한
assetid
를 참조하게 됩니다. 판매를 취소할 경우,
TradeSetOwned
결과 호출의
audit_reference
값은 기존에 다른
TradeSetOwned
호출에 사용되지 않은 값이 되므로 판매 품목이 생성될 때
TradeSetUnowned
호출에 사용된 값과 일치한다는 보장이 없습니다.
호출: Trading System
HTTP 메서드: POST
매개변수:
이름 | 종류 | 필수 | 설명 |
key | string | ✔ | 이것은 귀하가 파트너 사이트에 제공한 귀사 앱의 Steam 경제 설정에 있는 "자산 서버 키"입니다. |
appid | uint32 | ✔ | 에셋과 연관된 애플리케이션의 32비트 앱 ID. |
owner | uint64 | ✔ | 새로운 에셋 혹은 통화 소유자의 64비트 Steam ID. |
contextid | uint64 | ✔ | 이 에셋 혹은 통화를 찾을 수 있는 컨텍스트의 64비트 ID. |
assetid | uint64 | | 이전되는 64비트 에셋 ID. assetid 또는 currencyid 중 하나를 설정하여 어떤 종류의 객체가 소유로 설정되어야 하는지를 지정합니다. |
currencyid | uint32 | | 제거되는 32비트 통화 ID. assetid 또는 currencyid 중 하나를 설정하여 어떤 종류의 객체가 소유로 설정되어야 하는지를 지정합니다. |
amount | uint32 | | 이전할 에셋 혹은 통화의 수. 겹칠 수 없는 에셋의 수는 언제나 1입니다. 이 컨텍스트에서 Steam 경제 서버가 이 에셋/통화에 존재한다고 믿는 수량보다 언제나 적거나 같습니다. 기본값은 1입니다. |
trade_start_time | uint32 | ✔ | 이 작업을 발생시킨 거래 세션이 시작된 시간. 1970년 1월 1일부터 초 단위로 표시합니다. |
audit_action | uint32 | ✔ | 32비트 숫자로, 이 에셋 혹은 통화를 소유자 있음으로 설정하게 만드는 동작의 종류를 명시합니다. |
audit_reference | uint64 | ✔ | 동작이 연관된 이벤트를 식별하는 64비트 숫자. 에셋 서버가 이 숫자를 감사 및 디버깅 목적으로 기록하려 할 수 있습니다. |
leave_original | bool | ✔ | 부울 매개변수를 1로 설정할 경우(true로 표시하기 위해), 에셋 서버가 아이템 복제 요청을 받고 명시된 에셋의 사본에 해당하는, 소유자 있는 새 아이템을 생성하게 됩니다. 이 값은 고객 지원 담당자의 일방적인 거래 취소 시에만 true입니다. 기본값은 0(false)입니다. |
request_repeated | bool | ✔ | 1로 설정할 경우(true로 표시하기 위해), Steam 경제 서버가 과거에 이와 유사한 요청을 보냈으나 명확한 성공 혹은 실패 메시지를 받지 못했음을 뜻합니다. 에셋 혹은 통화가 동일한 audit_action와 audit_reference에 소유자 있음으로 이미 설정된 경우, 에셋 서버는 성공을 반환하고 처음 요청 시 반환한 값에 새로운 new_assetid와 new_contextid를 설정해야 합니다. |
is_market | bool | ✔ | 1로 설정할 경우(true로 표시하기 위해), Steam 커뮤니티 장터의 어떤 활동에 대한 응답으로 요청이 실행되는 중입니다. Audit_action이 101(거래 성사)이면 사용자가 아이템을 구매했음을 나타냅니다. Audit_action이 102이면 사용자가 장터 판매를 취소하였거나 혹은 판매 품목을 생성할 때의 오류로 인해 아이템이 사용자에게 반환되고 있음을 나타냅니다. |
반환값
이 메서드의 출력은 JSON 형식으로 인코딩되어야 합니다.
응답: -
결과
-
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입니다.