O Economy v2 agora está em disponibilidade geral. Para obter suporte e enviar comentários, acesse o Fórum do PlayFab.
Pré-requisitos
- Uma conta de desenvolvedor do PlayFab.
- Um título criado no Game Manager.
- Pelo menos um item de catálogo publicado e uma moeda virtual.
Como funciona
Quando você inclui umIdempotencyId em uma solicitação de gravação de inventário, o PlayFab armazena esse ID por 14 dias. Se outra solicitação chegar com o mesmo IdempotencyId, o PlayFab retornará o resultado da solicitação original sem processar a operação novamente.
APIs compatíveis
OIdempotencyId é compatível com todas as APIs de gravação de inventário:
- AddInventoryItems
- SubtractInventoryItems
- PurchaseInventoryItems
- TransferInventoryItems
- DeleteInventoryItems
- UpdateInventoryItems
- ExecuteInventoryOperations
Exemplo: compra segura com repetição
Neste cenário, um jogador compra uma Espada Laser. O cliente gera umIdempotencyId exclusivo (por exemplo, um GUID) antes de enviar a solicitação:
IdempotencyId. O PlayFab reconhece a duplicata e retorna o resultado original. O jogador é cobrado apenas uma vez.
Práticas recomendadas
- Gere um ID exclusivo por operação lógica: use um GUID ou UUID. Não reutilize o mesmo ID para operações diferentes.
- Gere o ID no lado do cliente antes da primeira tentativa: essa prática garante que todas as repetições usem o mesmo ID.
- Não altere o corpo da solicitação entre as repetições: usar o mesmo
IdempotencyIdcom um corpo de solicitação diferente causa um erro de conflito. - Os IDs expiram após 14 dias: depois disso, o mesmo ID pode ser usado novamente para uma nova operação.
As APIs de resgate são automaticamente idempotentes
As APIs de resgate de marketplace (RedeemAppleAppStoreInventoryItems, RedeemGooglePlayInventoryItems, RedeemMicrosoftStoreInventoryItems, RedeemSteamInventoryItems) não exigem um IdempotencyId. Elas são inerentemente idempotentes. Cada recibo ou token de marketplace só pode ser resgatado uma vez. Uma segunda chamada com o mesmo recibo retorna sucesso, mas não concede nada.
