0

我有一个允许应用内购买的 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没有任何额外信息的?我在实际设备而不是模拟器上运行应用程序。我真的很困惑。

谢谢

4

3 回答 3

0

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

有关测试应用内购买的更多详细信息,请访问此处:http: //msdn.microsoft.com/en-us/library/windowsphone/develop/jj681689 (v=vs.105).aspx

于 2013-06-19T19:45:58.893 回答
0

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

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

于 2013-12-17T00:29:54.590 回答
0

您是否致电 ReportProductFulfillment 报告所有以前的购买?

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

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);
}
于 2014-03-23T18:46:33.820 回答