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); } }
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 })); }
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)); }