我正在使用Xamarin Forms v4.2和Plugin.InAppBilling v2。
我已从自己的应用购买了订阅,该应用已在GooglePlay上直播。通过代码进行调试时,购买状态为“待付款”,并且已经存在了几天。我已检查银行付款是否正常,一切都已正确处理。我什至收到一封来自Google的确认邮件,说明我的订阅购买情况,还可以在Google Play商店中查看订阅。
这是我的代码:
public async Task<bool> ValidateSubscriptionAsync()
{
var connected = false;
var billing = CrossInAppBilling.Current;
try
{
connected = await billing.ConnectAsync(ItemType.Subscription);
if (!connected)
return false;
var verify = DependencyService.Get<IInAppBillingVerifyPurchase>();
var purchases = await billing.GetPurchasesAsync(ItemType.Subscription, verify);
if (purchases == null)
return false;
if (Device.RuntimePlatform == Device.iOS && !VerifySubscriptionReceiptExpiry())
return false;
foreach (var purchase in purchases)
{
if (purchase.ProductId == Sku)
{
if ((purchase.State == PurchaseState.Purchased) ||
(Debugger.IsAttached && purchase.State == PurchaseState.PaymentPending))
return true;
}
}
}
catch (InAppBillingPurchaseException inbex)
{
Debug.WriteLine(inbex.Message);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
finally
{
if (connected)
{
await billing.DisconnectAsync();
}
}
return false;
}
付款待处理状态是否确实出现了问题?正常吗我应该检查所有状态吗?如果有人可以提供一些指导,那将是很大的帮助。
谢谢!