Xamarin IOS InAppBiling插件如何获取收据数据

Xamarin IOS InAppBiling plugin how to get receipt-data

我使用 Plugin.InAppBiling 进行应用内购买 ios。我想知道购买收据数据。

这是我的代码。

private async Task<bool> MakePurchase(string productId)
        {
            var billing = CrossInAppBilling.Current;
            try
            {
                var connected = await billing.ConnectAsync();

                if (!connected)
                {   
                    return false;
                }

                var verify = DependencyService.Get<IInAppBillingVerifyPurchase>();
                var purchase = await CrossInAppBilling.Current.PurchaseAsync(productId, ItemType.InAppPurchase, verify);
                
                if (purchase == null)
                {
                    return false;
                }
                else if (purchase.State == PurchaseState.Purchased)
                {
                 
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        Console.WriteLine("CHECK");
                        if(verify == null)
                        {
                            Console.WriteLine("null");
                        }
                        else
                        {
                            Console.WriteLine($"{verify}");
                        }
                        
                    }
                    return true;
                }

                return false;
            }
            finally
            {
                await billing.DisconnectAsync();
            }
        }

付款过程顺利。但 verify 只是 return null.

我将验证理解为收据数据。是吗?

如何获取 base64 编码的字符串收据数据?

您还link 的文档明确指出 需要自己实施IInAppBillingVerifyPurchase。插件中没有这个实现。

所以你需要自己创建class并注册到IoC容器中:

[assembly: Dependency(typeof(MyIAPVerification))]
public class MyIAPVerification : IInAppBillingVerifyPurchase
{
    // implementation here
}

只有这样你的 verify 实例才不会为空。