用户离线时如何在UWP中验证用户是否购买了订阅?

时间:2018-12-18 18:14:08

标签: c# uwp

MSDN mentions here应该如何执行订阅检查。但是没有提到它是否可以离线运行。如果不起作用,那么当用户没有互联网连接时,如何验证用户是否购买了订阅? 我认为无法测试此场景,因为测试场景无论如何都会返回示例响应,而不会查询实际服务器。

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;
}

1 个答案:

答案 0 :(得分:2)

此方法(StoreAppLicense)返回的GetAppLicenseAsync对象提供对licenses for add-ons和其他信息(例如许可证是否处于活动状态)的访问。 如果设备离线时调用此方法,它将返回设备上当前许可证的缓存值。