public async Task <ActionResult <CCResponse> > ProcessCharge(CCRequest request, string otp = null) { var response = await _pay.ChargeCard(request); if (!response.status) { return(Ok(response)); } else { return(null); } }
public async Task <CCResponse> ChargeCard(CCRequest request) { var response = new CCResponse(); try { PayStackApi _payApi = new PayStackApi(_configuration[Constants.PayStackKey]); decimal price = Convert.ToDecimal(request.Amount); decimal newAmount = (Convert.ToInt32(price) + 100) * 100; var req = new CardChargeRequest { Amount = newAmount.ToString(), Card = new Card { Number = request.CardNumber, Cvv = request.cardCvv, ExpiryMonth = request.cardExpiryMonth, ExpiryYear = request.cardExpiryYear }, Email = request.Email, Reference = DateTime.Now.Ticks.ToString().Substring(0, 10), Pin = request.pin }; var payAesponse = _payApi.Charge.ChargeCard(req); if (!payAesponse.Status) { throw new Exception(payAesponse?.Data?.Message); } var JsonObj = JsonConvert.SerializeObject(payAesponse); var resObj = JsonConvert.DeserializeObject <CCResponse>(JsonObj);// Variable to test if Serialized Object Holds Contents resObj.data.RealAmount = newAmount; response = resObj; } catch (Exception ec) { throw ec; } return(await Task.FromResult(response)); }
public async Task <ServiceResponseModel <CCResponse> > ChargeUserCard(CCRequest req) { try { //var response = await _http.PostAsync<CCResponse>(baseUrl: StaticAppSettings.MeterAfBaseUrl, postdata: req, url: "/api/charge/charge/card"); PayServices ps = new PayServices(_configuration, _http, _responseService); var response = ps.ChargeCard(req).Result; if (response.status) { return(_responseService.SuccessResponse <CCResponse>("Success! card Charged", response)); } else { return(_responseService.ErroResponse <CCResponse>("Unabe to charge card")); } } catch (Exception ex) { throw ex; } }