finishTransaction method

Future<String?> finishTransaction(
  1. PurchasedItem purchasedItem, {
  2. bool isConsumable = false,
})

Finish a transaction on both android and iOS.

Call this after finalizing server-side validation of the reciept.

Implementation

Future<String?> finishTransaction(PurchasedItem purchasedItem,
    {bool isConsumable = false}) async {
  if (_platform.isAndroid) {
    if (isConsumable) {
      return await _channel.invokeMethod('consumeProduct', <String, dynamic>{
        'token': purchasedItem.purchaseToken,
      });
    } else {
      if (purchasedItem.isAcknowledgedAndroid == true) {
        return Future.value(null);
      } else {
        return await _channel
            .invokeMethod('acknowledgePurchase', <String, dynamic>{
          'token': purchasedItem.purchaseToken,
        });
      }
    }
  } else if (_platform.isIOS) {
    return await _channel.invokeMethod('finishTransaction', <String, dynamic>{
      'transactionIdentifier': purchasedItem.transactionId,
    });
  }
  throw PlatformException(
      code: _platform.operatingSystem, message: "platform not supported");
}