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

时间:2017-10-04 19:08:36

标签: xamarin.forms in-app-subscription

文档:https://jamesmontemagno.github.io/InAppBillingPlugin/

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

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

 var _subscriptionList = await CrossInAppBilling.Current.GetPurchasesAsync(ItemType.Subscription);

我检查是否允许用户登录,具体取决于是否找到订阅。

            if (_subscriptionList.Any())
            {
                Login();
            }

但是我觉得这允许有待付款的用户登录(或者任何有任何类型的订阅记录,状态为付费,待处理或被拒绝的人)。所以我所做的就是检查" PurchaseState":

if (_subscriptionList.Any())
            {
                foreach (var _subscription in _subscriptionList)
                {
                    if (_subscription.State == PurchaseState.Purchased)
                    {
                        Login();
                        break;
                    }

                }
            }

这是正确的实施方式吗?我已在Android上测试但测试购买仍处于PurchaseState.Pending状态,因此我必须包含" _subscription.State == PurchaseState.PaymentPending"为了登录我需要有这个插件经验的人及其实时行为。

0 个答案:

没有答案