Windows phone 8 Windows Phone 8:应用内购买屏幕未显示

Windows phone 8 Windows Phone 8:应用内购买屏幕未显示,windows-phone-8,in-app-purchase,Windows Phone 8,In App Purchase,我正在尝试将应用程序内购买功能添加到我用C#中的Unity3D制作的游戏中。据我所知,当用户开始购买时——也就是说,从游戏中单击“购买”按钮,他们应该被带到购买屏幕 在不详细介绍插件工作原理的情况下,这是从手机调用的启动purhase的功能: private static async Task<string>PurchaseUpgrade(string ID) { var listings = await CurrentApp.LoadListingInformationAs

我正在尝试将应用程序内购买功能添加到我用C#中的Unity3D制作的游戏中。据我所知,当用户开始购买时——也就是说,从游戏中单击“购买”按钮,他们应该被带到购买屏幕

在不详细介绍插件工作原理的情况下,这是从手机调用的启动purhase的功能:

private static async Task<string>PurchaseUpgrade(string ID)
{
    var listings = await CurrentApp.LoadListingInformationAsync();

    var purchaseItem = listings.ProductListings.FirstOrDefault(x => x.Value.ProductId == ID &&
                                                                x.Value.ProductType == ProductType.Durable);
    try
    {
        if (CurrentApp.LicenseInformation.ProductLicenses[purchaseItem.Value.ProductId].IsActive)
        {
            return false.ToString();
        }
        else
        {
            Receipt = await CurrentApp.RequestProductPurchaseAsync(purchaseItem.Value.ProductId, true);
            return true.ToString();
        }
    }
    catch (Exception w)
    {
        return w.ToString();
    }
}
它应该“打开”一个购买屏幕吗?确认购买


无论如何,情况并非如此,有人对此有经验吗?

本指南将帮助您在本地计算机本地IIS Web服务和WP8 Emulator中测试IAP


我认为您必须在UI线程上运行此功能

Deployment.Current.Dispatcher.BeginInvoke(() => ShowBuyDialog(productId));

调用RequestProductPurchaseAsync方法时会发生什么?您的应用程序是否已发布到应用商店。该代码仅适用于直接从应用商店下载的应用程序,而不适用于调试版本。如果应用程序尚未发布,则应使用进行测试。是一个很好的例子。如果应用程序的ProductId(位于WPManifest.xml中)和ApplicationId(位于开发中心中)不相同,则无法测试应用程序内购买(使用CurrentAppSimulator除外)。让它一样,它应该工作。为迟到的答复感到抱歉。实际上,我正在使用Msdn提供的MockAPI库来测试购买的产品。
Deployment.Current.Dispatcher.BeginInvoke(() => ShowBuyDialog(productId));