0

我设置了一个按钮来调用以下方法:

private async void buyTimeUP()
{
    await CurrentApp.RequestProductPurchaseAsync("MyItem", false);
    DoFullFillment();
}

当我购买/下载这个项目时,一切都很好,下面的代码运行得很好:

public void DoFullFillment()
{
    var productLicenses = CurrentApp.LicenseInformation.ProductLicenses;
    checkTransaction(productLicenses["MyItem"]);
}

private void checkTransaction(ProductLicense lic)
{
     if (lic.IsConsumable && lic.IsActive)
     {
         Debug.WriteLine("License bought");
         CurrentApp.ReportProductFulfillment(lic.ProductId);
      }
}

但是,如果用户使用后退按钮从应用内对话框返回,或者如果他取消交易,代码会在

   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at MyApp.Shop.<buyTimeUP>d__0.MoveNext()

我怎样才能摆脱这个错误?

4

1 回答 1

0

要解决此问题,请在 RequestProductPurchaseAsync 方法调用周围添加 try/catch ...

try
{
   receipt = await CurrentApp.RequestProductPurchaseAsync("MyItem", false);
}
catch (Exception){}
于 2013-04-23T02:18:47.110 回答