示例#1
0
        public async Task <AirtimeResponseModel> SendAirtme(AirtimeRequestModel requestObject)
        {
            AirtimeResponseModel responseModel = new AirtimeResponseModel();
            string baseUrl     = "https://sandboxapi.fsi.ng";
            string sendAirtime = "/atlabs/airtime/send";
            string url         = baseUrl + sendAirtime;

            string contentType = "application/json";

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Add("Sandbox-Key", "6fee89c336c046c4f0473d004906e3a7");

                client.DefaultRequestHeaders
                .Accept
                .Add(new MediaTypeWithQualityHeaderValue("application/json"));    //ACCEPT header

                client.DefaultRequestHeaders.Add("Accept", contentType);

                var data     = new StringContent(JsonConvert.SerializeObject(requestObject));
                var response = await client.PostAsync(url, data);

                string result = response.Content.ReadAsStringAsync().Result;

                responseModel = JsonConvert.DeserializeObject <AirtimeResponseModel>(result);

                return(responseModel);
            }
        }
示例#2
0
        public async Task <IActionResult> Purchase([FromBody] AirtimeModel airtime)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(new FailureModel {
                    ResponseCode = "90", Message = "Bad request"
                }));
            }
            var    path      = "paelyt/AirtimeTransact/BuyAirtime";
            string refNumber = Guid.NewGuid().ToString().Substring(0, 15);
            var    Airtime   = new AirtimeRequestModel
            {
                amount      = airtime.amount,
                phoneNumber = airtime.phoneNumber,
                refNumber   = refNumber,
                serviceType = airtime.serviceType,
                hashValue   = Utilities.GenerateHash(config.Value.AgentId + config.Value.AgentKey + refNumber)
            };
            var stringContent = new StringContent(JsonConvert.SerializeObject(Airtime), Encoding.UTF8, "application/json");
            var SId           = HttpContext.Session.GetString("SessionId");

            if (SId == null)
            {
                SId = await Utilities.GetSessionId(config);

                HttpContext.Session.SetString("SessionId", SId);
            }
            var resp = await Utilities.MakeCallPost(path, config, stringContent, SId);

            var res = JsonConvert.DeserializeObject <AirtimeResponseModel>(await resp.Content.ReadAsStringAsync());

            if (res.respCode != "00")
            {
                return(Ok(new FailureModel {
                    Message = res.respDescription, ResponseCode = "99"
                }));
            }
            return(Ok(new SuccessModel {
                ResponseCode = "00", Message = res.respDescription, Data = res
            }));
        }
示例#3
0
        public async Task <JsonResult> SendAirtime(AirtimeRecipient request)
        {
            var result = new AirtimeResponseModel();

            try
            {
                ApiCalls api = new ApiCalls();



                var requestObject = new AirtimeRequestModel();

                var recipient  = new AirtimeRecipient();
                var recipients = new List <AirtimeRecipient>();
                recipient.amount       = request.amount;
                recipient.currencyCode = "NGN";
                recipient.phoneNumber  = request.phoneNumber;

                requestObject.recipients = new List <AirtimeRecipient>();

                requestObject.recipients.Add(recipient);


                result = await api.SendAirtme(requestObject);

                if (result != null)
                {
                    SmsRequest smsRequest = new SmsRequest();
                    smsRequest.to      = request.phoneNumber;
                    smsRequest.from    = "FSI";
                    smsRequest.message = $"Your recharge of {request.amount} airtime is successful";

                    var resp = api.SendSms(smsRequest);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }