Windows phone 8 为什么CurrentApp.LicenseInformation.ProductLicenses不工作?

Windows phone 8 为什么CurrentApp.LicenseInformation.ProductLicenses不工作?,windows-phone-8,Windows Phone 8,我有一个WP8应用程序,它已经发布到windows phone应用商店 它配置了应用内购买,当用户在我的应用中单击“购买”按钮时,我使用以下代码 ListingInformation products = await CurrentApp.LoadListingInformationByProductIdsAsync(new[] { "ProductOne"}); ProductListing productListing = null; if

我有一个WP8应用程序,它已经发布到windows phone应用商店

它配置了应用内购买,当用户在我的应用中单击“购买”按钮时,我使用以下代码

        ListingInformation products = await CurrentApp.LoadListingInformationByProductIdsAsync(new[] { "ProductOne"});

        ProductListing productListing = null;
        if (!products.ProductListings.TryGetValue("ProductOne", out productListing))
        {
            MessageBox.Show("Could not find product information");
            return;
        }

        try
        {
            string receipt = await CurrentApp.RequestProductPurchaseAsync(productListing.ProductId, true);
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex);
        }

        ProductLicense productLicense = null;
        if (CurrentApp.LicenseInformation.ProductLicenses.TryGetValue("ProductOne", out productLicense))
        {
            if (productLicense.IsActive)
            {
                  ...
            }
            else
            {
                  ...
            }
        }

问题是productLicense.IsActive的值始终为false。有人能告诉我,它出了什么问题吗?

我想既然你已经确定了代码行,那么你是在模拟器上测试,还是从Visual Studio部署到你的设备上进行测试(而不是从App Store获得的版本)

我现在还不清楚为什么在你的情况下,
.IsActive
False
,但在我的应用程序中,我使用了可以从下载的。使用它基本上可以让您在调试时模拟应用程序内购买,但也可以在应用商店中无缝工作

该库旨在模仿应用内购买的工作方式。什么时候 在“模拟模式”中,库还维护一个收据列表 作为每个许可证的状态信息。这可以让你锻炼身体 整个浏览、搜索、购买和履行流程。当在 “模拟模式”库不会激活应用内模拟购买 屏幕,但提供一个简单的消息框来完成应用程序内的 在emulator中测试时购买流

对于您的情况,我唯一能想到的是,您在调试时试图访问存储,我认为这是不可能的,因此
.IsActive
False


因此,如果您还没有看到(或尚未使用)模拟库,我建议您尝试一下。这绝对让我的生活更轻松

我假设既然您已经确定了代码行,那么您是在模拟器上进行测试,还是从Visual Studio部署到您的设备上进行测试(而不是从应用商店获取版本)

我现在还不清楚为什么在你的情况下,
.IsActive
False
,但在我的应用程序中,我使用了可以从下载的。使用它基本上可以让您在调试时模拟应用程序内购买,但也可以在应用商店中无缝工作

该库旨在模仿应用内购买的工作方式。什么时候 在“模拟模式”中,库还维护一个收据列表 作为每个许可证的状态信息。这可以让你锻炼身体 整个浏览、搜索、购买和履行流程。当在 “模拟模式”库不会激活应用内模拟购买 屏幕,但提供一个简单的消息框来完成应用程序内的 在emulator中测试时购买流

对于您的情况,我唯一能想到的是,您在调试时试图访问存储,我认为这是不可能的,因此
.IsActive
False


因此,如果您还没有看到(或尚未使用)模拟库,我建议您尝试一下。这绝对让我的生活更轻松

IAP是否需要任何能力?我取消选中了WMAppmanifest.xml.AgeRating=source.AgeRating中的所有功能;NotImplementedException throw。我认为它不需要任何特殊功能,但显然,你的应用程序需要某些功能才能运行,因此将它们全部删除将导致问题。你能发布引发异常的代码部分吗(可能是整个函数)?我也尝试过模拟IAP。但是,在按下确认购买消息框的Ok之后。将停留在同一商店页面。我怎么能设置自由版本是假的。因为我正在设置的值在mainpage.xaml.cs中,在模拟购买中按ok时,我如何触发。如果您单步执行,会发生什么?一切都成功了吗?IAP需要什么能力吗?我取消选中了WMAppmanifest.xml.AgeRating=source.AgeRating中的所有功能;NotImplementedException throw。我认为它不需要任何特殊功能,但显然,你的应用程序需要某些功能才能运行,因此将它们全部删除将导致问题。你能发布引发异常的代码部分吗(可能是整个函数)?我也尝试过模拟IAP。但是,在按下确认购买消息框的Ok之后。将停留在同一商店页面。我怎么能设置自由版本是假的。因为我正在设置的值在mainpage.xaml.cs中,在模拟购买中按ok时,我如何触发。如果您单步执行,会发生什么?一切都成功了吗?