Skip to main content
Economy v2 ya está disponible con carácter general. Para obtener soporte técnico y enviar comentarios, vaya al foro de PlayFab.
Los errores de red, los tiempos de espera agotados y las solicitudes duplicadas son inevitables en los juegos en producción. Economy v2 proporciona IdempotencyId para evitar transacciones duplicadas. Esta característica garantiza que una operación se procese solo una vez, aunque la misma solicitud se envíe varias veces. Para el control de simultaneidad optimista (garantizar que una escritura solo se realice correctamente si el inventario no ha cambiado desde la última lectura), consulte ETags y control de simultaneidad.

Requisitos previos

Funcionamiento

Cuando incluye un IdempotencyId 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:

Ejemplo: compra segura con reintento

En este escenario, un jugador compra una espada láser. El cliente genera un IdempotencyId único (por ejemplo, un GUID) antes de enviar la solicitud:
Si el cliente no recibe respuesta (por ejemplo, por un tiempo de espera de red agotado), puede reintentar de forma segura exactamente la misma solicitud con el mismo 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 IdempotencyId con 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.

Escenarios comunes

Consulte también

Última modificación el 28 de agosto de 2026