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