processMpesaTransaction function Null safety

Future<MpesaResponse> processMpesaTransaction(
  1. String url,
  2. Map<String, String> headers,
  3. Map<String, dynamic> payload
)

Implementation

Future<MpesaResponse> processMpesaTransaction(
  String url, Map<String, String> headers, Map<String, dynamic> payload
)async{

  try{

    final http.Response _res = await http.post(Uri.parse(url), headers: headers, body: json.encode(payload));
    dynamic _body;
    Map<String, dynamic>? _bodyAsmap;
    try{
      _body = json.decode(_res.body);
      _bodyAsmap = _body as Map<String, dynamic>?;
      print(_bodyAsmap);
    } catch (e){
      _body = _res.body;
    }

    var _mpesaRespone = MpesaResponse.fromMap(_res.statusCode, _bodyAsmap ?? {});

    return _mpesaRespone;


    } catch (e){
      rethrow;
    }

}