为什么CurrentApp.LicenseInformation.ProductLicenses不起作用?

时间:2013-05-30 15:43:15

标签: windows-phone-8

我有一个已发布到Windows Phone商店的WP8应用程序。

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

        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。有人能告诉我,它有什么问题吗?

1 个答案:

答案 0 :(得分:1)

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

我不清楚为什么.IsActive在您的情况下False,但在我的应用中,我使用了Mock In-App Purchase Library,您可以从{{3}下载}}。使用它基本上可以让你在调试时模仿应用内购买,但也可以从商店无缝地工作。

  

图书馆旨在模仿应用内购买的方式。什么时候   在“模拟模式”中,图书馆也会保留一份收据清单   作为每个许可证的状态信息。这可以让你锻炼身体   整个浏览,搜索,购买和履行流程。什么时候进去   “模拟模式”库不会激活应用内模拟购买   屏幕,但提供了一个简单的消息框来完成应用内   在模拟器中测试时购买流程。

我唯一可以考虑你的情况是你在调试时试图访问商店,这是我认为不可能的,因此.IsActiveFalse

所以如果你还没有看过(或者还没有使用过)模拟库,我会试一试。这绝对让我的生活更轻松!