假定持久性IAP的12位存储ID为999999999999,license.AddOnLicenses
包含键 999999999999/0010 ,而不是预期的 999999999999 。< / p>
代码:
StoreContext store = StoreContext.GetDefault();
StoreAppLicense license = await store.GetAppLicenseAsync();
这与the docs的说法相反,后者说[强调]:
键和值对的映射,其中每个键是商店的商品ID Microsoft Store目录中的附加SKU,每个值都是 包含附件的许可证信息的StoreLicense对象。
这是错误还是我做错了什么(或理解文档错了?)
答案 0 :(得分:2)
其中每个键是附加SKU的商店ID
您得到的是 SKU商店ID 。它是4个字符的字母数字字符串,用于标识SKU。此属性返回的完整商店ID示例为9NBLGGH69M0B / 000N。请参阅here。
您要查找的是产品商店ID 。它是一个12个字符的字母数字字符串,例如9NBLGGH69M0B。该商店ID在合作伙伴中心中可用,并且由相关StoreProduct对象的StoreId属性返回。请参阅here。
因此,您需要检查StoreProduct.StoreId属性。
答案 1 :(得分:1)
每个应用程序和加载项都有关联的许可证,用于指示用户是否有权使用该应用程序或加载项。商店中的每个产品至少具有一个SKU,每个SKU至少有一个可用性。
一些发行商可以定义自己的SKU,例如,大型游戏发行商可能发布的游戏中,一个SKU在不允许红血丝的市场上显示绿色,而另一个SKU在不允许红血球的市场上显示绿色。所有其他市场。
测试它们是否以storeId开头
是的,它以商店ID(有时也称为产品商店ID)开头
SKU的商店ID的格式为__FILE__
,其中xxxx是4个字符的字母数字字符串,用于标识产品的SKU。如图所示:
有关产品ID和SKU的更多概念,请参阅文档:Products, SKUs, and availabilities和Store IDs