Economy v2 ya está disponible con carácter general. Para obtener soporte técnico y enviar comentarios, vaya al foro de PlayFab.
Requisitos previos
- Una cuenta de desarrollador de PlayFab.
- Un título creado en Game Manager.
- Al menos un artículo de catálogo publicado y una moneda virtual.
Funcionamiento
Cuando incluye unIdempotencyId en una solicitud de escritura de inventario, PlayFab almacena ese identificador durante 14 días. Si llega otra solicitud con el mismo IdempotencyId, PlayFab devuelve el resultado de la solicitud original sin procesar la operación de nuevo.
API compatibles
IdempotencyId se admite en todas las API de escritura de inventario:
- AddInventoryItems
- SubtractInventoryItems
- PurchaseInventoryItems
- TransferInventoryItems
- DeleteInventoryItems
- UpdateInventoryItems
- ExecuteInventoryOperations
Ejemplo: compra segura con reintento
En este escenario, un jugador compra una espada láser. El cliente genera unIdempotencyId único (por ejemplo, un GUID) antes de enviar la solicitud:
IdempotencyId. PlayFab reconoce el duplicado y devuelve el resultado original. Al jugador se le cobra solo una vez.
Procedimientos recomendados
- Genere un identificador único por operación lógica: use un GUID o UUID. No reutilice el mismo identificador para operaciones diferentes.
- Genere el identificador en el lado cliente antes del primer intento: esta práctica garantiza que todos los reintentos usen el mismo identificador.
- No cambie el cuerpo de la solicitud entre reintentos: usar el mismo
IdempotencyIdcon un cuerpo de solicitud diferente provoca un error de conflicto. - Los identificadores expiran a los 14 días: después de ese plazo, el mismo identificador puede volver a usarse para una nueva operación.
Las API de canje son automáticamente idempotentes
Las API de canje de los marketplaces (RedeemAppleAppStoreInventoryItems, RedeemGooglePlayInventoryItems, RedeemMicrosoftStoreInventoryItems, RedeemSteamInventoryItems) no requieren un IdempotencyId. Son idempotentes de forma inherente. Cada recibo o token del marketplace solo puede canjearse una vez. Una segunda llamada con el mismo recibo devuelve un resultado correcto, pero no concede nada.
