Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #3
0
        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;
            }
        }
Example #4
0
        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));
        }