Я создал al oop для поиска неудачных транзакций и затем завершил их sh соответственно.
Я все еще экспериментирую, где это сделать, чтобы избежать пользовательской ошибки. Я также попытаюсь выполнить аналогичный процесс в прослушивателе потока, который обрабатывает покупки.
В плагин IAP включены оболочки StoreKit:
Примечание. Я просмотрел информацию SK для XCode и это нормально сделать с неудачной транзакцией. Они сказали, что делать это с ожидающим рассмотрения - это «нет-нет».
Future<Null> _removeFailedPendingPurchases() async {
debugPrint(':::: SWIPE WAR ::::: _removeFailedPendingPurchases()');
final SKPaymentQueueWrapper paymentWrapper = SKPaymentQueueWrapper();
final List<SKPaymentTransactionWrapper> transactions =
await paymentWrapper.transactions();
debugPrint(
':::: SWIPE WAR ::::: transactions ${transactions.length} ${transactions.toString()}');
for (SKPaymentTransactionWrapper transaction in transactions) {
debugPrint('TRANSACTION everything : ${transaction.toString()}');
debugPrint('TRANSACTION STATE : ${transaction.transactionState}');
if (transaction.transactionState ==
SKPaymentTransactionStateWrapper.failed)
await paymentWrapper.finishTransaction(transaction);
}
return;
}