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);
            }
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
 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;
     }
 }