当用户试图购买东西时,Windows Phone 8应用程序抛出异常

本文关键字:Phone Windows 应用程序 抛出异常 用户 买东西 | 更新日期: 2023-09-27 18:19:09

我有一个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);
}

当我执行这段代码时,会抛出一个InvalidOperationException。与异常相关联的消息简单地说:

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

HResult值为-2146233079

为什么我得到一个没有任何额外信息的InvalidOperationException ?我在实际设备上运行应用程序,而不是模拟器。我真的很困惑。

谢谢

当用户试图购买东西时,Windows Phone 8应用程序抛出异常

在模拟器中运行应用程序-我最好的猜测是,由于您的应用程序不在商店中,它无法识别您试图购买的项目,因为您的设备绑定到实际的微软帐户。

更多关于测试应用内购买的细节可以在这里找到:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681689 (v = vs.105) . aspx

当我在测试应用程序的设备上运行应用程序时,我也遇到了同样的问题和错误消息。

我所做的是重新提交一个新的测试应用程序以获得新的应用程序ID,重新创建应用程序内购买,并且无需更改代码即可正常工作。

您是否调用了ReportProductFulfillment所有以前的购买?

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

http://msdn.microsoft.com/en-US/library/windows/apps/windows.applicationmodel.store.currentapp.reportproductfulfillment.aspx

试试这个:

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