我们创建了一个包含示例代码的 GitHub 存储库,用于说明如何将通用 Windows 平台与 PlayFab 集成。
- 将 Windows Hello 帐户链接到 PlayFab 帐户。
- 通过 Windows Hello 让玩家登录。
- 验证从 Windows 应用商店进行的购买。
将 Windows Hello 帐户链接到 PlayFab 帐户
可以通过两种方式将 Windows Hello 帐户链接到 PlayFab 帐户:- 你可以使用 Windows Hello 凭据创建新的 PlayFab 帐户。
- 你可以将 Windows Hello 凭据链接到现有的 PlayFab 帐户。
使用 Windows 凭据创建新帐户
在开始此过程之前,你需要向用户询问其在 Windows 中的用户名。 然后可以按照以下步骤操作:- 调用 KeyCredentialManager.RequestCreateAsync,为此用户生成新的公钥。
- 调用 CryptographicBuffer.EncodeToBase64String,将上述 IBuffer 转换为字符串。
- 调用
PlayFabClientAPI.RegisterWithWindowsHello<!— 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<!— LinkWindowsHello —> 而不是RegisterWithWindowsHello。 - 现在,用户将来可以使用 Windows 凭据登录,并访问或恢复其 PlayFab 帐户。
通过 Windows Hello 让玩家登录
将 Windows Hello 凭据链接到 PlayFab 帐户后,即可使用这些凭据登录。你将需要公钥提示和 Windows 用户名。 按照以下步骤操作:- 调用
PlayFabClientAPI.GetWindowsHelloChallengeAsync<!— PlayFabClientAPI.GetWindowsHelloChallengeAsync —> 以创建签名质询。 - 调用 CryptographicBuffer.DecodeFromBase64String 创建一个 IBuffer,供
KeyCredentialManager让用户签名。 - 调用
var retrieveResult = awaitKeyCredentialManager.OpenAsync(userId) 以创建密钥签名服务。 - 获取此用户的凭据:
var userCredential = retrieveResult.Credential。 - 调用 await userCredential.RequestSignAsync(challengeBuffer),让 Windows 请求用户为此用户签署服务器的质询。
- 最后,调用
PlayFabClientAPI.LoginWithWindowsHello<!— PlayFabClientAPI.LoginWithWindowsHello —> 以完成该过程并让玩家登录。 - 如果登录成功,玩家现在将处于登录状态。你将获得一个会话令牌,可用于通过所有其他 PlayFab API 对玩家进行身份验证。
通过 Windows 应用商店进行购买
通过 Windows 应用商店进行购买与通过 iOS 或 Android 进行购买的过程类似。分为两个阶段:- 首先设置应用商店。
- 然后进行购买。
设置应用商店
Microsoft 已发布了多篇介绍此过程的文档。例如: 在 Windows 应用商店中设置应用内购买 你还必须确保在 PlayFab 目录中设置具有相同产品 ID 的匹配项。进行购买
在应用商店中设置项目后,即可在应用中启用应用内购买。- 在应用程序中进行购买,并确保请求收据。
- 本文档介绍了该过程:使用 UWP 进行应用内购买。
- 你将获得一张收据。
- 你可以在此处找到有关收据的详细信息。
- 调用 PlayFabClientAPI.ValidateWindowsStoreReceipt 以验证收据。这会自动将玩家刚刚购买的物品记入其在 PlayFab 中的库存。
