charge method
Future<PaymentResult>
charge({
- required int amount,
- required String reference,
- TippingConfiguration? tippingConfiguration,
- bool enableInstallments = false,
override
Process a card payment
amount - Payment amount in cents (e.g., 1000 = $10.00)
reference - Unique reference ID for this payment
tippingConfiguration - Optional tipping configuration
enableInstallments - Enable installments (Android only)
Implementation
@override
Future<PaymentResult> charge({
required int amount,
required String reference,
TippingConfiguration? tippingConfiguration,
bool enableInstallments = false,
}) async {
try {
final result = await methodChannel.invokeMethod<Map>('charge', {
'amount': amount,
'reference': reference,
'tippingConfiguration': tippingConfiguration?.toMap(),
'enableInstallments': enableInstallments,
});
if (result == null) {
throw ZettleException(
code: 'PAYMENT_FAILED',
message: 'Payment returned null result',
);
}
return PaymentResult.fromMap(Map<String, dynamic>.from(result));
} on PlatformException catch (e) {
throw ZettleException(
code: e.code,
message: e.message ?? 'Payment failed',
details: e.details,
);
}
}