示例#1
0
        public async void InitiateCardChargeRequest()
        {
            //Arrange
            var req = new CardChargeRequest
            {
                User = new User
                {
                    FirstName   = "John",
                    LastName    = "Doe",
                    Email       = "*****@*****.**",
                    IP          = "192.168.33.10",
                    FingerPrint = "cccvxbxbxb"
                },
                Card = new Card
                {
                    CardNumber  = "5438898014560229",
                    ExpiryMonth = "09",
                    ExpiryYear  = "19",
                    CCV         = "789",
                    Pin         = "3310"
                },
                Amount   = "10000",
                Country  = "NG",
                Currency = "NGN"
            };

            //Act
            var res = await _gladepayService.PutAsync <CardChargeRequest>(req);

            //Assert
            Assert.True(res.StatusCode == HttpStatusCode.Accepted);
        }
示例#2
0
        public async void ValidateChargeRequest()
        {
            //Arrange
            var res = new Response();

            var req1 = new CardChargeRequest
            {
                User = new User
                {
                    FirstName   = "John",
                    LastName    = "Doe",
                    Email       = "*****@*****.**",
                    IP          = "192.168.33.10",
                    FingerPrint = "cccvxbxbxb"
                },
                Card = new Card
                {
                    CardNumber  = "5438898014560229",
                    ExpiryMonth = "09",
                    ExpiryYear  = "19",
                    CCV         = "789",
                    Pin         = "3310"
                },
                Amount   = "10000",
                Country  = "NG",
                Currency = "NGN"
            };

            //Act
            res = await _gladepayService.PutAsync <CardChargeRequest>(req1);

            Debug.WriteLine(res.Data);

            var req = new CardChargeValidationRequest
            {
                OTP    = "123456",
                TxnRef = res.Data["txnRef"].ToString()
            };

            res = await _gladepayService.PutAsync <CardChargeValidationRequest>(req);

            //Assert
            Assert.True(res.StatusCode == HttpStatusCode.OK);
            Debug.WriteLine(res.Data);
        }
示例#3
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));
        }