Я получаю исключение ниже, когда пытаюсь оплатить подписку в магазине Play.
Plugin.InAppBilling.InAppBillingPurchaseException: невозможно обработать покупку. в Plugin.InAppBilling.InAppBillingImplementation.ParseBillingResult (результат BillingResult, логическое значение ignoreInvalidProducts) в Plugin.InAppBilling.InAppBillingImplementation.PurchaseAsync (String ProductSku, String itemType, String obfuscatedAccountId, String obfuscatedProfileId, String subOfferToken) в Plugin.InAppBilling. InAppBillingImplementation.PurchaseAsync(String productId , ItemType itemType, String obfuscatedAccountId, String obfuscatedProfileId, String subOfferToken)
Скриншот:
Я создал 3 подписки в магазине Play Store и активировал их. Мое приложение находилось в состоянии черновика, поэтому я опубликовал новую сборку для внутреннего тестирования. Но когда я пытаюсь оплатить подписку, я получаю исключение выше.
Мой код:
UserDialogs.Instance.ShowLoading("");
if (IsBusy)
return;
IsBusy = true;
try
{
// check internet first with Essentials
if (Connectivity.NetworkAccess != NetworkAccess.Internet)
return;
// connect to the app store api
var connected = await CrossInAppBilling.Current.ConnectAsync();
if (!connected)
return;
UserDialogs.Instance.HideHud();
//try to make purchase, this will return a purchase, empty, or throw an exception
var purchase = await CrossInAppBilling.Current.PurchaseAsync(productId, ItemType.Subscription);
if (purchase == null)
{
//nothing was purchased
return;
}
if (purchase.State == PurchaseState.Purchased)
{
Debug.WriteLine("Purchase successfull");
Debug.WriteLine("Purchase token:>>" + purchase.PurchaseToken);
Debug.WriteLine("Purchase id:>>" + purchase.Id);
}
else
{
throw new InAppBillingPurchaseException(PurchaseError.GeneralError);
}
}
catch (InAppBillingPurchaseException purchaseEx)
{
// Handle all the different error codes that can occure and do a pop up
Debug.WriteLine("purchaseEx:>>" + purchaseEx);
}
catch (Exception ex)
{
// Handle a generic exception as something really went wrong
Debug.WriteLine("exception:>>" + ex);
}
finally
{
await CrossInAppBilling.Current.DisconnectAsync();
IsBusy = false;
}
В манифесте добавлено следующее разрешение:
<uses-permission android:name = "com.android.vending.BILLING" />
Также добавлен приведенный ниже код метаданных:
<meta-data
android:name = "com.google.android.play.billingclient.version"
android:value = "6.0.1" />
Пропускаю ли я какие-либо другие настройки для правильной работы этого? Нужно ли публиковать подписки где-нибудь? Я активировал его. И мое приложение еще не опубликовано, оно находится только в черновом состоянии.





Согласно сообщению об ошибке, убедитесь, что вы приняли приглашение на тестирование и согласились на приглашение в тестовую программу в консоли Google Play. Пожалуйста, обратитесь к этим подробным инструкциям , чтобы включить приглашение тестовой программы.