无法连接到iTunes存储Xamarin形式

问题描述 投票:0回答:1

[enter image description here Hi,您好,谢谢。我在我的Xamarin表格ios中遇到问题。问题是,当我要购买产品时,抛出了一个异常,无法连接到iTunes,将我的相同代码存储在xamarin表单android上可以正常工作。我的恢复购买代码可以正常工作。

这是我的购买代码

private async Task<bool> MakePurchase(string ProductId, string Payload)
    {
        if (!CrossInAppBilling.IsSupported)
        {
            return false;
        }

        var billing = CrossInAppBilling.Current;
        try
        {
            var connected = await billing.ConnectAsync();

      if (!connected)//Couldn't connect to billing, could be offline, 
   alert user
            {
                DependencyService.Get<IToast>().Show("Something went 
                wrong or you may not connected with the internet!");
                return false;
            }

            //try to purchase item
            var purchase = await billing.PurchaseAsync(ProductId, 
            ItemType.InAppPurchase, Payload);

            if (purchase == null)
            {
                return false;
            }
            else
            {
                //Purchased, save this information
                var responseId = purchase.Id;
                var responseToken = purchase.PurchaseToken;
                var state = purchase.State;
                return true;


            }
        }
        catch (InAppBillingPurchaseException ex)
        {
            if (ex.PurchaseError == PurchaseError.DeveloperError)
            {
                DependencyService.Get<IToast>().Show("DeveloperError");
                ex.Message.ToString();
            }

            else if (ex.PurchaseError == PurchaseError.AlreadyOwned)
            {
                DependencyService.Get<IToast>().Show("AlreadyOwned");
                return true;
            }
            else if(ex.PurchaseError == PurchaseError.BillingUnavailable)
            {
                DependencyService.Get<IToast> 
           ().Show("BillingUnavailable");
                return false;
            }
             else if(ex.PurchaseError == PurchaseError.InvalidProduct)
            {
                DependencyService.Get<IToast>().Show("InvalidProduct");
                return false;
            }

             else if(ex.PurchaseError == PurchaseError.ItemUnavailable)
            {
                DependencyService.Get<IToast>().Show("ItemUnavailable");
                return false;
            }
            else if(ex.PurchaseError == PurchaseError.GeneralError)
            {
                DependencyService.Get<IToast>().Show("General Error");
                return false;
            }

            //Something bad has occurred, alert user
        }
        finally
        {
            //Disconnect, it is okay if we never connected
            await billing.DisconnectAsync();
        }

        return false;
    }
xamarin.forms xamarin.ios in-app-purchase in-app-billing
1个回答
0
投票

您有没有做过这项工作?我现在正在PCL / FORMS应用程序上测试InAppBilling,并且遇到相同类型的问题。我正在使用James代码的3.0.0 beta版。

© www.soinside.com 2019 - 2024. All rights reserved.