Предполагая, что 12-значным идентификатором хранилища постоянного IAP является 999999999999, license.AddOnLicenses
содержит ключ 999999999999/0010 вместо ожидаемого 999999999999.
Код:
StoreContext store = StoreContext.GetDefault();
StoreAppLicense license = await store.GetAppLicenseAsync();
Это противоречит документы, который говорит [курсив добавлен]:
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. Это буквенно-цифровая строка из 4 символов, которая определяет артикул. Пример полного идентификатора магазина, возвращаемого этим свойством, - 9NBLGGH69M0B / 000N. Пожалуйста, обратитесь к здесь.
Вы ищете идентификатор магазина продукта. Это буквенно-цифровая строка из 12 символов, например 9NBLGGH69M0B. Этот идентификатор магазина доступен в центре партнеров и возвращается свойством StoreId связанного объекта StoreProduct. Пожалуйста, обратитесь к здесь.
Итак, вам нужно проверить свойство StoreProduct.StoreId.
Каждому приложению и надстройке соответствует лицензия., который указывает, имеет ли пользователь право использовать приложение или надстройку. Каждый продукт в Магазине имеет как минимум один SKU, и каждый SKU имеет как минимум один доступный.
Некоторые издатели имеют возможность определять свои собственные SKU. Например, крупный издатель игр может выпустить игру с одним SKU, который показывает зеленую кровь на рынках, которые не допускают красную кровь, и другим SKU, который показывает красную кровь на всех других рынках. .
test if they begin with storeId
Да, он начинается с идентификатора магазина (его также иногда называют идентификатором магазина продукта)
Идентификатор магазина для артикула имеет формат <product Store ID>/xxxx
, где xxxx - это 4-символьная буквенно-цифровая строка, которая идентифицирует артикул для продукта. Как показано на картинке:
Дополнительные сведения об идентификаторе продукта и артикуле продукта см. В документах: Продукты, артикулы и наличие и Идентификаторы магазинов.
Спасибо. Вроде все. Это безумие. Вместо использования
license.AddOnLicenses.TryGetValue(storeId, out StoreLicense iapLicense);
мы теперь должны перебратьAddOnLicenses
и проверить, начинать они начинать сstoreId
...