跳转到主要内容
本教程将引导你了解 PlayFab 与通用 Windows 平台 (UWP) 之间的三个关键集成点。
我们创建了一个包含示例代码的 GitHub 存储库,用于说明如何将通用 Windows 平台与 PlayFab 集成。
将通用 Windows 平台 (UWP) 与 PlayFab 集成非常简单。你实际上只需要关注三件事:
  1. 将 Windows Hello 帐户链接到 PlayFab 帐户。
  2. 通过 Windows Hello 让玩家登录。
  3. 验证从 Windows 应用商店进行的购买。
让我们按顺序讨论这三个主题。

将 Windows Hello 帐户链接到 PlayFab 帐户

可以通过两种方式将 Windows Hello 帐户链接到 PlayFab 帐户:
  1. 你可以使用 Windows Hello 凭据创建新的 PlayFab 帐户。
  2. 你可以将 Windows Hello 凭据链接到现有的 PlayFab 帐户。
使用哪种方式取决于 Windows Hello 是否为你的主要身份验证方式。

使用 Windows 凭据创建新帐户

在开始此过程之前,你需要向用户询问其在 Windows 中的用户名。 然后可以按照以下步骤操作:
  1. 调用 KeyCredentialManager.RequestCreateAsync,为此用户生成新的公钥。
  2. 调用 CryptographicBuffer.EncodeToBase64String,将上述 IBuffer 转换为字符串。
  3. 调用 PlayFabClientAPI.RegisterWithWindowsHello<!— PlayFabClientAPI.RegisterWithWindowsHello —>,并提供以下必需参数:
    • Windows 用户名。
    • 上述 Base 64 编码的公钥。
  4. 如果注册成功,玩家现在将处于登录状态。你将获得一个会话令牌,可用于通过所有其他 PlayFab API 对玩家进行身份验证。
  5. 此外,你现在可以使用 HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256) 创建哈希提供程序,并通过调用 hashProvider.HashData(publicKey) 对公钥进行哈希处理。
  6. 将经过哈希处理的公钥转换为 Base 64 编码的字符串 (CryptographicBuffer.EncodeToBase64String(publicKeyHash)),并将此字符串和用户名存储在应用程序设置中。(ApplicationData.Current.LocalSettings.Values[“publicKeyHint”])。此公钥提示用于重新登录。
  7. 为了简化登录,还应将用户名存储在用户的本地设置中。

将 Windows 凭据链接到现有 PlayFab 帐户

将 Windows 凭据链接到现有 PlayFab 帐户的过程非常相似。区别在于:
  1. 首先,你必须已登录 PlayFab 帐户。通常这是使用不安全的设备 ID 以匿名方式完成的。
  2. 然后,按照上一节中的步骤操作,但使用 LinkWindowsHello<!— LinkWindowsHello —> 而不是 RegisterWithWindowsHello。
  3. 现在,用户将来可以使用 Windows 凭据登录,并访问或恢复其 PlayFab 帐户。

通过 Windows Hello 让玩家登录

将 Windows Hello 凭据链接到 PlayFab 帐户后,即可使用这些凭据登录。你将需要公钥提示和 Windows 用户名。 按照以下步骤操作:
  1. 调用 PlayFabClientAPI.GetWindowsHelloChallengeAsync<!— PlayFabClientAPI.GetWindowsHelloChallengeAsync —> 以创建签名质询。
  2. 调用 CryptographicBuffer.DecodeFromBase64String 创建一个 IBuffer,供 KeyCredentialManager 让用户签名。
  3. 调用 var retrieveResult = await KeyCredentialManager.OpenAsync(userId) 以创建密钥签名服务。
  4. 获取此用户的凭据:var userCredential = retrieveResult.Credential。
  5. 调用 await userCredential.RequestSignAsync(challengeBuffer),让 Windows 请求用户为此用户签署服务器的质询。
  6. 最后,调用 PlayFabClientAPI.LoginWithWindowsHello<!— PlayFabClientAPI.LoginWithWindowsHello —> 以完成该过程并让玩家登录。
  7. 如果登录成功,玩家现在将处于登录状态。你将获得一个会话令牌,可用于通过所有其他 PlayFab API 对玩家进行身份验证。

通过 Windows 应用商店进行购买

通过 Windows 应用商店进行购买与通过 iOS 或 Android 进行购买的过程类似。分为两个阶段:
  1. 首先设置应用商店。
  2. 然后进行购买。

设置应用商店

Microsoft 已发布了多篇介绍此过程的文档。例如: 在 Windows 应用商店中设置应用内购买 你还必须确保在 PlayFab 目录中设置具有相同产品 ID 的匹配项。

进行购买

在应用商店中设置项目后,即可在应用中启用应用内购买。
  1. 在应用程序中进行购买,并确保请求收据。
  2. 你将获得一张收据。
  3. 调用 PlayFabClientAPI.ValidateWindowsStoreReceipt 以验证收据。这会自动将玩家刚刚购买的物品记入其在 PlayFab 中的库存。

其他问题

如果你有其他问题,请在我们的论坛中发帖。 我们也很乐意听取你关于将游戏与通用 Windows 平台集成的任何反馈!
最后修改于 2026年10月20日