refund method

  1. @override
Future<RefundResult> refund({
  1. int? amount,
  2. required String paymentReferenceId,
  3. required String refundReference,
})
override

Refund a previous payment

amount - Refund amount in cents (null for full refund) paymentReferenceId - Reference ID of the payment to refund refundReference - Unique reference ID for this refund

Implementation

@override
Future<RefundResult> refund({
  int? amount,
  required String paymentReferenceId,
  required String refundReference,
}) async {
  try {
    final result = await methodChannel.invokeMethod<Map>('refund', {
      'amount': amount,
      'paymentReferenceId': paymentReferenceId,
      'refundReference': refundReference,
    });

    if (result == null) {
      throw ZettleException(
        code: 'REFUND_FAILED',
        message: 'Refund returned null result',
      );
    }

    return RefundResult.fromMap(Map<String, dynamic>.from(result));
  } on PlatformException catch (e) {
    throw ZettleException(
      code: e.code,
      message: e.message ?? 'Refund failed',
      details: e.details,
    );
  }
}