reversal method
Transaction reversal
Implementation
Future<APIResponse?> reversal(
{required double inputReversalAmount,
required String inputServiceProviderCode,
required String inputThirdPartyConversationID,
required String inputTransactionID,
String inputCountry = "TZN",
String? sessionId}) async {
final sessionID = await getSession(sessionId: sessionId);
apiContext = APIContext(headers: {}, parameters: {})
..setApiKey(sessionID!)
..setPublicKey(publicKey)
..setSSL(true)
..setMethodType(APIMethodType.PUT)
..setAddress("openapi.m-pesa.com")
..setPort(443)
..setPath("/${env.name}/ipg/v2/${market.name}/reversal/");
apiContext.addParameter("input_ReversalAmount", inputReversalAmount);
apiContext.addParameter("input_Country", inputCountry);
apiContext.addParameter(
"input_ServiceProviderCode", inputServiceProviderCode);
apiContext.addParameter(
"input_ThirdPartyConversationID", inputThirdPartyConversationID);
apiContext.addParameter("input_TransactionID", inputTransactionID);
apiContext.addHeader("Origin", "*");
req = APIRequest(apiContext);
/// SessionID can take up to 30 seconds to become 'live' in the system and will be invalid until it is
await Future.delayed(const Duration(seconds: 1)); //30
try {
response = await req.execute();
return response;
} on DioError catch (e) {
throw Exception(e.message);
}
}