未处理的异常:PlatformException(storekit_duplicate_product_object,同一产品标识符有待处理的交易。请等待其完成或使用completePurchase手动完成以避免边缘情况。,{applicationUsername:null,requestData:null,数量:1 ,productIdentifier:高级,模拟AskToBuyInSandbox:null})
如果您使用 in_app_purchase 插件,那么在开始新的购买周期之前,您需要将所有先前的购买周期标记为已完成。
您可以使用简单的 for 循环来查找所有购买详细信息并将其标记为完成。
for (var _purchaseDetails in purchaseList) {
if (_purchaseDetails.pendingCompletePurchase) {
await _inAppPurchase.completePurchase(_purchaseDetails);
}
}
请记住在开始购买之前使用此代码,这样就不会出现待处理的购买。
import 'package:in_app_purchase_storekit/store_kit_wrappers.dart';
final transactions = await SKPaymentQueueWrapper().transactions();
transactions.forEach((transaction) async {
await SKPaymentQueueWrapper().finishTransaction(transaction);
});