在 InAppBillingPlugin for Xamarin 之后,应用内购买无法连接到 iTunes 商店 ios 12

Posted

技术标签:

【中文标题】在 InAppBillingPlugin for Xamarin 之后,应用内购买无法连接到 iTunes 商店 ios 12【英文标题】:In app purchase cannot connect to itunes store ios 12 following InAppBillingPlugin for Xamarin 【发布时间】:2018-11-19 20:18:59 【问题描述】:

我正在尝试在plugin 之后在我的应用程序中测试应用程序购买。我还检查了this 和成千上万的其他官方/非官方文章,但没有结果。我不认为我的代码有问题,因为我要求另一位开发人员分享他的代码并在我的应用程序中使用它。在他的项目中,这段代码运行良好,但我有 InAppBillingPurchaseException“无法连接到 Itunes Store”。在输入沙盒凭据之前,我还注销了我的真实帐户。这是代码,但我认为问题不在这里:

public async Task<bool> PurchaseItemAsync()
    
        var billing = CrossInAppBilling.Current;
        LastExceptionMessage = null;

        try
        
            var connected = await billing.ConnectAsync();
            if (connected == false)
                return false;

            var purchase = await billing.PurchaseAsync(_kProductId, ItemType.InAppPurchase, _kPayload);

            if (purchase == null)
                return false;
            else if (purchase.State == PurchaseState.Purchased)
                return true;
        
        catch (InAppBillingPurchaseException ex)
        
            OnPurchaseException(ex);
        
        catch (Exception ex)
        
            //Dlog.Error("Issue connecting: " + ex);
            LastExceptionMessage = ex.Message;
        
        finally
        
            await billing.DisconnectAsync();
        

        return false;
    

【问题讨论】:

您是否在您的应用 ID 中检查了应用内购买项目? 怎么做?我认为问题不在于项目 ID,因为首先它必须连接到 iTunes 商店但它不能 docs.microsoft.com/en-us/xamarin/ios/platform/in-app-purchasing/… 参考这份文件 是的,我做了这些步骤。但我没有发布我的 app jet。我想在沙箱中测试它 你有什么解决办法吗? 【参考方案1】:

就我而言,我的应用中的 bundleID 与应用内购买的产品 ID 不匹配。我的应用代码中有捆绑 ID com.xam.sample。但是产品 ID 是 testiap。因此,我使用 productID com.xam.sample.testiap 创建了 IAP,并且能够通过这种方式解决该错误。

【讨论】:

以上是关于在 InAppBillingPlugin for Xamarin 之后,应用内购买无法连接到 iTunes 商店 ios 12的主要内容,如果未能解决你的问题,请参考以下文章

Android应用内商品价格存储/显示

为啥在 for 循环之后比 for 循环之前慢得多?

在 for(int i=0;...) for(int j=0; ...)summation 嵌套 for 循环中求和势能不起作用

如何在 for 循环中设置 asp-for

为啥 for..of / for..in 循环可以使用 const 而普通的 for 循环在 JS 中只能使用 let 或 var 作为其变量? [复制]

在js中怎么结束当前for循环?