如何在uwp上获取商店附加产品的购买状态

时间:2018-08-03 16:37:56

标签: uwp in-app-purchase

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

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

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

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

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

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

enter image description here

1 个答案:

答案 0 :(得分:0)

  

如何仅使用其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信息以及相关错误信息的访问。作为结果的下一页。