public async Task <Object> ProcessTransaction1(B2CRequest mpesaRequest, string token) { HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Clear(); client.BaseAddress = new Uri("https://sandbox.safaricom.co.ke"); client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}"); var json = JsonConvert.SerializeObject(mpesaRequest); var httpContent = new StringContent(json, Encoding.UTF8, "application/json"); var resWithToken = client.PostAsync("/mpesa/b2c/v1/paymentrequest", httpContent).Result; stringData = resWithToken.Content.ReadAsStringAsync().Result; // return JsonConvert.DeserializeObject<Response>(stringData); var response = JsonConvert.DeserializeObject <Response>(stringData); return(response); }
public async Task <IActionResult> B2CPaymentRequest() { B2CRequest b2CRequest = new B2CRequest { InitiatorName = "testapi", Password = "******", Amount = "10", PartyA = "600214", PartyB = "254712345678", Remarks = "Test", QueueTimeOutURL = "https://testurl.co.ke", ResultURL = "https://testurl.co.ke", Occassion = "Test" }; Mpesa mpesa = new Mpesa(); var response = await mpesa.B2CAsync(_options.ConsumerKey, _options.ConsumerSecret, b2CRequest); return(Json(response)); }
public void ProcessTransaction(B2CRequest mpesaRequest, string b2cUrl, string token) { if (mpesaRequest == null) { //return null; } string serializedBodyRequest = JsonConvert.SerializeObject(mpesaRequest); HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(b2cUrl); httpRequest.ContentType = "application/json"; httpRequest.Method = "POST"; httpRequest.Headers.Add("Authorization", "Bearer" + token); using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) { streamWriter.Write(serializedBodyRequest); streamWriter.Flush(); streamWriter.Close(); } try { HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse(); var result = ""; using (var responseStream = new StreamReader(httpResponse.GetResponseStream())) { result = responseStream.ReadToEnd(); } var b2CResponse = JsonConvert.DeserializeObject <Response>(result); if (b2CResponse == null) { // return null; } //return b2CResponse; } catch (Exception Ex) { //return null; } }
public async Task <string[]> B2CAsync(string consumerKey, string consumersecret, B2CRequest b2CRequest, bool isSandbox = true) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; b2CRequest.SecurityCredential = Encryption(b2CRequest.Password); b2CRequest.CommandID = "BusinessPayment"; JObject jObject = JObject.FromObject(b2CRequest); string auth = Authenticate(consumerKey, consumersecret, isSandbox); string baseUrl = getBaseUrl(isSandbox); return(await SendApiRequestAsync(auth, baseUrl, "mpesa/b2c/v1/paymentrequest", jObject)); }