MSDN упоминает здесь как реализовать проверку подписки. Но не упоминается, работает ли это в автономном режиме или нет. Если это не сработает, то как проверить, приобрел ли пользователь подписку, когда у пользователя нет подключения к Интернету? Я полагаю, что этот сценарий не может быть протестирован, потому что сценарий тестирования в любом случае вернет образец ответа, он не будет запрашивать фактический сервер.
private async Task<bool> CheckIfUserHasSubscriptionAsync()
{
StoreAppLicense appLicense = await context.GetAppLicenseAsync();
// Check if the customer has the rights to the subscription.
foreach (var addOnLicense in appLicense.AddOnLicenses)
{
StoreLicense license = addOnLicense.Value;
if (license.SkuStoreId.StartsWith(subscriptionStoreId))
{
if (license.IsActive)
{
// The expiration date is available in the license.ExpirationDate property.
return true;
}
}
}
// The customer does not have a license to the subscription.
return false;
}
Объект StoreAppLicense, возвращаемый этим методом (GetAppLicenseAsync), обеспечивает доступ к licenses for add-ons
и другой информации, например, активна ли лицензия. Если этот метод вызывается, когда устройство находится в автономном режиме, он возвращает кэшированное значение текущих лицензий на устройстве.