首页 > 解决方案 > Xamarin Forms In App Billing 插件不起作用

问题描述

我在我的 Xamarin Forms 项目中安装了应用内计费插件:Plugin

首先,我想在 iOS 上使用它,但插件不起作用。它显示以下错误:Plugin.InAppBilling.Abstractions.InAppBillingPurchaseException: Cannot connect to iTunes Store at Plugin.InAppBilling.InAppBillingImplementation.PurchaseAsync (System.String productId, Plugin.InAppBilling.Abstractions.ItemType itemType, System.String payload, Plugin.InAppBilling.Abstractions.IInAppBillingVerifyPurchase verifyPurchase) ..

我认为我的 productId 或有效负载是错误的,我应该在那里放什么?这是我的代码:

          try
            {
                var productId = "mySKU";

                var connected = await CrossInAppBilling.Current.ConnectAsync();

                if (!connected)
                {
                    //Couldn't connect to billing, could be offline, alert user
                    return;
                }

                //try to purchase item
                var purchase = await CrossInAppBilling.Current.PurchaseAsync(productId, ItemType.Subscription, "payload");
                if (purchase == null)
                {
                    //Not purchased, alert the user
                }
                else
                {
                    //Purchased, save this information
                    var id = purchase.Id;
                    var token = purchase.PurchaseToken;
                    var state = purchase.State;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                //Something bad has occurred, alert user
            }
            finally
            {
                //Disconnect, it is okay if we never connected
                await CrossInAppBilling.Current.DisconnectAsync();
            }

我希望有人能帮助我。提前致谢。

标签: xamarin.formsxamarin.androidxamarin.iosin-app-purchasein-app-billing

解决方案


我修好了它。对于所有有同样问题的人:我的问题是,我创建了一个 bundle id。然后我在 Visual Studio 中激活了自动签名,它自动创建了另一个包 ID。我选择了它,我必须给它一个名字。点击保存后,它又变回了另一个ID。问题是 id 具有相同的名称。所以我在 Visual Studio 中重命名了 bundle id,它就像一个魅力。


推荐阅读