Пример #1
0
        public async Task <Object> ProcessTransaction1(LipaNaMpesaOnlineDto 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/stkpush/v1/processrequest", httpContent).Result;

            stringData = resWithToken.Content.ReadAsStringAsync().Result;
            var response = JsonConvert.DeserializeObject <LipaNaMpesaResponse2>(stringData);

            return(response);
        }
Пример #2
0
        public void ProcessTransaction(LipaNaMpesaOnlineDto 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 <String>(result);
                if (b2CResponse == null)
                {
                    // return null;
                }
                //return b2CResponse;
            }
            catch (Exception Ex)
            {
                //return null;
            }
        }
Пример #3
0
        public async Task <IActionResult> LNMO(IFormCollection collection)
        {
            LipaNaMpesaOnlineDto lipaOnline = new LipaNaMpesaOnlineDto
                                              (
                _configuration["MpesaConfiguration:LNMOshortCode"],
                DateTime.Now,
                TransactType.CustomerPayBillOnline,
                collection["amount"],
                collection["phone_number"],
                _configuration["MpesaConfiguration:LNMOshortCode"],
                collection["phone_number"],
                _configuration["MpesaConfiguration:CallBackUrl"],
                "MpesaLib Sample",
                "MpesaLib Sample",
                PassKey

                                              );

            var lipaNaMpesa = "";

            try
            {
                lipaNaMpesa = await _mpesaClient.MakeLipaNaMpesaOnlinePaymentAsync(lipaOnline, AccessToken, RequestEndPoint.LipaNaMpesaOnline);
            }
            catch (MpesaApiException ex)
            {
                _logger.LogError(ex.Content);
                return(BadRequest());
            }



            //ViewData["Message2"] = lipaNaMpesa;

            return(RedirectToAction("ShowMpesaResult", new { response = lipaNaMpesa, customerNumber = collection["phone_number"], invoicenumber = collection["invoice_number"] }));
        }