> ## 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.

# XStoreShowPurchaseUIAsync

> XStoreShowPurchaseUIAsync

# XStoreShowPurchaseUIAsync

Inicia la superposición de interfaz de usuario de compra para el producto especificado.

## Sintaxis

```cpp theme={null}
HRESULT XStoreShowPurchaseUIAsync(  
         const XStoreContextHandle storeContextHandle,  
         const char* storeId,  
         const char* name,  
         const char* extendedJsonData,  
         XAsyncBlock* async  
)  
```

### Parámetros

*storeContextHandle*   \_In\_\
Tipo: XStoreContextHandle

El identificador de contexto de la tienda para el usuario, devuelto por [XStoreCreateContext](/reference/system/xstore/functions/xstorecreatecontext).

*storeId*   \_In\_z\_\
Tipo: char\*

Identificador del producto que se comprará.

*name*   \_In\_opt\_z\_\
Tipo: char\*

Nombre del producto que se comprará.

*extendedJsonData*   \_In\_opt\_z\_\
Tipo: char\*

Un blob JSON que se pasa al flujo de compra. Permite insertar identificadores de campaña personalizados, para que pueda hacer un seguimiento de cómo se inició la compra.

*async*   \_Inout\_\
Tipo: [XAsyncBlock\*](/reference/system/xasync/structs/xasyncblock)

Un [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) que define el trabajo asincrónico que se está realizando. El [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) se puede usar para sondear el estado de la llamada y recuperar los resultados de la llamada. Consulte [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) para obtener más información.

### Valor devuelto

Tipo: HRESULT

Código HRESULT de éxito o de error.

## Comentarios

> !\[NOTE] Esta operación no desencadena la descarga ni la instalación de los elementos después de una compra prevista. Si quiere descargar e instalar este contenido, se recomienda llamar a [XStoreDownloadAndInstallPackagesAsync](/reference/system/xstore/functions/xstoredownloadandinstallpackagesasync) después de una compra correcta. No se mostrará ningún aviso adicional al usuario.

> !\[NOTE] En PC, el cuadro de diálogo de confirmación de compra que se muestra después de una compra correcta tendrá un botón de cierre \[X] en la parte superior. Si se selecciona este en lugar de Aceptar, se devolverá E\_ABORT a `XStoreShowPurchaseUIResult`, lo que puede no ser lo deseado. Este es el comportamiento estándar de Windows cuando se cierra cualquier cuadro de diálogo de esta manera.

Para recuperar el resultado de esta función, llame a [XStoreShowPurchaseUIResult](/reference/system/xstore/functions/xstoreshowpurchaseuiresult) después de llamar a esta función. Solo se debe llamar a esta función cuando el usuario haya elegido comprar algo, y hará que el sistema presente un cuadro de diálogo de compra modal que controla la información de pago y la confirmación del usuario fuera del proceso.

El siguiente fragmento de código muestra un ejemplo de solicitud de una compra para un producto concreto de la tienda.

```cpp theme={null}
void CALLBACK ShowPurchaseUICallback(XAsyncBlock* asyncBlock)
{
    HRESULT hr = XStoreShowPurchaseUIResult(asyncBlock);

    if (FAILED(hr))
    {
        printf("Failed the purchase: 0x%x\r\n", hr);
        return;
    }
}

void ShowPurchaseUI(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle, const char* storeId)
{
    auto asyncBlock = std::make_unique<XAsyncBlock>();
    ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
    asyncBlock->queue = taskQueueHandle;
    asyncBlock->callback = ShowPurchaseUICallback;

    HRESULT hr = XStoreShowPurchaseUIAsync(
        storeContextHandle,
        storeId,
        nullptr,    // Can be used to override the title bar text
        nullptr,    // Can be used to provide extra details to purchase
        asyncBlock.get());

    if (FAILED(hr))
    {
        printf("Failed to purchase: 0x%x\r\n", hr);
        return;
    }
}
```

## Requisitos

**Encabezado:** XStore.h (incluido en XGameRuntime.h)

**Biblioteca:** xgameruntime.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Documentación conceptual

* [Implementación de compras dentro del juego en su juego](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/pc-dev/tutorials/pc-e2e-guide/e2e-services/e2e-in-game-purchases)
* [Operaciones básicas de la tienda](/publishing/xstore-commerce/xstore-basic-operations)
* [Administración y licencia de contenido descargable (DLC)](/publishing/xstore-commerce/xstore-dlc)
* [Solución de problemas de desarrollo con XStore](/publishing/xstore-commerce/xstore-troubleshooting)

## Consulte también

[XStore](/reference/system/xstore/xstore_members)\
[XStoreShowPurchaseUIResult](/reference/system/xstore/functions/xstoreshowpurchaseuiresult)


## Related topics

- [XStoreShowPurchaseUIResult](/es/reference/system/xstore/functions/xstoreshowpurchaseuiresult.md)
- [Solución de problemas de desarrollo con XStore](/es/publishing/xstore-commerce/xstore-troubleshooting.md)
- [Operaciones básicas de la tienda](/es/publishing/xstore-commerce/xstore-basic-operations.md)
- [Servicios opcionales](/es/build/gdk-and-engines/optional-services.md)
- [XStore](/es/reference/system/xstore/xstore_members.md)
