Пример #1
0
        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));
        }
Пример #2
0
        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));
        }