当用户试图购买东西时,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
?我在实际设备上运行应用程序,而不是模拟器。我真的很困惑。
谢谢
在模拟器中运行应用程序-我最好的猜测是,由于您的应用程序不在商店中,它无法识别您试图购买的项目,因为您的设备绑定到实际的微软帐户。
更多关于测试应用内购买的细节可以在这里找到: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);
}