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

# Intégration de la plateforme Windows universelle avec PlayFab

> Intégrez une application de plateforme Windows universelle à PlayFab en liant un compte Windows Hello, en connectant les joueurs et en validant les achats du Windows Store.

Ce tutoriel vous présente trois points clés d'intégration entre PlayFab et la plateforme Windows universelle (UWP).

<Note>
  Nous avons créé un [dépôt GitHub](https://github.com/PlayFab/UWPExample) avec un exemple de code illustrant comment intégrer la plateforme Windows universelle à PlayFab.
</Note>

L'intégration de la plateforme Windows universelle (UWP) avec PlayFab est très simple. Vous n'avez réellement à vous soucier que de trois éléments :

1. Lier un compte Windows Hello à votre compte PlayFab.
2. Connecter le joueur au moyen de Windows Hello.
3. Valider un achat effectué dans le Windows Store.

Abordons ces trois sujets dans l'ordre.

## Liaison d'un compte Windows Hello à votre compte PlayFab

Il existe deux façons de lier un compte Windows Hello à votre compte PlayFab :

1. Vous pouvez créer un nouveau compte PlayFab à l'aide de vos informations d'identification Windows Hello.
2. Vous pouvez lier des informations d'identification Windows Hello à votre compte PlayFab existant.

Le choix dépend de si Windows Hello est ou non votre méthode d'authentification principale.

### Création d'un nouveau compte avec des informations d'identification Windows

Avant de commencer ce processus, vous devez demander à l'utilisateur son nom d'utilisateur Windows.

Vous pouvez ensuite suivre ces étapes :

1. Appelez [KeyCredentialManager.RequestCreateAsync](https://learn.microsoft.com/en-us/uwp/api/windows.security.credentials.keycredentialmanager) pour générer une nouvelle clé publique pour cet utilisateur.
2. Appelez [CryptographicBuffer.EncodeToBase64String](https://learn.microsoft.com/en-us/uwp/api/Windows.Security.Cryptography.CryptographicBuffer#Windows_Security_Cryptography_CryptographicBuffer_EncodeToBase64String_Windows_Storage_Streams_IBuffer_) pour convertir l'IBuffer obtenu ci-dessus en chaîne.
3. Appelez `PlayFabClientAPI.RegisterWithWindowsHello`\<!-- [PlayFabClientAPI.RegisterWithWindowsHello](xref:titleid.playfabapi.com.client.authentication.registerwithwindowshello) --> avec les paramètres requis suivants :
   * Le nom d'utilisateur Windows.
   * La clé publique encodée en Base 64 obtenue ci-dessus.
4. Si l'inscription a réussi, le joueur est maintenant connecté. Vous recevez un jeton de session que vous pouvez utiliser pour authentifier le joueur auprès de toutes les autres API PlayFab.
5. Vous pouvez également utiliser [HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256)](https://learn.microsoft.com/en-us/uwp/api/windows.security.cryptography.core.hashalgorithmprovider#Windows_Security_Cryptography_Core_HashAlgorithmProvider_OpenAlgorithm_System_String_) pour créer un fournisseur de hachage, puis hacher la clé publique en appelant [hashProvider.HashData(publicKey)](https://learn.microsoft.com/en-us/uwp/api/windows.security.cryptography.core.hashalgorithmprovider#Windows_Security_Cryptography_Core_HashAlgorithmProvider_HashData_Windows_Storage_Streams_IBuffer_).
6. Convertissez la clé publique hachée en chaîne encodée en Base 64 [(CryptographicBuffer.EncodeToBase64String(publicKeyHash))](https://learn.microsoft.com/en-us/uwp/api/Windows.Security.Cryptography.CryptographicBuffer#Windows_Security_Cryptography_CryptographicBuffer_EncodeToBase64String_Windows_Storage_Streams_IBuffer_) et stockez cette chaîne ainsi que le nom d'utilisateur dans les paramètres de l'application (ApplicationData.Current.LocalSettings.Values\["publicKeyHint"]). Cet indice de clé publique est utilisé pour se reconnecter.
7. Le nom d'utilisateur doit également être stocké dans les paramètres locaux de l'utilisateur afin de simplifier la connexion.

### Liaison d'informations d'identification Windows à un compte PlayFab existant

Le processus de liaison d'informations d'identification Windows à un compte PlayFab existant est très similaire. Les différences sont les suivantes :

1. Vous devez d'abord être déjà connecté à un compte PlayFab. Cela se fait généralement de façon anonyme, à l'aide d'un ID d'appareil non sécurisé.
2. Suivez ensuite les étapes de la section précédente, mais utilisez `LinkWindowsHello`\<!-- [LinkWindowsHello](xref:titleid.playfabapi.com.client.accountmanagement.linkwindowshello) --> au lieu de `RegisterWithWindowsHello`.
3. L'utilisateur peut désormais se connecter avec ses informations d'identification Windows à l'avenir et accéder à son compte PlayFab ou le récupérer.

## Connexion du joueur au moyen de Windows Hello

Une fois que vous avez lié des informations d'identification Windows Hello à un compte PlayFab, vous pouvez vous connecter avec ces informations d'identification. Vous aurez besoin de l'indice de clé publique et du nom d'utilisateur Windows.

Suivez ces étapes :

1. Appelez `PlayFabClientAPI.GetWindowsHelloChallengeAsync`\<!-- [PlayFabClientAPI.GetWindowsHelloChallengeAsync](xref:titleid.playfabapi.com.client.authentication.getwindowshellochallenge) --> pour créer un défi de signature.
2. Appelez [CryptographicBuffer.DecodeFromBase64String](https://learn.microsoft.com/en-us/uwp/api/Windows.Security.Cryptography.CryptographicBuffer#Windows_Security_Cryptography_CryptographicBuffer_DecodeFromBase64String_System_String_) pour créer un IBuffer que le `KeyCredentialManager` fera signer par l'utilisateur.
3. Appelez `var retrieveResult = await` [KeyCredentialManager.OpenAsync(userId)](https://learn.microsoft.com/en-us/uwp/api/windows.security.credentials.keycredentialmanager#Windows_Security_Credentials_KeyCredentialManager_OpenAsync_System_String_) pour créer un service de signature de clé.
4. Obtenez les informations d'identification de cet utilisateur : `var userCredential = retrieveResult.Credential`.
5. Appelez await [userCredential.RequestSignAsync(challengeBuffer)](https://learn.microsoft.com/en-us/uwp/api/Windows.Security.Credentials.KeyCredential#Windows_Security_Credentials_KeyCredential_RequestSignAsync_Windows_Storage_Streams_IBuffer_) pour que Windows demande à l'utilisateur de signer le défi du serveur pour cet utilisateur.
6. Enfin, appelez `PlayFabClientAPI.LoginWithWindowsHello`\<!-- [PlayFabClientAPI.LoginWithWindowsHello](xref:titleid.playfabapi.com.client.authentication.loginwithwindowshello) --> pour terminer le processus et connecter le joueur.
7. Si la connexion a réussi, le joueur est maintenant connecté. Vous recevez un jeton de session que vous pouvez utiliser pour authentifier le joueur auprès de toutes les autres API PlayFab.

## Effectuer un achat au moyen du Windows Store

Effectuer un achat au moyen du Windows Store est similaire au processus d'achat sur iOS ou Android. Il comporte deux étapes :

1. Configurer d'abord le magasin.
2. Effectuer ensuite l'achat.

### Configuration du magasin

Microsoft a publié plusieurs documents décrivant ce processus. Par exemple :

[Configuration de l'achat in-app dans le Windows Store](https://learn.microsoft.com/en-us/windows/uwp/publish/add-on-submissions)

Vous devez également veiller à configurer un article correspondant dans le catalogue PlayFab, avec le même ID de produit.

### Effectuer l'achat

Une fois les articles configurés dans le magasin, vous pouvez activer l'achat in-app dans votre application.

1. Effectuez l'achat dans l'application et veillez à demander un reçu.
   * Ce document explique le processus : [effectuer des achats in-app avec UWP](https://learn.microsoft.com/en-us/uwp/api/windows.applicationmodel.store.currentapp#Windows_ApplicationModel_Store_CurrentApp_RequestProductPurchaseAsync_System_String_System_Boolean_).
2. Vous recevez un reçu.
   * Vous trouverez [plus d'informations sur les reçus ici](https://learn.microsoft.com/en-us/windows/uwp/monetize/use-receipts-to-verify-product-purchases).
3. Appelez [PlayFabClientAPI.ValidateWindowsStoreReceipt](xref:titleid.playfabapi.com.client.platformspecificmethods.validatewindowsstorereceipt) pour valider le reçu. L'inventaire PlayFab du joueur est alors automatiquement crédité de l'article qu'il vient d'acheter.

## Autres questions

Si vous avez d'autres questions, publiez-les sur nos [forums](https://community.playfab.com/index.html).

Nous serions également ravis de recevoir vos commentaires sur l'intégration de votre jeu avec la plateforme Windows universelle!


## Related topics

- [Authentification propre à la plateforme](/fr-CA/services/playfab/identity/player-identity/platform-specific-authentication/index.md)
- [Configurer l'authentification PlayFab avec des applications UWP](/fr-CA/services/playfab/identity/player-identity/platform-specific-authentication/uwp.md)
- [FAQ sur Economy version 2 (V2)](/fr-CA/services/playfab/economy-monetization/economy-v2/faq.md)
- [Débogage local des serveurs de jeu et intégration à PlayFab](/fr-CA/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab.md)
- [Utiliser le GDK avec Unity](/fr-CA/build/gdk-and-engines/unity/unity.md)
