C# 当用户试图购买某些东西时,Windows Phone 8应用程序引发异常

C# 当用户试图购买某些东西时,Windows Phone 8应用程序引发异常,c#,in-app-purchase,windows-phone,C#,In App Purchase,Windows Phone,我有一个Windows Phone 8应用程序,可以进行应用内购买。当用户单击“购买”按钮时,我有以下代码: try { ProductListing product = GetProductToBuy(); MessageBox.Show("Product retrieved."); var boughtProduct = await CurrentApp.RequestProductPurchaseAsync(product.ProductId, true); Message

我有一个Windows Phone 8应用程序,可以进行应用内购买。当用户单击“购买”按钮时,我有以下代码:

try {
  ProductListing product = GetProductToBuy();
  MessageBox.Show("Product retrieved.");
  var boughtProduct = await CurrentApp.RequestProductPurchaseAsync(product.ProductId, true);
  MessageBox.Show(product.ProductId + " was purchased.");
} catch (Exception ex)
{
  MessageBox.Show(ex.GetType().FullName + "\n" + ex.Message + "\n" + ex.HResult);
}
当我执行此代码时,会抛出一个
invalidoOperationException
。与异常关联的消息只是说:

找不到与此错误代码关联的文本

HResult值为-2146233079

为什么我在没有任何附加信息的情况下收到一个
无效操作异常
?我正在实际设备上运行应用程序,而不是在模拟器上运行。我真的很困惑


感谢您在emulator中运行应用程序-我的猜测是,由于您的应用程序不在商店中,它无法识别您试图购买的商品,因为您的设备已绑定到实际的Microsoft帐户

有关测试应用内购买的更多详细信息,请访问:

在测试版应用程序的设备上运行应用程序时,我也会遇到相同的问题和错误消息


我所做的是重新提交一个新的测试版应用程序,以获得新的应用程序ID,重新创建应用程序内的购买,并且无需更改代码,一切正常。不知道为什么。

您有没有给ReportProductFulfillment打过电话

仅限Windows Phone。通知市场应用程序已向用户交付付费商品。在使用此方法确认产品交付之前,您无法回购产品

试试这个:

foreach (var i in CurrentApp.LicenseInformation.ProductLicenses) { 
    CurrentApp.ReportProductFulfillment(i.Value.ProductId);
}

调试器说错误在哪里?哪一行代码失败?GetProductToBuy的代码是什么?