makeGlassPayment method
Future<PaymentResponseStatus>
makeGlassPayment({
- required double amount,
- required MyPosCurrency currency,
- bool printMerchantReceipt = true,
- bool printCustomerReceipt = true,
- String? eReceiptReceiver,
- String? reference,
override
Implementation
@override
Future<PaymentResponseStatus> makeGlassPayment({
required double amount,
required MyPosCurrency currency,
bool printMerchantReceipt = true,
bool printCustomerReceipt = true,
String? eReceiptReceiver,
String? reference,
}) async {
final Map<String, dynamic> args = {
'amount': amount,
'currency': currency.name,
'printMerchantReceipt': printMerchantReceipt,
'printCustomerReceipt': printCustomerReceipt,
'eReceiptReceiver': eReceiptReceiver,
'reference': reference,
};
final res = await methodChannel.invokeMethod('makeGlassPayment', args);
if (res is Map) {
final map = Map<String, dynamic>.from(res as Map);
final approved = map['transaction_approved'] == true;
if (approved) return PaymentResponseStatus.success;
// If we have response_code we can treat as declined; otherwise unknown
if (map.containsKey('response_code')) return PaymentResponseStatus.declined;
return PaymentResponseStatus.unknown;
}
if (res is String) {
switch (res) {
case 'SUCCESS':
return PaymentResponseStatus.success;
case 'CANCEL':
return PaymentResponseStatus.cancel;
case 'ERROR':
return PaymentResponseStatus.error;
case 'TIMEOUT':
return PaymentResponseStatus.timeout;
case 'DECLINED':
return PaymentResponseStatus.declined;
case 'UNKNOWN':
return PaymentResponseStatus.unknown;
}
}
return PaymentResponseStatus.unknown;
}