Economy v2는 이제 정식 출시(GA)되었습니다. 지원 및 피드백은 PlayFab 포럼을 참조하세요.
필수 구성 요소
- PlayFab 개발자 계정.
- Game Manager에서 만든 타이틀.
- 게시된 카탈로그 아이템과 가상 화폐가 각각 하나 이상 있어야 합니다.
작동 방식
인벤토리 쓰기 요청에IdempotencyId를 포함하면 PlayFab은 해당 ID를 14일 동안 저장합니다. 동일한 IdempotencyId로 다른 요청이 도착하면 PlayFab은 작업을 다시 처리하지 않고 원래 요청의 결과를 반환합니다.
지원되는 API
IdempotencyId는 모든 인벤토리 쓰기 API에서 지원됩니다.
- AddInventoryItems
- SubtractInventoryItems
- PurchaseInventoryItems
- TransferInventoryItems
- DeleteInventoryItems
- UpdateInventoryItems
- ExecuteInventoryOperations
예제: 재시도가 있는 안전한 구매
이 시나리오에서 플레이어는 Laser Sword를 구매합니다. 클라이언트는 요청을 보내기 전에 고유한IdempotencyId(예: GUID)를 생성합니다.
IdempotencyId로 정확히 동일한 요청을 안전하게 재시도할 수 있습니다. PlayFab은 중복을 인식하고 원래 결과를 반환합니다. 플레이어는 한 번만 청구됩니다.
모범 사례
- 논리적 작업당 고유한 ID 생성 — GUID 또는 UUID를 사용하세요. 서로 다른 작업에 동일한 ID를 재사용하지 마세요.
- 첫 번째 시도 전에 클라이언트 측에서 ID 생성 — 이 방법은 모든 재시도가 동일한 ID를 사용하도록 보장합니다.
- 재시도 사이에 요청 본문을 변경하지 마세요 — 동일한
IdempotencyId를 다른 요청 본문과 함께 사용하면 충돌 오류가 발생합니다. - ID는 14일 후에 만료됩니다 — 이후에는 새 작업에 대해 동일한 ID를 다시 사용할 수 있습니다.
Redeem API는 자동으로 멱등적입니다
마켓플레이스 상환 API(RedeemAppleAppStoreInventoryItems, RedeemGooglePlayInventoryItems, RedeemMicrosoftStoreInventoryItems, RedeemSteamInventoryItems)에는 IdempotencyId가 필요하지 않습니다. 본질적으로 멱등적입니다. 각 마켓플레이스 영수증 또는 토큰은 한 번만 상환할 수 있습니다. 동일한 영수증으로 두 번째 호출하면 성공이 반환되지만 아무것도 부여되지 않습니다.
