Xamarin.forms Xamarin表单使用CrossInAppBilling,如何检查订阅是否有效?

Xamarin.forms Xamarin表单使用CrossInAppBilling,如何检查订阅是否有效?,xamarin.forms,in-app-subscription,Xamarin.forms,In App Subscription,文件: 我正在尝试验证用户是否存在有效的订阅,如果存在,请登录 以下内容将获取所有订阅购买: var _subscriptionList = await CrossInAppBilling.Current.GetPurchasesAsync(ItemType.Subscription); 我检查是否应该允许用户登录,这取决于是否找到订阅 if (_subscriptionList.Any()) { Login()

文件:

我正在尝试验证用户是否存在有效的订阅,如果存在,请登录

以下内容将获取所有订阅购买:

 var _subscriptionList = await CrossInAppBilling.Current.GetPurchasesAsync(ItemType.Subscription);
我检查是否应该允许用户登录,这取决于是否找到订阅

            if (_subscriptionList.Any())
            {
                Login();
            }
然而,我觉得这允许有待定付款的用户登录(或者任何有付费、待定或拒绝状态的订阅记录的人)。因此,我所做的是检查“PurchaseState”:


这是正确的实施方式吗?我已经在Android上进行了测试,但测试购买处于PurchaseState.Pending状态,因此我必须包含“\u subscription.state==PurchaseState.PaymentPending”才能登录。我需要一个对这个插件和它的实时行为有经验的人。

对于任何需要答案的人来说,上面的代码实际上就是你如何实现它的。Play Store和App Store都会将购买状态保持在挂起状态,现实世界的行为是不同的。它将被“购买”或“拒绝”。您好,您有什么解决方案吗?
if (_subscriptionList.Any())
            {
                foreach (var _subscription in _subscriptionList)
                {
                    if (_subscription.State == PurchaseState.Purchased)
                    {
                        Login();
                        break;
                    }

                }
            }