【问题标题】:How to get the purchase status of a store add-on product on uwp如何在 uwp 上获取商店附加产品的购买状态
【发布时间】:2018-08-03 16:37:55
【问题描述】:

我有 2 件商品供用户购买,因此他们可以解锁一些高级功能。

首先,我可以显示购买窗口,他们可以购买附加组件。然后我可以存储一个局部变量来了解购买状态。

但是如果他们卸载并重新安装应用程序,如何静默地知道插件的购买状态?我试过了

StoreContext context = StoreContext.GetDefault();
var result = await context.RequestPurchaseAsync("9NP83X0BQP20");
if (result.Status == StorePurchaseStatus.AlreadyPurchased)
    return true;

RequestPurchaseAsync 方法还会弹出一个窗口再次购买。

那么,如何通过id而不是漫游数据的方式,默默知道插件的购买状态呢?

【问题讨论】:

    标签: uwp in-app-purchase


    【解决方案1】:

    如何仅使用id而不是漫游数据的方法来静默地知道插件的购买状态?

    您可以在 Microsoft Store 集合 API 中使用 Query for product 来获取客户拥有的与您的 Azure 广告客户端 ID 关联的应用的所有产品。 要使用此方法,您必须创建一个带有 https://onestore.microsoft.com 受众 URI 的令牌和一个带有 https://onestore.microsoft.com/b2b/keys/create/collections 受众 URI 的令牌。 更多详情请参考官方文档:Create Azure AD access tokensManage product entitlements form a service

    更新

    您可以通过比较已购买插件的产品信息和当前插件的产品信息来判断该插件是否已购买,提供了两种获取已购买产品信息的方法。

    1.StoreContext.GetUserCollectionAsync(IIterable) Method :它返回一个StoreProductQueryResult 对象,其中包含用户已购买的当前应用的加载项的Microsoft Store 信息和相关的错误信息。

    2.StoreContext.GetUserCollectionWithPagingAsync(IIterable, UInt32) Method :它返回一个StoreProductPagedQueryResult 对象,该对象提供对用户已购买的当前应用程序的加载项和相关错误信息以及下一页的Microsoft Store 信息的访问结果。

    【讨论】:

    • 有什么简单的方法吗?我认为微软应该提供一个直接简单的方法,只需检查产品id是否购买。
    猜你喜欢
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    相关资源
    最近更新 更多