Steamworks 문서
Steam 보관함 웹 기능
사용자를 이동시킬 수 있는 구조화된 웹 페이지입니다.

아이템 장바구니

ItemCart는 Steam을 통해 구매할 한 개 이상의 아이템을 장바구니에 담아 전송하는 데 사용할 수 있습니다. 게임 혹은 UI에 장바구니를 만들어 유지한 이후 장바구니의 콘텐츠를 Steam에 전송하여 아이템을 구매 및 활성화할 수 있습니다.

상점은 웹 형식을 사용하여 클라이언트 브라우저가 https://store.steampowered.com/itemcart/checkout에 직접 POST하도록 해야 합니다. 사용자의 구매 환경은 브라우저에 따라 약간의 차이가 있을 수 있습니다.

독립형 웹 브라우저(Chrome, 인터넷 익스플로러 등):

  • 지갑 통화가 일치하지 않을 경우, 불일치를 알리는 결과 코드와 함께 반환 URL로 즉시 돌려보냅니다(상점의 로컬 통화를 수정하여 체크아웃을 계속 진행할 수 있는 기회를 제공).
  • 사용자 통화로 표시된 개별 아이템 가격 및 총 가격, '구매'/'취소’ 버튼이 있는 장바구니입니다.
  • 취소를 선택할 경우 ‘사용자 거부’ 상태와 함께 거래가 취소됩니다.
  • 구매를 선택할 경우, 거래가 자동으로 이루어집니다.
  • 사용자가 적절한 반환 URL로 안내됩니다.

Steam 오버레이 / Big Picture 웹 브라우저:

  • 첫 로그인 단계가 없는 일반 웹 브라우저와 같습니다. 사용자가 계정을 변경할 수 없습니다.

Steamworks API 인증 쿠키를 사용하는 게임 내 웹 브라우저:

  • 지갑 통화가 일치하지 않을 경우, 불일치를 알리는 결과 코드와 함께 반환 URL로 즉시 돌려보냅니다.
  • 구매 인증을 위해 Steam 오버레이를 선택하라는 웹 페이지 안내가 표시됩니다.
  • Steam 오버레이는 구매/취소 대화창과 함께 자동으로 활성화됩니다.
  • 사용자가 구매 혹은 취소를 선택하면 오버레이가 종료되며 일반 웹 브라우저에서 절차를 계속 진행합니다.

HTML 예시

<form action="https://store.steampowered.com/itemcart/checkout" method="post"> <input type="hidden" name="appid" value="234560"> <input type="hidden" name="cart" value="1001,1006*2"> <input type="hidden" name="total" value="USD499"> <input type="hidden" name="sandbox" value="0"> <input type="hidden" name="return" value="http://mystore.com/checkout.php?fromsteam=1&cartid=BA13522FE31&result=[RESULT]&orderid=[ORDERID]&steamid=[STEAMID]&name=[USERNAME]&cc=[CURRENCY]&auth=[AUTH]"> <input type="hidden" name="auth" value="9a38954f503bf38a16024a9ae9328e8fa780f5be"> <input type="hidden" name="lang" value="en"> <input type="image" src="checkout.png" alt="Checkout"> </form>

  • appid - 귀하의 앱 ID 번호입니다.
  • cart - 선택적인 xN 또는 *N 수량 접미어를 포함한 쉼표로 분리된 아이템 정의 색인 번호입니다. 순서는 관계 없습니다. 중복은 추가 수량으로 간주합니다.
  • total - 장바구니의 예상 총액입니다. 이 숫자가 일치하지 않으면 체크아웃에 실패합니다. 형식은 대문자 통화 형식(USD, EUR, GBP, 등) + 총액 숫자입니다.
  • sandbox - 1 또는 0입니다. Sandbox=1은 Steamworks 앱에서 Sandbox 테스트가 구체적으로 활성화되지 않으면 실패합니다.
  • return - 체크아웃을 마치고 확정 준비가 되면 사용자를 보낼 URL입니다. 선택적 대체 필드는 아래에서 설명합니다.
  • auth - 다섯 개의 이전 값을 순서대로 계산한 HMAC-SHA1 인증 코드입니다. Itemcart 비밀 키를 사용하며 새 줄로 구분됩니다. 문서 마지막의 샘플 PHP를 참조하세요. 비밀 키는 앱의 Steamworks 구성 페이지에 있는 Economy 탭에서 확인할 수 있습니다.
  • lang - 체크아웃 페이지의 기본값 언어를 설정하는 선택적 ICU 언어 코드(영어는 ‘en’)입니다. 이 선택적 필드는 인증되지 않습니다.

반환 URL에서는 다음 문자열이 대체됩니다.
  • [RESULT] - 결과 코드(0 = 성공, 1 = 사용자 거부, 2 = 통화 불일치, 3 이상은 내부 오류 코드).
  • [ORDERID] - Steam 'orderid'를 나타내는 64비트 무부호 십진법 정수. ISteamMicroTxn/QueryTxn api와 사용하여 거래 세부 사항을 인증하기 위해 사용할 수 있습니다. 사용자가 취소하면 빈 값입니다. ISteamMicroTxn/GetReport가 생성한 보고서와 일치
  • [STEAMID] - 사용자의 Steam ID를 나타내는 64비트 무부호 십진법 정수. 사용자가 로그인을 거부한 경우 빈 값입니다.
  • [USERNAME] - URL 매개변수에 맞게 부호화된 사용자의 표시 이름. 사용자가 로그인을 거부한 경우 빈 값입니다. 주의: 표시하지 마세요. 이름이 < script>인 사용자를 주의하세요!
  • [CURRENCY] - 사용자 지갑의 통화 코드(USD, EUR 등) - 사용자가 로그인을 거부한 경우 빈 값입니다.
  • [AUTH] - [AUTH]가 비어있는 문자열이고 그 외 모든 것이 이미 대체된 것처럼 계산된 모든 서버 상대적 URL(예: '/checkout.php'로 시작되는)의 HMAC-SHA1. HMAC 키는 Itemcart 비밀 키입니다.

'auth'값을 생성하기 위한 PHP 샘플:
define( 'SECRET_ITEMCART_KEY', '11111111111111111111111111111111' ); $appid = '234560'; $cartstring = '1001,1006*2'; $totalstring = 'USD499'; $sandbox = '0'; // or '1' $returnurl = 'http://mystore.com/checkout.php?fromsteam=1&cartid=BA13522FE31&result=[RESULT]&orderid=[ORDERID]&steamid=[STEAMID]&name=[USERNAME]&cc=[CURRENCY]&auth=[AUTH]'; $auth = hash_hmac( "sha1", "$appid\n$cartstring\n$totalstring\n$sandbox\n$returnurl", SECRET_ITEMCART_KEY );

반환 URL을 인증하기 위한 PHP 샘플:
hash_hmac( "sha1", str_replace( $_GET['AUTH'], "", $_SERVER["REQUEST_URI"] ), SECRET_ITEMCART_KEY ) === $_GET['AUTH']

샘플 HTML 형식의 인증 코드는 Itemcart 비밀 키를 모두 1로 가정하여 계산됩니다(32자 길이). 다른 필드 값이 있다면 'auth’ 값을 복제할 수 있습니다. 생성된 'auth' 값이 일치하지 않을 경우, 귀하의 코드에 체크아웃 실행을 막는 오류가 있을 수 있습니다.

BuyItem

BuyItem은 사용자가 간단하게 Steam 구매 UI를 통해 게임 내 아이템을 구매할 수 있게 해주는 단순한 구조의 웹 페이지입니다.

URI 구성

다음과 같이 URI를 구성하고 사용자를 안내합니다. https://store.steampowered.com/buyitem/{appid}/{itemdefid}/{quantity}

매개변수

  • appid: 아이템과 연관된 애플리케이션의 ID.
  • itemdefid: 구매에 제시할 ItemDef ID. 아이템에 반드시 가격(또는 price_category)이 있어야 하며 store_hidden일 수 없습니다. 아이템 스키마를 참조하세요.
  • quantity: 선택 사항. 다수의 아이템 인스턴스를 구매할 수 있으며 off 상태일 경우 기본값은 1로 가정합니다.

참고

단순화된 페이지는 단일 ItemDef(판매 가능한 번들을 포함한)의 인스턴스를 판매할 때만 사용할 수 있습니다. 모든 기능을 사용할 수 있는 장바구니는 ItemCart를 참조하세요.

가격 책정 및 번들을 포함한 판매 아이템 명시에 관한 자세한 내용은 보관함 스키마 문서를 참조하세요.