我有一个允许进行应用内购买的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
?我在实际设备而不是模拟器上运行应用程序。我真的很困惑。
谢谢
答案 0 :(得分:0)
在模拟器中运行应用程序 - 我最好的猜测是,由于您的应用程序不在商店中,因此无法识别您要购买的商品,因为您的设备已绑定到实际的Microsoft帐户。
有关测试应用内购买的更多详细信息,请访问: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681689(v=vs.105).aspx
答案 1 :(得分:0)
当我在测试版应用程序的设备上运行应用程序时,我也遇到了同样的问题和错误消息。
我所做的是重新提交新的测试版应用程序以获取新的应用程序ID,重新创建应用内购买,一切正常,无需更改代码。不知道为什么会这样。
答案 2 :(得分:0)
您是否致电所有先前购买的ReportProductFulfillment?
仅限Windows Phone。通知市场应用程序已将付费商品交付给用户。在使用此方法确认交付之前,您无法重新购买产品
试试这个:
foreach (var i in CurrentApp.LicenseInformation.ProductLicenses) {
CurrentApp.ReportProductFulfillment(i.Value.ProductId);
}