> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integración del marketplace - Microsoft Store

> Configure complementos de Partner Center y vincule productos de Microsoft Store con lotes de PlayFab Economy v2 para el canje de compras desde la aplicación en XBOX y Windows.

# Integración del marketplace: Microsoft Store

En este tutorial se muestra cómo canjear compras desde la aplicación de Microsoft Store (incluido XBOX) a través de PlayFab Economy v2 mediante la API [RedeemMicrosoftStoreInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/redeem-microsoft-store-inventory-items).

Al final de este tutorial, habrá:

* Creado un complemento en Partner Center
* Configurado los ajustes necesarios de Partner Center y PlayFab
* Vinculado su producto de Microsoft Store con un lote del catálogo de PlayFab
* Llamado a la API de canje y comprobado los artículos en el inventario del jugador

## Requisitos previos

1. Una cuenta de [Partner Center](https://partner.microsoft.com/) con acceso a su aplicación.
2. Una aplicación ya creada en Partner Center.
3. Un título ya creado en [Game Manager](https://developer.playfab.com/).
4. El jugador que llama a la API de canje debe estar autenticado en PlayFab con una identidad de XBOX Live (por ejemplo, mediante `LoginWithXbox`). Los jugadores autenticados con otros tipos de identidad (como CustomID o correo electrónico) no tienen el contexto de XBOX necesario para este flujo.

## Tipos de producto compatibles

La API `RedeemMicrosoftStoreInventoryItems` admite los siguientes tipos de producto de Microsoft Store:

* **Consumible administrado por el desarrollador** — Productos que se pueden comprar, usar y volver a comprar (por ejemplo, paquetes de moneda del juego). El servicio del juego es responsable de realizar el seguimiento del cumplimiento.
* **Duradero** — Productos que se compran una vez y se poseen de forma permanente (por ejemplo, DLC, paquetes de expansión, pases de temporada o artículos cosméticos).

<Info>
  **Los consumibles administrados por la Tienda no son compatibles.** PlayFab Economy v2 no puede canjear consumibles administrados por la Tienda. Si su complemento está configurado como consumible administrado por la Tienda, la API de canje devuelve una respuesta HTTP 200 con resultados vacíos y sin ningún error, lo que dificulta el diagnóstico del problema.
</Info>

## Paso 1: Crear el complemento en Partner Center

1. Inicie sesión en [Partner Center](https://partner.microsoft.com/) y vaya a su aplicación.
2. En **Add-ons**, seleccione **Create a new add-on**.
3. Seleccione el tipo de producto adecuado:
   * **Consumible administrado por el desarrollador** para artículos que se pueden volver a comprar (moneda, paquetes de consumibles).
   * **Duradero** para compras únicas (DLC, pases de temporada, desbloqueos cosméticos).
4. Complete la configuración del complemento (precios, descripciones, etc.) y envíelo.

<Info>
  Al crear un consumible administrado por el desarrollador, Partner Center muestra una advertencia que dice: *"XBOX requires consumables to be managed, so do not use this option and create a 'managed consumable' add-on instead. If you have any questions, contact your Microsoft representative."*\* Esta advertencia refleja las directrices generales de la plataforma XBOX y **no se aplica al flujo de canje de PlayFab**. Los consumibles administrados por el desarrollador funcionan correctamente en XBOX cuando se usan con la API `RedeemMicrosoftStoreInventoryItems` de PlayFab. Puede continuar con este tipo de producto con total seguridad.
</Info>

5. Después de crear el complemento, anote el **Store ID**, la cadena alfanumérica (por ejemplo, `9NBLGGH42CFD`) que se muestra en Partner Center. Use este valor para PlayFab, **no** el identificador de producto definido por el desarrollador ni el nombre del complemento.

Para obtener más información sobre los tipos de producto, consulte [Elegir el tipo de producto adecuado](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/getting-started/xstore-choosing-the-right-product-type).

## Paso 2: Configurar el grupo de productos, el estudio de desarrollo y el identificador de socio comercial

En este paso se configura el flujo de tokens delegados del servicio de tokens de seguridad de XBOX (XSTS) que PlayFab usa para consultar la API Collections de Microsoft Store en nombre del jugador.

<Warning>
  La configuración del grupo de productos, el estudio de desarrollo y el identificador de socio comercial es el paso que se omite con más frecuencia. Sin ella, la llamada a la API de canje se realiza correctamente (HTTP 200), pero la API Collections devuelve cero artículos, lo que da lugar a matrices `Succeeded`, `Failed` y `TransactionIds` vacías sin ningún mensaje de error.
</Warning>

1. En [Partner Center](https://partner.microsoft.com/), vaya a **Developer Settings** > **XBOX Live** > **Web Services** y genere un certificado de socio comercial si aún no lo ha hecho.
2. Vaya a **Developer Settings** > **XBOX Live** > **Business Partner** y anote el **Business Partner ID** que coincide con el servicio web al que está vinculado su usuario de confianza.
3. Cree un **Dev Studio** (o use uno existente) y establezca su **Dev Studio ID** para que coincida con el **Business Partner ID** del paso 2. Si el Dev Studio ya tiene un identificador diferente, cree un nuevo Dev Studio en lugar de cambiar el valor existente. Cambiarlo puede provocar errores en los servicios existentes.
4. Cree un **grupo de productos** y asígnelo al Dev Studio del paso 3.
5. Agregue el producto de su juego **y** todos sus complementos a la lista **Included in this product group**. Los elementos deben moverse explícitamente del lado "available" al lado "included".
6. Seleccione **Save**.
7. Vaya a la página **XBOX Settings** de su juego y confirme que el **Business Partner** vinculado coincide con el del paso 2.
8. **Vuelva a publicar** el producto del juego y todos los complementos en Microsoft Store en su sandbox de destino o en el entorno RETAIL.

Para ver el tutorial completo de configuración, consulte [Configurar productos con autenticación delegada (tokens XSTS)](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/service-to-service/xstore-authenticating-your-service#additional-configuration-required-to-view-and-manage-products-with-delegated-authentication-xsts-tokens).

## Paso 3: Habilitar el complemento XBOX Network en Game Manager

El complemento XBOX Network vincula su producto de Partner Center con su título de PlayFab y habilita la validación de tokens de XBOX para el canje de Microsoft Store.

1. Abra [Game Manager](https://developer.playfab.com/) y seleccione su **título**.
2. Seleccione **Add-ons** en el menú de navegación izquierdo.
3. Busque y seleccione el complemento **XBOX Network** (etiquetado como **Distribute for XBOX**).
4. Seleccione el **Seller ID** correcto en el menú desplegable. Si no ve el Seller ID correcto, seleccione **Sign in with a different partner center account**.
5. Seleccione su **Partner Center Product ID** en el menú desplegable y confirme que el **XBOX Live Title ID** (decimal) coincide con lo que ve en Partner Center en **XBOX services** > **XBOX Settings**.
6. Seleccione **Install XBOX Network** para guardar la configuración.

Para obtener más detalles, consulte [Configuración del complemento XBOX Live](/services/playfab/identity/player-identity/platform-specific-authentication/xbox-live-add-on).

<Note>
  Game Manager también tiene una página independiente para el complemento **Microsoft Store** (también en **Add-ons**). Aunque no requiere configuración, contiene orientación útil, incluida la confirmación de los tipos de producto compatibles y detalles sobre la configuración del Dev Studio ID y el Business Partner ID.
</Note>

## Paso 4: Crear un lote de PlayFab con asignación de marketplace

Para vincular su producto de Microsoft Store con su catálogo de PlayFab, cree un **lote** con una **asignación de marketplace** (AlternateId).

1. En [Game Manager](https://developer.playfab.com/), vaya a **Economy** > **Catalog (V2)** > **Bundles**.
2. Seleccione **New bundle** (o edite uno existente).
3. En la sección **Marketplace Mapping**, agregue una nueva asignación:
   * Establezca el **Marketplace type** en `MicrosoftStore` (distingue mayúsculas de minúsculas; debe ser exactamente `MicrosoftStore`).
   * Establezca el **valor** en el **Store ID** exacto de Partner Center (por ejemplo, `9NBLGGH42CFD`). No use el identificador de producto definido por el desarrollador ni el nombre del complemento.
4. Agregue los artículos que quiere que reciba el jugador cuando se canjee este lote (por ejemplo, moneda del juego, artículos virtuales).
5. **Publique** el lote. Los lotes sin publicar (en borrador) no se comparan durante el canje.

Para obtener más información sobre los identificadores alternativos, consulte [Identificadores alternativos](/services/playfab/economy-monetization/economy-v2/catalog/content-types-tags-and-properties#alternate-ids).

## Paso 5: Adquirir y proporcionar el token de XBOX

Al llamar a la API [RedeemMicrosoftStoreInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/redeem-microsoft-store-inventory-items), debe proporcionar un token de XBOX válido en el parámetro `XboxToken`.

* Si usa la **API de C del GDK**, use:

  ```cpp theme={null}
  XUserGetTokenAndSignatureAsync  // with method "POST", URL "https://playfabapi.com/", and empty body ""
  ```

Los tres parámetros (método, URL y cuerpo) deben proporcionarse exactamente como se muestra. Un token obtenido incorrectamente hace que la consulta a la API Collections produzca un error de forma silenciosa y devuelva resultados vacíos sin ningún error.

## Paso 6: Probar la integración

Antes de dar por completada la integración, compruebe el flujo completo de un extremo a otro:

1. Asegúrese de que el complemento está publicado en el sandbox o entorno en el que realiza las pruebas.
2. Inicie sesión como jugador de prueba con una identidad de XBOX Live y realice una compra de prueba del complemento a través de Microsoft Store. El jugador debe tener una compra sin canjear en su cuenta antes de que la API de canje tenga algo que detectar.
3. Llame a `RedeemMicrosoftStoreInventoryItems` con el `XboxToken` del jugador.
4. Compruebe que la respuesta contiene entradas en la matriz `Succeeded` y que los artículos correspondientes aparecen en el inventario de PlayFab del jugador.

<Note>
  **Cumplimiento de consumibles administrados por el desarrollador:** después de canjear un consumible administrado por el desarrollador, PlayFab lo notifica automáticamente como **cumplido** (consumido) ante Microsoft Store en su nombre. El paso de cumplimiento es necesario para que el jugador pueda volver a comprar el consumible. Si el consumible no aparece como cumplido después de un canje correcto, reintente la llamada a `RedeemMicrosoftStoreInventoryItems`. Si el problema persiste, escálelo al equipo de PlayFab a través de su canal de soporte. Para obtener más detalles, consulte [Administración de consumibles y reembolsos](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/service-to-service/xstore-managing-consumables-and-refunds).
</Note>

## Solución de problemas

Si la llamada a `RedeemMicrosoftStoreInventoryItems` se realiza correctamente (HTTP 200) pero las matrices `Succeeded`, `Failed` y `TransactionIds` de la respuesta están vacías, la API Collections de Microsoft Store no encuentra artículos coincidentes para canjear. Este comportamiento suele deberse a un problema de configuración. Compruebe los elementos siguientes:

| Problema                                             | Resolución                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Tipo de producto incorrecto**                      | Asegúrese de que el complemento es un **consumible administrado por el desarrollador** o un producto **duradero**, no un consumible administrado por la Tienda. PlayFab no admite consumibles administrados por la Tienda.                                                                                                                                                                                                                                                                                    |
| **Store ID incorrecto en PlayFab**                   | Confirme que el valor de la asignación de marketplace coincide con el **Store ID** (cadena alfanumérica como `9NBLGGH42CFD`), no con el identificador de producto definido por el desarrollador ni con el nombre del complemento.                                                                                                                                                                                                                                                                             |
| **Lote sin publicar**                                | Publique el lote en su catálogo de PlayFab. Los lotes en borrador no se comparan durante el canje.                                                                                                                                                                                                                                                                                                                                                                                                            |
| **Falta la configuración del grupo de productos**    | Confirme que su juego y sus complementos están incluidos en un grupo de productos vinculado al Dev Studio y al Business Partner ID correctos. La configuración del grupo de productos es el paso que se omite con más frecuencia. Consulte el [paso 2](#step-2-configure-product-group-dev-studio-and-business-partner-id).                                                                                                                                                                                   |
| **Complemento XBOX Network sin configurar**          | Instale y configure el complemento XBOX Network en Game Manager. Consulte el [paso 3](#step-3-enable-the-xbox-network-add-on-in-game-manager).                                                                                                                                                                                                                                                                                                                                                                |
| **Sin compras pendientes de canjear**                | El jugador debe tener una compra sin canjear del producto antes de que la API pueda detectarla y canjearla. Realice primero una compra de prueba.                                                                                                                                                                                                                                                                                                                                                             |
| **Consumible no cumplido**                           | PlayFab cumple automáticamente los consumibles administrados por el desarrollador después del canje. Si un consumible se canjeó una vez pero no se vuelve a canjear, reintente la llamada a `RedeemMicrosoftStoreInventoryItems`. Si el problema persiste, escálelo al equipo de PlayFab a través de su canal de soporte. Consulte [Administración de consumibles y reembolsos](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/service-to-service/xstore-managing-consumables-and-refunds). |
| **Sandbox no coincidente**                           | Asegúrese de que el complemento está publicado en el mismo sandbox en el que realiza las pruebas. El token de XBOX lleva el contexto del sandbox, por lo que ambos deben coincidir.                                                                                                                                                                                                                                                                                                                           |
| **Token de XBOX no válido**                          | Compruebe que el token se obtiene con los parámetros correctos: método `POST`, URL `https://playfabapi.com/` y una cadena de cuerpo vacía `""`.                                                                                                                                                                                                                                                                                                                                                               |
| **Jugador no autenticado con una identidad de XBOX** | El jugador debe haber iniciado sesión en PlayFab con una identidad de XBOX Live (por ejemplo, mediante `LoginWithXbox`). Otros tipos de identidad no tienen el contexto de XBOX necesario para el canje.                                                                                                                                                                                                                                                                                                      |

Si la API devuelve un error HTTP (como 400), compruebe si la respuesta de error contiene los códigos siguientes:

| Código de error                   | Descripción                                                                                                                        |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `InvalidCatalogItemConfiguration` | El lote o la asignación de marketplace están mal configurados en el catálogo de PlayFab.                                           |
| `InvalidXboxLiveToken`            | El token de XBOX no es válido, expiró o se obtuvo con parámetros incorrectos.                                                      |
| `AccountNotLinked`                | La cuenta de PlayFab del jugador no está vinculada a una identidad de XBOX Live.                                                   |
| `XboxInaccessible`                | PlayFab no puede conectarse a los servicios de XBOX. El error puede ser transitorio.                                               |
| `XboxXASSExchangeFailure`         | Se produjo un error en el intercambio de tokens XSTS. Compruebe la configuración de su socio comercial y del usuario de confianza. |

<Tip>
  Si la llamada se realiza correctamente (HTTP 200) pero devuelve resultados vacíos y el resto de la configuración parece correcta, compruebe primero la configuración del grupo de productos. El paso del grupo de productos es el que se omite con más frecuencia.
</Tip>

## Nota sobre títulos para PC/Windows

Este tutorial cubre el flujo de XBOX, que usa tokens XSTS delegados (pasados a través del parámetro `XboxToken`). Para los **títulos para PC/Windows**, Microsoft recomienda usar en su lugar identificadores User Store ID con Microsoft Entra ID para la autenticación de servicio a servicio. Para obtener más información, consulte [Solicitud de un User Store ID para la autenticación de servicio a servicio](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/service-to-service/xstore-requesting-a-userstoreid) y [Autenticación del servicio — User Store IDs](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/service-to-service/xstore-authenticating-your-service#authenticating-through-microsoft-entra-id-and-user-store-ids).

## Consulte también

* [Referencia de la API RedeemMicrosoftStoreInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/redeem-microsoft-store-inventory-items)
* [Inicio rápido de prevención de fraude](/services/playfab/economy-monetization/economy-v2/fraud-prevention/quickstart)
* [Configuración del complemento XBOX Live](/services/playfab/identity/player-identity/platform-specific-authentication/xbox-live-add-on)
* [Autenticación del servicio (tokens XSTS)](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/service-to-service/xstore-authenticating-your-service)
* [Elegir el tipo de producto adecuado](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/getting-started/xstore-choosing-the-right-product-type)
* [Ecosistemas basados en consumibles](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/fundamentals/xstore-consumable-based-ecosystems)
* [Administración de consumibles y reembolsos](https://learn.microsoft.com/en-us/gaming/gdk/docs/store/commerce/service-to-service/xstore-managing-consumables-and-refunds)
* [Identificadores alternativos (asignación de marketplace)](/services/playfab/economy-monetization/economy-v2/catalog/content-types-tags-and-properties#alternate-ids)
* [Cómo integrar correctamente una aplicación de Apple en Game Manager](/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-integrations/apple)
* [Cómo integrar correctamente una aplicación de Google en Game Manager](/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-integrations/google)


## Related topics

- [Integración del marketplace - Información general](/es/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-integrations/overview.md)
- [Integración del marketplace - Apple](/es/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-integrations/apple.md)
- [Integración del marketplace - Google](/es/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-integrations/google.md)
- [Canje con el marketplace de Microsoft Store](/es/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-redemption/microsoft.md)
- [Integración del marketplace - Steam](/es/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-integrations/steam.md)
