示例#1
0
        public async Task <IActionResult> SimulateC2B()
        {
            C2BRequest c2BRequest = new C2BRequest
            {
                Amount        = "10",
                Msisdn        = "254712345678",
                BillRefNumber = "UDF9FDKJ98",
                ShortCode     = "600214"
            };

            Mpesa mpesa    = new Mpesa();
            var   response = await mpesa.C2BAsync(_options.ConsumerKey, _options.ConsumerSecret, c2BRequest);

            return(Json(response));
        }
        public async Task <Object> ProcessTransaction1(C2BRequest 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/c2b/v1/simulate", httpContent).Result;

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

            return(response);
        }
        public void ProcessTransaction(C2BRequest 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;
            }
        }
示例#4
0
        public async Task <string[]> C2BAsync(string consumerKey, string consumersecret, C2BRequest c2BRequest, bool isSandbox = true)
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

            c2BRequest.CommandID = "CustomerPayBillOnline";
            JObject jObject = JObject.FromObject(c2BRequest);

            string auth    = Authenticate(consumerKey, consumersecret, isSandbox);
            string baseUrl = getBaseUrl(isSandbox);

            return(await SendApiRequestAsync(auth, baseUrl, "mpesa/c2b/v1/simulate", jObject));
        }