> ## 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 a sobreposição da interface do usuário de compra para o produto especificado.

## Sintaxe

```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

O identificador de contexto da loja para o usuário retornado por [XStoreCreateContext](/pt-BR/reference/system/xstore/functions/xstorecreatecontext).

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

ID do produto a ser comprado.

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

Nome do produto a ser comprado.

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

Um blob JSON que é entregue ao fluxo de compra. Permite a inserção de IDs de campanha personalizadas, para que você possa acompanhar como a compra foi iniciada.

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

Um [XAsyncBlock](/pt-BR/reference/system/xasync/structs/xasyncblock) que define o trabalho assíncrono que está sendo feito. O [XAsyncBlock](/pt-BR/reference/system/xasync/structs/xasyncblock) pode ser usado para sondar o status da chamada e recuperar os resultados da chamada. Consulte [XAsyncBlock](/pt-BR/reference/system/xasync/structs/xasyncblock) para obter mais informações.

### Valor retornado

Tipo: HRESULT

Código de êxito ou de erro HRESULT.

## Comentários

> !\[NOTE] Esta operação não dispara o download nem a instalação dos itens após uma compra esperada. Se você quiser baixar e instalar esse conteúdo, é recomendável chamar [XStoreDownloadAndInstallPackagesAsync](/pt-BR/reference/system/xstore/functions/xstoredownloadandinstallpackagesasync) após uma compra bem-sucedida. Nenhum aviso adicional será exibido ao usuário.

> !\[NOTE] No PC, a caixa de diálogo de confirmação de compra exibida após uma compra bem-sucedida terá um botão de fechar \[X] na parte superior. Selecioná-lo em vez de Ok fará com que E\_ABORT seja retornado para `XStoreShowPurchaseUIResult`, o que pode não ser desejado. Esse é o comportamento padrão do Windows quando qualquer caixa de diálogo é fechada dessa forma.

Para recuperar o resultado desta função, chame [XStoreShowPurchaseUIResult](/pt-BR/reference/system/xstore/functions/xstoreshowpurchaseuiresult) após chamar esta função. Esta função só deve ser chamada quando o usuário tiver optado por comprar algo e fará com que o sistema apresente uma caixa de diálogo de compra modal que lida com as informações de pagamento e a confirmação do usuário fora do processo.

O trecho de código a seguir mostra um exemplo de solicitação de compra de um produto específico da loja.

```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

**Cabeçalho:** XStore.h (incluído em XGameRuntime.h)

**Biblioteca:** xgameruntime.lib

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Implementar compras no jogo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/pc-dev/tutorials/pc-e2e-guide/e2e-services/e2e-in-game-purchases)
* [Operações básicas da loja](/pt-BR/publishing/xstore-commerce/xstore-basic-operations)
* [Gerenciar e licenciar conteúdo para download (DLC)](/pt-BR/publishing/xstore-commerce/xstore-dlc)
* [Solução de problemas de desenvolvimento do XStore](/pt-BR/publishing/xstore-commerce/xstore-troubleshooting)

## Confira também

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


## Related topics

- [XStoreShowPurchaseUIAsync](/ja-jp/reference/system/xstore/functions/xstoreshowpurchaseuiasync.md)
- [XStoreShowPurchaseUIResult](/reference/system/xstore/functions/xstoreshowpurchaseuiresult.md)
