将通用 Windows 平台与 PlayFab 集成
本教程介绍 PlayFab 与通用 Windows 平台 (UWP) 集成的三个要点。
注意
我们创建了一个包含示例代码的 [GitHub repository](https://github.com/PlayFab/UWPExample)
,以说明如何将通用 Windows 平台与 PlayFab 集成。
将通用 Windows 平台 (UWP) 与 PlayFab 集成非常简单。 您只需要注意以下三点:
- 将 Windows Hello 帐户与 PlayFab 帐户关联。
- 让玩家通过 Windows Hello 登录。
- 验证从 Microsoft Store 进行的购买。
下面,我们按顺序讲述这三个主题。
将 Windows Hello 帐户与 PlayFab 帐户关联
可以通过以下两种方式将 Windows Hello 帐户与 PlayFab 帐户关联:
- 可以使用 Windows Hello 凭据创建新的 PlayFab 帐户。
- 可以将 Windows Hello 凭据与现有 PlayFab 帐户关联。
使用哪种身份验证取决于是否Windows Hello主要身份验证。
使用 Windows 凭据创建新帐户
在开始此过程之前,您需要询问用户其在 Windows 中的用户名。
然后,可以按照以下步骤操作:
- 调用 KeyCredentialManager.RequestCreateAsync,为此用户生成新的公钥。
- 调用 CryptographicBuffer.EncodeToBase64String,将来自上一步的 IBuffer 转换为字符串。
- 使用以下必需参数调用
PlayFabClientAPI.RegisterWithWindowsHello
:- Windows 用户名。
- 上一步生成的 Base 64 编码的公钥。
- 假设注册成功,玩家现将登录。 您将获得一个会话令牌,您可以将此令牌与所有其他 PlayFab API 配合使用来对玩家进行身份验证。
- 此外,您现在也可以使用 HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256) 创建哈希提供程序,并通过调用 hashProvider.HashData(publicKey) 对公钥进行哈希处理。
- 将经过哈希处理的公钥转换为 Base 64 编码的字符串 (CryptographicBuffer.EncodeToBase64String(publicKeyHash)),然后将此字符串和用户名存储在应用程序设置中。 (ApplicationData.Current.LocalSettings.Values["publicKeyHint"])。 此公钥提示用于重新登录。
- 用户名也应存储在用户的本地设置中,以实现更便捷的登录。
将 Windows 凭据与现有 PlayFab 帐户关联
将 Windows 凭据与现有 PlayFab 帐户关联的过程非常相似。 不同之处在于:
- 首先,您必须已登录 PlayFab 帐户。 通常,这是使用不安全的设备 ID 匿名完成的。
- 然后,按照上一节中的步骤操作,但使用
LinkWindowsHello
代替RegisterWithWindowsHello
。 - 现在,用户以后可以使用 Windows 凭据登录,并访问或恢复其 PlayFab 帐户。
让玩家通过 Windows Hello 登录
将 Windows Hello 凭据与 PlayFab 帐户关联后,即可使用这些凭据登录。 您将需要公钥提示和 Windows 用户名。
请遵循以下步骤:
- 调用
PlayFabClientAPI.GetWindowsHelloChallengeAsync
创建签名质询。 - 调用 CryptographicBuffer.DecodeFromBase64String 为
KeyCredentialManager
创建具有用户签名的 IBuffer。 - 调用
var retrieveResult = await
KeyCredentialManager.OpenAsync(userId) 创建密钥签名服务。 - 获取此用户的凭据:
var userCredential = retrieveResult.Credential
。 - 调用 await userCredential.RequestSignAsync(challengeBuffer) 让 Windows 请求用户为服务器对此用户的质询进行签名。
- 最后,调用
PlayFabClientAPI.LoginWithWindowsHello
完成此过程并让玩家登录。 - 假设登录成功,玩家现已登录。 您将获得一个会话令牌,您可以将此令牌与所有其他 PlayFab API 配合使用来对玩家进行身份验证。
通过 Microsoft Store 进行购买
通过 Microsoft Store 进行购买与通过 iOS 或 Android 进行购买的过程类似。 包括以下两个阶段:
- 首先设置 Microsoft Store。
- 然后进行购买。
设置 Microsoft Store
Microsoft 已发布多个讲述此过程的文档。 例如:
您还必须确保在 PlayFab 目录中设置具有相同产品 ID 的匹配物品。
进行购买
在 Microsoft Store 中设置物品后,即可在应用程序中启用应用内购买。
- 在应用程序中进行购买,并务必请求收据。
- 文档使用 UWP 进行应用内购买讲述了这一过程。
- 您将收到一张收据。
- 您可以在此找到有关收据的详细信息。
- 调用 PlayFabClientAPI.ValidateWindowsStoreReceipt 来验证收据。 这会自动将玩家刚刚购买的物品放入其在 PlayFab 中的物品栏内。
其他问题
如果您还有其他问题,请在我们的论坛上提出。
我们也很乐意收到有关将您的游戏与通用 Windows 平台集成的任何反馈!