商店 ID 格式错误

Store ID is in wrong format

假设持久 IAP 的 12 位商店 ID 为 999999999999,license.AddOnLicenses 包含密钥 999999999999/0010 而不是预期的 999999999999.

代码:

StoreContext store = StoreContext.GetDefault();
StoreAppLicense license = await store.GetAppLicenseAsync();

这与 the docs 相反 [强调已添加]:

A map of key and value pairs, where each key is the Store ID of an add-on SKU from the Microsoft Store catalog and each value is a StoreLicense object that contains license info for the add-on.

这是一个错误还是我做错了什么(或者对文档的理解有误)?

where each key is the Store ID of an add-on SKU

您得到的是 SKU 商店 ID。它是一个 4 个字符的字母数字字符串,用于标识 SKU。此 属性 返回的示例完整商店 ID 是 9NBLGGH69M0B/000N。请参考here.

您要查找的是 产品商店 ID。它是一个 12 个字符的字母数字字符串,例如 9NBLGGH69M0B。此商店 ID 在合作伙伴中心可用,它由相关 StoreProduct 对象的 StoreId 属性 返回。请参考here.

所以你需要检查 StoreProduct.StoreId 属性.

每个应用程序和附加组件都有一个关联的许可证,表明用户是否有权使用商店中的应用程序或附加产品-on.Every至少一个 SKU,每个 SKU 至少有一个可用性。

一些发行商有能力定义他们自己的 SKUs.For 例如,一家大型游戏发行商可能会发布一款游戏,其中一个 SKU 在不允许红血的市场上显示绿血,而另一个 SKU 则显示绿血在所有其他市场都显示出红色血液。

test if they begin with storeId

是的,它以商店 ID 开头(有时也称为产品商店 ID)

SKU 的商店 ID 的格式为 <product Store ID>/xxxx,其中 xxxx 是一个由 4 个字符组成的字母数字字符串,用于标识产品的 SKU。如图所示:

更多关于product Id和SKU的概念,请参考文档:Products, SKUs, and availabilities and Store IDs