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

# XStoreGetUserPurchaseIdAsync

> XStoreGetUserPurchaseIdAsync

# XStoreGetUserPurchaseIdAsync

Obtient un ID d'achat client. Cet ID récupère une clé d'ID Microsoft Store pouvant être utilisée pour accorder des droits d'utilisation sur des produits gratuits au nom de l'utilisateur actuel. Cette API est utilisée dans le flux décrit dans [Gérer les produits à partir de vos services](https://learn.microsoft.com/gaming/gdk/docs/store/commerce/service-to-service/service-to-service-nav)

## Syntaxe

```cpp theme={null}
HRESULT XStoreGetUserPurchaseIdAsync(  
         const XStoreContextHandle storeContextHandle,  
         const char* serviceTicket,  
         const char* publisherUserId,  
         XAsyncBlock* async  
)  
```

### Paramètres

*storeContextHandle*   \_In\_\
Type : XStoreContextHandle

Handle de contexte de Store de l'utilisateur, renvoyé par [XStoreCreateContext](/fr/reference/system/xstore/functions/xstorecreatecontext).

*serviceTicket*   \_In\_z\_\
Type : char\*

Ticket de service associé à l'achat.

*publisherUserId*   \_In\_z\_\
Type : char\*

Chaîne contenant l'ID utilisateur de l'éditeur.

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

[XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock) définissant le travail asynchrone en cours. Le [XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock) peut être utilisé pour interroger l'état de l'appel et récupérer ses résultats. Pour plus d'informations, consultez [XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock).

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

## Remarques

Pour récupérer l'ID d'achat du client ainsi que le résultat d'exécution de cette fonction, appelez [XStoreGetUserPurchaseIdResult](/fr/reference/system/xstore/functions/xstoregetuserpurchaseidresult) après avoir appelé cette fonction. Pour récupérer la taille de l'ID d'achat du client, appelez [XStoreGetUSerPurchaseIdResultSize](/fr/reference/system/xstore/functions/xstoregetuserpurchaseidresultsize) après avoir appelé cette fonction. Connaître la taille du résultat vous aide à le lire plus efficacement.

L'extrait de code suivant montre un exemple de récupération d'un ID d'achat client.

```cpp theme={null}
void CALLBACK GetUserPurchaseIdCallback(XAsyncBlock* asyncBlock)
{
    size_t size;
    HRESULT hr = XStoreGetUserPurchaseIdResultSize(
        asyncBlock,
        &size);

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

    char* result = new char[size];
    hr = XStoreGetUserPurchaseIdResult(
        asyncBlock,
        size,
        result);

    if (FAILED(hr))
    {
        printf("Failed retrieve the user purchase ID result: 0x%x\r\n", hr);
        delete[] result;
        return;
    }

    printf("result: %s\r\n", result);

    delete[] result;
}

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

    asyncBlock->callback = GetUserPurchaseIdCallback;

    HRESULT hr = XStoreGetUserPurchaseIdAsync(
        storeContextHandle,
        serviceTicket,
        publisherUserId,
        asyncBlock.get());

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

## Configuration requise

**En-tête :** XStore.h (inclus dans XGameRuntime.h)

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Demande d'un ID Store utilisateur pour l'authentification de service à service](/fr/publishing/xstore-commerce/xstore-requesting-userstoreid)

## Voir aussi

[XStore](/fr/reference/system/xstore/xstore_members)\
[XStoreGetUserPurchaseIdResult](/fr/reference/system/xstore/functions/xstoregetuserpurchaseidresult)\
[XStoreGetUSerPurchaseIdResultSize](/fr/reference/system/xstore/functions/xstoregetuserpurchaseidresultsize)\
[Gérer les produits à partir de vos services](https://learn.microsoft.com/gaming/gdk/docs/store/commerce/service-to-service/service-to-service-nav)


## Related topics

- [XStoreGetUserPurchaseIdAsync](/es/reference/system/xstore/functions/xstoregetuserpurchaseidasync.md)
- [XStoreGetUserPurchaseIdResult](/reference/system/xstore/functions/xstoregetuserpurchaseidresult.md)
