public async Task <string> GenerateToken(string cardNumber, string cvv)

        {
            CardTokenRequest cardTokenRequest = new  CardTokenRequest()
            {
                cardNumber        = cardNumber,
                customerEmail     = cardRequestModel.customerEmail,
                customerMobile    = cardRequestModel.customerMobile,
                customerProfileId = cardRequestModel.customerProfileId,
                merchantCode      = cardRequestModel.merchantCode,
                cvv = cvv,
            };

            using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = new Uri("https://atfawry.fawrystaging.com//ECommerceWeb/Fawry/cards/cardToken");
                string      JsonContent    = JsonConvert.SerializeObject(cardTokenRequest);
                HttpContent requestContent = new StringContent(JsonContent, System.Text.Encoding.UTF8,
                                                               "application/json");
                HttpResponseMessage response = await client.PostAsync("https://atfawry.fawrystaging.com//ECommerceWeb/Fawry/cards/cardToken", requestContent);

                string responseContent = await response.Content.ReadAsStringAsync();

                CardTokenResponse cardTokenResponse = (CardTokenResponse)JsonConvert.DeserializeObject(responseContent);
                CardToken = cardTokenResponse.card.token;
                return(CardToken);
            }
        }
Exemple #2
0
        public void PaymentCSRetailTest()
        {
            DecidirConnector       decidir               = new DecidirConnector(Ambiente.AMBIENTE_SANDBOX, "566f2c897b5e4bfaa0ec2452f5d67f13", "b192e4cb99564b84bf5db5550112adea");
            CardDataCyberSource    data                  = GetCardDataCyberSource();
            CardTokenResponse      resultCardData        = new CardTokenResponse();
            PaymentResponse        resultPaymentResponse = new PaymentResponse();
            GetAllPaymentsResponse pagos                 = new GetAllPaymentsResponse();

            try
            {
                resultCardData = decidir.GetToken(data);

                Payment payment = GetPayment(resultCardData.id);
                payment.fraud_detection = GetRetailFraudDetection();

                resultPaymentResponse = decidir.Payment(payment);

                Assert.AreEqual(resultPaymentResponse.bin, payment.bin);
                Assert.AreEqual(resultPaymentResponse.amount, payment.amount * 100);
                Assert.AreEqual(resultPaymentResponse.site_transaction_id, payment.site_transaction_id);

                pagos = decidir.GetAllPayments(null, null, null, "00030118");

                Assert.AreEqual(true, pagos.results.Count >= 0);
            }
            catch (ResponseException ex)
            {
                Assert.AreEqual(true, false);
            }
        }
Exemple #3
0
        public void GetPaymentInfoTest()
        {
            DecidirConnector       decidir               = new DecidirConnector(Ambiente.AMBIENTE_SANDBOX, "566f2c897b5e4bfaa0ec2452f5d67f13", "b192e4cb99564b84bf5db5550112adea");
            CardData               data                  = GetCardData();
            CardTokenResponse      resultCardData        = new CardTokenResponse();
            PaymentResponse        resultPaymentResponse = new PaymentResponse();
            PaymentResponse        paymentInfoResponse   = new PaymentResponse();
            GetAllPaymentsResponse pagos                 = new GetAllPaymentsResponse();

            try
            {
                resultCardData = decidir.GetToken(data);

                Payment payment = GetPayment(resultCardData.id);

                resultPaymentResponse = decidir.Payment(payment);

                Assert.AreEqual(resultPaymentResponse.bin, payment.bin);
                Assert.AreEqual(resultPaymentResponse.amount, payment.amount * 100);
                Assert.AreEqual(resultPaymentResponse.site_transaction_id, payment.site_transaction_id);

                Thread.Sleep(4000);

                paymentInfoResponse = decidir.GetPaymentInfo(resultPaymentResponse.id);

                Assert.AreEqual(true, pagos.results.Count >= 0);
            }
            catch (ResponseException)
            {
                Assert.AreEqual(true, false);
            }
        }
Exemple #4
0
        public void PartialRefundTest()
        {
            DecidirConnector       decidir               = new DecidirConnector(Ambiente.AMBIENTE_SANDBOX, "566f2c897b5e4bfaa0ec2452f5d67f13", "b192e4cb99564b84bf5db5550112adea");
            CardData               data                  = GetCardData();
            CardTokenResponse      resultCardData        = new CardTokenResponse();
            PaymentResponse        resultPaymentResponse = new PaymentResponse();
            GetAllPaymentsResponse pagos                 = new GetAllPaymentsResponse();
            RefundResponse         refund                = new RefundResponse();

            try
            {
                resultCardData = decidir.GetToken(data);

                Payment payment = GetPayment(resultCardData.id);

                resultPaymentResponse = decidir.Payment(payment);

                Assert.AreEqual(resultPaymentResponse.bin, payment.bin);
                Assert.AreEqual(resultPaymentResponse.amount, payment.amount * 100);
                Assert.AreEqual(resultPaymentResponse.site_transaction_id, payment.site_transaction_id);

                //Wait for Refund
                Thread.Sleep(5000);
                refund = decidir.PartialRefund(resultPaymentResponse.id, 1000);

                Assert.AreEqual(1000 * 100, refund.amount);
                Assert.AreEqual("approved", refund.status);
            }
            catch (Exception)
            {
                Assert.AreEqual(true, false);
            }
        }
Exemple #5
0
        public void GetTokenTest()
        {
            DecidirConnector decidir = new DecidirConnector(Ambiente.AMBIENTE_SANDBOX, "566f2c897b5e4bfaa0ec2452f5d67f13", "b192e4cb99564b84bf5db5550112adea");
            CardData         data    = new CardData();

            data.card_number                       = "4507990000004905";
            data.card_expiration_month             = "08";
            data.card_expiration_year              = "20";
            data.security_code                     = "123";
            data.card_holder_name                  = "John Doe";
            data.card_holder_identification.type   = "dni";
            data.card_holder_identification.number = "25123456";

            CardTokenResponse result = decidir.GetToken(data);

            Assert.AreEqual("450799", result.bin);
        }
Exemple #6
0
        public async Task CanTokenizeCard()
        {
            CardTokenRequest request = CreateValidRequest();

            CardTokenResponse token = await _api.Tokens.RequestAsync(request);

            token.ShouldNotBeNull();
            token.Token.ShouldNotBeNullOrEmpty();
            token.ExpiresOn.ShouldBeGreaterThan(DateTime.UtcNow);
            token.BillingAddress.ShouldNotBeNull();
            token.BillingAddress.AddressLine1.ShouldBe(request.BillingAddress.AddressLine1);
            token.BillingAddress.AddressLine2.ShouldBe(request.BillingAddress.AddressLine2);
            token.BillingAddress.City.ShouldBe(request.BillingAddress.City);
            token.BillingAddress.State.ShouldBe(request.BillingAddress.State);
            token.BillingAddress.Zip.ShouldBe(request.BillingAddress.Zip);
            token.BillingAddress.Country.ShouldBe(request.BillingAddress.Country);
            token.Phone.ShouldNotBeNull();
            token.Phone.CountryCode.ShouldBe(request.Phone.CountryCode);
            token.Phone.Number.ShouldBe(request.Phone.Number);
            token.Type.ShouldBe("card");
            token.ExpiryMonth.ShouldBe(request.ExpiryMonth);
            token.ExpiryYear.ShouldBe(request.ExpiryYear);
        }