0

我的 WP8 应用程序有一个消耗品的应用程序内购买。据我了解,您必须在商品交付时向市场报告商品的履行情况。

所以我的问题是,如果我做不到怎么办?例如,如果没有互联网连接。

我见过的任何示例代码都会检索产品列表,然后调用RequestProductPurchaseAsync,然后直接调用ReportProductFulfillment

基本上我希望两者都成功或都不成功......如果RequestProductPurchaseAsync成功,这是否意味着向客户收费,即使我没有报告履行情况?

或者我应该检查CurrentApp.LicenseInformation相关许可证,如果IsActive是真的,那么我可以安全地假设购买成功,然后我应该报告履行。但我需要一种方法来了解履行是否也成功,以便我可以在需要时再试一次。

希望这是有道理的,如果有人有任何想法或可以指出我阅读某些材料的方向,我将不胜感激。谢谢。

4

2 回答 2

0

我就是这样做的:

如果没有网络,你甚至不会继续购买体验或用户取消购买 RequestProductPurchaseAsync 将抛出异常,你应该抓住它并适当地处理它。如果用户购买了该商品,应立即履行。

await CurrentApp.RequestProductPurchaseAsync(productId, false);
if (CurrentApp.LicenseInformation.ProductLicenses[productId].IsActive)
{
     // Report fulfillment
     CurrentApp.ReportProductFulfillment(productId);
     ------------
}
于 2014-03-26T22:34:44.990 回答
0

而不是检查IsActive您可以做的许可证是否是:

PurchaseResults receipt = await CurrentApp.RequestProductPurchaseAsync(pID);
string status = receipt.Status.ToString();
if(status == "succeeded")
{
 // do your stuff
}
于 2015-11-24T15:19:12.217 回答