c2b method
Future<APIResponse?>
c2b({
- required double inputAmount,
- required String inputCustomerMSISDN,
- String inputCountry = "TZN",
- String inputCurrency = "TZS",
- required String inputServiceProviderCode,
- required String inputThirdPartyConversationID,
- required String inputTransactionReference,
- required String inputPurchasedItemsDesc,
- String? sessionId,
Customer to business
Implementation
Future<APIResponse?> c2b(
{required double inputAmount,
required String inputCustomerMSISDN,
String inputCountry = "TZN",
String inputCurrency = "TZS",
required String inputServiceProviderCode,
required String inputThirdPartyConversationID,
required String inputTransactionReference,
required String inputPurchasedItemsDesc,
String? sessionId}) async {
final sessionID = await getSession(sessionId: sessionId);
apiContext = APIContext(headers: {}, parameters: {})
..setApiKey(sessionID!)
..setPublicKey(publicKey)
..setSSL(true)
..setMethodType(APIMethodType.POST)
..setAddress("openapi.m-pesa.com")
..setPort(443)
..setPath("/${env.name}/ipg/v2/${market.name}/c2bPayment/singleStage/");
apiContext.addParameter("input_Amount", inputAmount);
apiContext.addParameter("input_Country", inputCountry);
apiContext.addParameter("input_Currency", inputCurrency);
apiContext.addParameter("input_CustomerMSISDN", inputCustomerMSISDN);
apiContext.addParameter(
"input_ServiceProviderCode", inputServiceProviderCode);
apiContext.addParameter(
"input_ThirdPartyConversationID", inputThirdPartyConversationID);
apiContext.addParameter(
"input_TransactionReference", inputTransactionReference);
apiContext.addParameter(
"input_PurchasedItemsDesc", inputPurchasedItemsDesc);
req = APIRequest(apiContext);
apiContext.addHeader("Origin", "*");
await Future.delayed(const Duration(seconds: 1));
try {
response = await req.execute();
return response;
} on DioError catch (e) {
throw Exception(e.response?.data);
}
}