public async Task <IActionResult> StkPushInitiate() { ExpressInitiateRequest expressInitiateRequest = new ExpressInitiateRequest { BusinessShortCode = _options.ShortCode, Password = _options.PassKey, Amount = "10", PartyA = "254712345678", PartyB = _options.ShortCode, PhoneNumber = "254712345678", CallBackURL = "https://testurl.co.ke", AccountReference = "YR9HS9SD2", TransactionDesc = "Test", }; Mpesa mpesa = new Mpesa(); var response = await mpesa.StkPushInitiateAsync(_options.ConsumerKey, _options.ConsumerSecret, expressInitiateRequest); return(Json(response)); }
public async Task <string[]> StkPushInitiateAsync(string consumerKey, string consumersecret, ExpressInitiateRequest expressInitiateRequest, bool isSandbox = true) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; expressInitiateRequest.TransactionType = "CustomerPayBillOnline"; expressInitiateRequest.Timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"); expressInitiateRequest.Password = base64Encode(expressInitiateRequest.BusinessShortCode + expressInitiateRequest.Password + expressInitiateRequest.Timestamp); JObject jObject = JObject.FromObject(expressInitiateRequest); string auth = Authenticate(consumerKey, consumersecret, isSandbox); string baseUrl = getBaseUrl(isSandbox); return(await SendExpressRequestAsync(auth, baseUrl, "mpesa/stkpush/v1/processrequest", jObject)); }