statusPayment method

  1. @override
Future<GetnetStatusPaymentResponse> statusPayment({
  1. required GetnetStatusPaymentPayload statusPaymentPayload,
})
override

Implementation

@override
Future<GetnetStatusPaymentResponse> statusPayment({required GetnetStatusPaymentPayload statusPaymentPayload}) async {
  try {
    final response = await methodChannel.invokeMethod<Map>('statusPayment', statusPaymentPayload.toJson());
    if (response is Map) {
      if ((response['code'] == GetnetStatusDeeplink.SUCCESS.name || response['code'] == GetnetStatusDeeplink.PENDING.name) && response['data'] is Map) {
        if (response['code'] == GetnetStatusDeeplink.SUCCESS.name) {
          final jsonData = response['data'];
          return GetnetStatusPaymentResponse.fromJson(json: jsonData);
        } else {
          return GetnetStatusPaymentResponse(
            result: response['result'] ?? '5',
            resultDetails: 'Operação ainda pendente cancelada pelo lojista, realize consulta do status',
            printMerchantPreference: response['printMerchantPreference'] ?? false,
            amount: 0.00,
            callerId: statusPaymentPayload.callerId,
            receiptAlreadyPrinted: false,
            type: '',
            inputType: '',
          );
        }
      } else {
        throw GetnetStatusPaymentException(message: response['message']);
      }
    } else {
      throw GetnetStatusPaymentException(message: 'invalid response');
    }
  } on GetnetStatusPaymentException catch (e) {
    throw GetnetStatusPaymentException(message: e.message);
  } on PlatformException catch (e) {
    throw GetnetStatusPaymentException(message: e.message ?? 'PlatformException');
  } catch (e) {
    throw GetnetStatusPaymentException(message: "Status payment Error: $e");
  }
}