Пример #1
0
        public async Task Retrieve_an_existing_payment()
        {
            var request = new AuthoriseRequest()
            {
                CardDetails = new CardDetails()
                {
                    CardNumber   = "424242424242",
                    ExpiryDate   = "0129",
                    SecurityCode = "111"
                },
                MerchantAccount = "CheckoutCom",
                Amount          = 25.00m,
                CurrencyCode    = "GBP"
            };

            var authoriseResponse = await PaymentServiceClient.Authorise(request);

            var paymentResponse = await PaymentServiceClient.GetPayment(authoriseResponse.Content.Id, "CheckoutCom");

            Assert.That(paymentResponse.HttpStatusCode, Is.EqualTo(HttpStatusCode.OK));

            Assert.That(paymentResponse.Content.Id, Is.EqualTo(paymentResponse.Content.Id));
            Assert.That(paymentResponse.Content.Amount, Is.EqualTo(paymentResponse.Content.Amount));
            Assert.That(paymentResponse.Content.CurrencyCode, Is.EqualTo(paymentResponse.Content.CurrencyCode));
            Assert.That(paymentResponse.Content.Status, Is.EqualTo(paymentResponse.Content.Status));
            Assert.That(paymentResponse.Content.CardDetails.CardNumber, Is.EqualTo(paymentResponse.Content.CardDetails.CardNumber));
            Assert.That(paymentResponse.Content.CardDetails.ExpiryDate, Is.EqualTo(paymentResponse.Content.CardDetails.ExpiryDate));
            Assert.That(paymentResponse.Content.CardDetails.SecurityCode, Is.EqualTo(paymentResponse.Content.CardDetails.SecurityCode));
        }
        public async Task Payment_authorisation_failed()
        {
            var expectedRejectionRequest = new AuthoriseRequest()
            {
                CardDetails = new CardDetails()
                {
                    CardNumber   = "424242424242",
                    ExpiryDate   = "0129",
                    SecurityCode = "222"
                },
                MerchantAccount = "CheckoutCom",
                Amount          = 25.00m,
                CurrencyCode    = "GBP"
            };

            var response = await PaymentServiceClient.Authorise(expectedRejectionRequest);

            Assert.That(response.HttpStatusCode, Is.EqualTo(HttpStatusCode.UnprocessableEntity));
            Assert.NotNull(response.Content.Id);
            Assert.That(response.Content.Id, Is.Not.EqualTo("psp_reference_id"));
            Assert.That(response.Content.Status, Is.EqualTo("Failed"));
            Assert.IsNotEmpty(response.Content.Errors);

            ThenValidPaymentAndOrderBody(expectedRejectionRequest, response.Content);
        }
Пример #3
0
        public CreditCardPaymentProcessingResponse ProcessCreditCard(CreditCardRequest request)
        {
            string cardNumber = request.CardNumber;
            string swipe      = request.CardSwipe;
            var    encryptor  = new CreditCardEncryption();

            request.CardNumber = encryptor.Encrypt(cardNumber);
            request.CardSwipe  = encryptor.Encrypt(swipe);
            var returnValue = new CreditCardPaymentProcessingResponse();

            try
            {
                using (var client = new PaymentServiceClient())
                {
                    client.Open();
                    returnValue = client.ProcessCreditCard(request);
                    return(returnValue);
                }
            }
            finally
            {
                request.CardNumber     = cardNumber;
                request.CardSwipe      = swipe;
                returnValue.CardNumber = cardNumber;
            }
        }
        public string payRequestHelp(string reqId)
        {
            var ip = "jimmyMStation";//"172.16.144.70";
            var port = 6379;

            var res = string.Empty;
            using (var help = helpBase.init(ip, port,new TimeSpan(0,5,0)))
            {
                var subItem = reqId;
                var waitTime = 5000;
                res = help.inTimePaymentMethodHelp(subItem, waitTime, () =>
                {
                    var billRes = new paymentEntity();
                    using (var req = new PaymentServiceClient())
                    {
                        billRes = req.createBillHelp(new inTimeReqPara { ReqId = reqId });
                    }

                    bool flag = false;
                    if (string.IsNullOrEmpty(billRes.BillNo))
                    {
                        flag = false;
                    }
                    else
                    {
                        flag = true;
                        #region read paymentResult in cache
                        //repeated payment req
                        //if (string.IsNullOrEmpty(redisValueTmp))
                        //{
                        //    //async
                        //}
                        //else
                        //{
                        //    var payInfoTmp = redisValueTmp.FromJson<Dictionary<string, string>>();
                        //    var method = payInfoTmp["payMethod"];
                        //    var result = payInfoTmp["result"];
                        
                        //    if (payMethod.sync.Equals(result))
                        //    {
                        //        //sync
                        //    }
                        //    else
                        //    {

                        //    }
                        //}
                        #endregion
                    }

                    return flag;
                });

                //var payInfoTmp = res.FromJson<Dictionary<string, string>>();
                //var method = payInfoTmp["payMethod"];
                //var result = payInfoTmp["result"];
                return res;
            }
        }
        public async Task Payment_authorisation_with_invalid_payment()
        {
            var invalidRequest = new AuthoriseRequest();

            var response = await PaymentServiceClient.Authorise(invalidRequest);

            Assert.That(response.HttpStatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
            Assert.IsNotEmpty(response.Content.Errors);
        }
Пример #6
0
        public void processPayment(bankEntity bankEntity)
        {
            Thread.Sleep(2000);
            var res = new inTimeEntity { PaymentResult = "ok", BankEnt = new paymentService.bankEntity { PayId = bankEntity.PayId } };
            var t = Task.Factory.StartNew(() =>
            {
                using (var req = new PaymentServiceClient())
                {
                    req.paymentResultHook(res);
                }
            });

            t.Wait(100);
                
            //Thread.Sleep(3000);
            //    var res = new inTimeEntity();
            //    res.PaymentResult = "ok";
        }
Пример #7
0
        public string payRequest(string reqId)
        {
            var ip   = "jimmyMStation";//"172.16.144.70";
            var port = 6379;

            using (var help = helpBase.init(ip, port, new TimeSpan(0, 5, 0)))
            {
                var subitem  = reqId;
                var waittime = 5000;
                var t        = help.subscriberInTime(subitem, waittime);

                //request paymentsoa return billno
                var billres = new paymentEntity();
                using (var req = new PaymentServiceClient())
                {
                    billres = req.createBill(new inTimeReqPara {
                        ReqId = reqId
                    });
                }

                if (string.IsNullOrEmpty(billres.BillNo))
                {
                    return("failed");
                }
                var res = t.Result;

                var pubitem  = billres.BillNo;
                var pubvalue = string.Empty;
                //thread.sleep(30000);
                if (string.IsNullOrEmpty(res))
                {
                    pubvalue = "async";
                }
                else
                {
                    pubvalue = "sync";
                }

                help.publish(pubitem, pubvalue);


                return(res);
            }
        }
Пример #8
0
        public string payRequest(string reqId)
        {
            var ip = "jimmyMStation";//"172.16.144.70";
            var port = 6379;

            using (var help = helpBase.init(ip, port, new TimeSpan(0, 5, 0)))
            {
                var subitem = reqId;
                var waittime = 5000;
                var t = help.subscriberInTime(subitem, waittime);

                //request paymentsoa return billno
                var billres = new paymentEntity();
                using (var req = new PaymentServiceClient())
                {
                    billres = req.createBill(new inTimeReqPara { ReqId = reqId });
                }

                if (string.IsNullOrEmpty(billres.BillNo))
                {
                    return "failed";
                }
                var res = t.Result;

                var pubitem = billres.BillNo;
                var pubvalue = string.Empty;
                //thread.sleep(30000);    
                if (string.IsNullOrEmpty(res))
                {
                    pubvalue = "async";
                }
                else
                {
                    pubvalue = "sync";
                }

                help.publish(pubitem, pubvalue);


                return res;
            }
        }
Пример #9
0
        public void processPaymentHelp(bankEntity bankEntity)
        {
            Thread.Sleep(2000);
            var res = new inTimeEntity {
                PaymentResult = "ok", BankEnt = new paymentService.bankEntity {
                    PayId = bankEntity.PayId
                }
            };
            var t = Task.Factory.StartNew(() =>
            {
                using (var req = new PaymentServiceClient())
                {
                    req.paymentResultHookHelp(res);
                }
            });

            t.Wait(100);

            //Thread.Sleep(3000);
            //    var res = new inTimeEntity();
            //    res.PaymentResult = "ok";
        }
Пример #10
0
        private void loadList()
        {
            PaymentServiceClient payService = new PaymentServiceClient();

            if (IDnum == "All")
                payment = new List<Payment>(payService.GetAllPayments());
            else
                payment = new List<Payment>(payService.GetAllStudentsPayments(IDnum));

            gridView.DataSource = payment;

            GroupDescriptor descriptor = new GroupDescriptor();
            descriptor.GroupNames.Add("Student", ListSortDirection.Ascending);

            this.gridView.GroupDescriptors.Add(descriptor);

            GridViewSummaryItem summaryItem = new GridViewSummaryItem("Amount", "Total: {0}", GridAggregateFunction.Sum);

            GridViewSummaryRowItem summaryRowItem = new GridViewSummaryRowItem();
            summaryRowItem.Add(summaryItem);

            this.gridView.SummaryRowsBottom.Add(summaryRowItem);
        }
        public async Task Authorise_a_payment_successfully()
        {
            var expectedSuccessRequest = new AuthoriseRequest()
            {
                CardDetails = new CardDetails()
                {
                    CardNumber   = "424242424242",
                    ExpiryDate   = "0129",
                    SecurityCode = "111"
                },
                MerchantAccount = "CheckoutCom",
                Amount          = 25.00m,
                CurrencyCode    = "GBP"
            };

            var response = await PaymentServiceClient.Authorise(expectedSuccessRequest);

            Assert.That(response.HttpStatusCode, Is.EqualTo(HttpStatusCode.OK));
            Assert.NotNull(response.Content.Id);
            Assert.That(response.Content.Id, Is.Not.EqualTo("psp_reference_id"));
            Assert.That(response.Content.Status, Is.EqualTo("Accepted"));

            ThenValidPaymentAndOrderBody(expectedSuccessRequest, response.Content);
        }
 public CreditCardPaymentProcessingResponse CompletePreAuth(CreditCardRequest request, long invoiceNumber)
 {
     string cardNumber = request.CardNumber;
     string swipe = request.CardSwipe;
     var encryptor = new CreditCardEncryption();
     request.CardNumber = encryptor.Encrypt(cardNumber);
     request.CardSwipe = encryptor.Encrypt(swipe);
     var returnValue = new CreditCardPaymentProcessingResponse();
     try
     {
         using (var client = new PaymentServiceClient())
         {
             client.Open();
             returnValue = client.CompletePreAuth(request, invoiceNumber);
             return returnValue;
         }
     }
     finally
     {
         request.CardNumber = cardNumber;
         request.CardSwipe = swipe;
         returnValue.CardNumber = cardNumber;
     }
 }
        public string payRequestHelp(string reqId)
        {
            var ip   = "jimmyMStation";//"172.16.144.70";
            var port = 6379;

            var res = string.Empty;

            using (var help = helpBase.init(ip, port, new TimeSpan(0, 5, 0)))
            {
                var subItem  = reqId;
                var waitTime = 5000;
                res = help.inTimePaymentMethodHelp(subItem, waitTime, () =>
                {
                    var billRes = new paymentEntity();
                    using (var req = new PaymentServiceClient())
                    {
                        billRes = req.createBillHelp(new inTimeReqPara {
                            ReqId = reqId
                        });
                    }

                    bool flag = false;
                    if (string.IsNullOrEmpty(billRes.BillNo))
                    {
                        flag = false;
                    }
                    else
                    {
                        flag = true;
                        #region read paymentResult in cache
                        //repeated payment req
                        //if (string.IsNullOrEmpty(redisValueTmp))
                        //{
                        //    //async
                        //}
                        //else
                        //{
                        //    var payInfoTmp = redisValueTmp.FromJson<Dictionary<string, string>>();
                        //    var method = payInfoTmp["payMethod"];
                        //    var result = payInfoTmp["result"];

                        //    if (payMethod.sync.Equals(result))
                        //    {
                        //        //sync
                        //    }
                        //    else
                        //    {

                        //    }
                        //}
                        #endregion
                    }

                    return(flag);
                });

                //var payInfoTmp = res.FromJson<Dictionary<string, string>>();
                //var method = payInfoTmp["payMethod"];
                //var result = payInfoTmp["result"];
                return(res);
            }
        }
Пример #14
0
        public async Task Payment_not_found()
        {
            var paymentResponse = await PaymentServiceClient.GetPayment(Guid.NewGuid().ToString(), "CheckoutCom");

            Assert.That(paymentResponse.HttpStatusCode, Is.EqualTo(HttpStatusCode.NotFound));
        }