Steamworks 문서
TradeSetOwned/v0001
Steam 경제 서버가 기존에 사용자의 보관함에서 소유자 없음으로 설정된 에셋 혹은 통화 묶음을 이전해야 할 때 호출됩니다. 에셋 서버는 해당 에셋 혹은 통화 유형에 합법적인 변화를 줄 수 있는지 확인해야 합니다. 에셋 소유권이 실제로 소유자 없음 상태인지, 에셋 혹은 통화가 거래가 가능한지, 요청된 수량이 존재하는지 확인해야 합니다.

겹칠 수 있는 에셋 및 통화의 경우 이 요청이 실제 소유자 없음으로 설정된 것보다 적은 양을 제공할 수 있습니다. 이런 경우에는 소유자 없는 에셋 혹은 통화의 양이 감소한 것이므로 새로운 에셋을 생성해야 합니다.

이는 커뮤니티 장터에 판매 가능하며 겹칠 수 있는 아이템이 있는 경우에 발생합니다. 예를 들어 누군가가 대량의 겹칠 수 있는 아이템을 단일 품목으로 장터에 올리면 다수의 소규모 구매가 발생할 수 있습니다.

판매 품목이 생성되면 에셋 서버는 하나의 TradeSetUnowned 호출을 받고 각 구매마다 하나의 TradeSetOwned 호출을 받습니다. 누군가가 장터의 해당 품목을 처음 구매하면, TradeSetOwnedaudit_reference 값이 TradeSetUnowned 호출의 audit_reference 값과 일치하게 됩니다. 이후 해당 품목을 구매하면 다른 audit_reference 값이 적용되지만, 여전히 동일한 assetid를 참조하게 됩니다. 판매를 취소할 경우, TradeSetOwned 결과 호출의 audit_reference 값은 기존에 다른 TradeSetOwned 호출에 사용되지 않은 값이 되므로 판매 품목이 생성될 때 TradeSetUnowned 호출에 사용된 값과 일치한다는 보장이 없습니다.

호출: Trading System

HTTP 메서드: POST

매개변수:

이름종류필수설명
keystring이것은 귀하가 파트너 사이트에 제공한 귀사 앱의 Steam 경제 설정에 있는 "자산 서버 키"입니다.
appiduint32에셋과 연관된 애플리케이션의 32비트 앱 ID.
owneruint64새로운 에셋 혹은 통화 소유자의 64비트 Steam ID.
contextiduint64이 에셋 혹은 통화를 찾을 수 있는 컨텍스트의 64비트 ID.
assetiduint64이전되는 64비트 에셋 ID. assetid 또는 currencyid 중 하나를 설정하여 어떤 종류의 객체가 소유로 설정되어야 하는지를 지정합니다.
currencyiduint32제거되는 32비트 통화 ID. assetid 또는 currencyid 중 하나를 설정하여 어떤 종류의 객체가 소유로 설정되어야 하는지를 지정합니다.
amountuint32이전할 에셋 혹은 통화의 수. 겹칠 수 없는 에셋의 수는 언제나 1입니다.
이 컨텍스트에서 Steam 경제 서버가 이 에셋/통화에 존재한다고 믿는 수량보다 언제나 적거나 같습니다. 기본값은 1입니다.
trade_start_timeuint32이 작업을 발생시킨 거래 세션이 시작된 시간. 1970년 1월 1일부터 초 단위로 표시합니다.
audit_actionuint3232비트 숫자로, 이 에셋 혹은 통화를 소유자 있음으로 설정하게 만드는 동작의 종류를 명시합니다.
audit_referenceuint64동작이 연관된 이벤트를 식별하는 64비트 숫자. 에셋 서버가 이 숫자를 감사 및 디버깅 목적으로 기록하려 할 수 있습니다.
leave_originalbool부울 매개변수를 1로 설정할 경우(true로 표시하기 위해), 에셋 서버가 아이템 복제 요청을 받고 명시된 에셋의 사본에 해당하는, 소유자 있는 새 아이템을 생성하게 됩니다. 이 값은 고객 지원 담당자의 일방적인 거래 취소 시에만 true입니다. 기본값은 0(false)입니다.
request_repeatedbool1로 설정할 경우(true로 표시하기 위해), Steam 경제 서버가 과거에 이와 유사한 요청을 보냈으나 명확한 성공 혹은 실패 메시지를 받지 못했음을 뜻합니다. 에셋 혹은 통화가 동일한 audit_action와 audit_reference에 소유자 있음으로 이미 설정된 경우, 에셋 서버는 성공을 반환하고 처음 요청 시 반환한 값에 새로운 new_assetid와 new_contextid를 설정해야 합니다.
is_marketbool1로 설정할 경우(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입니다.