예제 #1
0
        public void CanSendDirectoryRequest()
        {
            var directoryResponse = new iDealService().SendDirectoryRequest();

            Assert.NotNull(directoryResponse);
            Assert.Greater(directoryResponse.Issuers.Count, 0);
        }
예제 #2
0
        protected void btnTransaction1_Click(object sender, EventArgs e)
        {
            try
            {
                tableError.Visible = false;
                logResult.InnerHtml = "";

                var ideal = new iDealService();

                var issuers = (IList<Issuer>) Session["issuers"];
                decimal amount = decimal.Parse(txtAmount.Value, CultureInfo.InvariantCulture);
                TransactionResponse response = ideal.SendTransactionRequest(issuers[0].Id, "http://www.your-url.com",
                    "purchaseId", amount, TimeSpan.FromMinutes(5), "Buy something for " + txtAmount.Value + " euro",
                    "myentrancecode");

                logResult.InnerHtml = string.Format("AcquirerId:{0}<br>", response.AcquirerId);
                logResult.InnerHtml += string.Format("TransactionId:{0}<br>", response.TransactionId);
                logResult.InnerHtml += string.Format("PurchaseId:{0}<br>", response.PurchaseId);
                logResult.InnerHtml += string.Format("<a href='{0}' target=='new'>complete transaction</a><br>",
                    response.IssuerAuthenticationUrl);

                Session["transactionid"] = response.TransactionId;
                EnableButtons();
            }
            catch (iDealException ex)
            {
                tableError.Visible = true;
                lblErrorCode.Text = ex.ErrorCode;
                lblErrorDetail.Text = ex.ErrorDetail;
                lblErrorMessage.Text = ex.ErrorMessage;
                lblConsumerMessage.Text = ex.ConsumerMessage;
            }
        }
예제 #3
0
        public IEnumerable <PaymentProviderMethod> GetAllPaymentMethods(int id)
        {
            var paymentProviderMethodList = new List <PaymentProviderMethod>();

            var issuers = HttpContext.Current.Cache["Issuers"] as IList <Issuer>;

            if (issuers == null)
            {
                var iDealService      = new iDealService();
                var directoryResponse = iDealService.SendDirectoryRequest();
                issuers = directoryResponse.Issuers;

                //issuerss should only be requested once a day
                HttpContext.Current.Cache.Add("Issuers", issuers, null, DateTime.Now.AddDays(1), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
            }

            paymentProviderMethodList.AddRange(issuers.Select(issuer => new PaymentProviderMethod
            {
                Id           = issuer.Id.ToString(),
                ProviderName = GetName(),
                Title        = issuer.Name,
                Description  = issuer.ListType.ToString(),
            }));


            return(paymentProviderMethodList);
        }
예제 #4
0
        protected void btnDirReq_Click(object sender, EventArgs e)
        {
            try
            {
                tableError.Visible = false;
                logResult.InnerHtml = "";

                var ideal = new iDealService();
                DirectoryResponse response = ideal.SendDirectoryRequest();
                foreach (Issuer issuer in response.Issuers)
                {
                    logResult.InnerHtml += string.Format("Issuer: ID={0} Name={1}<br/>", issuer.Id, issuer.Name);
                }
                Session["issuers"] = response.Issuers;
                EnableButtons();
            }
            catch (iDealException ex)
            {
                tableError.Visible = true;
                lblErrorCode.Text = ex.ErrorCode;
                lblErrorDetail.Text = ex.ErrorDetail;
                lblErrorMessage.Text = ex.ErrorMessage;
                lblConsumerMessage.Text = ex.ConsumerMessage;
            }
        }
예제 #5
0
        protected void btnStatus1_Click(object sender, EventArgs e)
        {
            try
            {
                tableError.Visible  = false;
                logResult.InnerHtml = "";

                var ideal    = new iDealService();
                var response = ideal.SendStatusRequest((string)Session["transactionid"]);

                logResult.InnerHtml += String.Format("Status:{0}<br>", response.Status);
                logResult.InnerHtml  = String.Format("TransactionId:{0}<br>", response.TransactionId);
                logResult.InnerHtml += String.Format("AcquirerId:{0}<br>", response.AcquirerId);
                logResult.InnerHtml += String.Format("ConsumerName:{0}<br>", response.ConsumerName);
                logResult.InnerHtml += String.Format("ConsumerIBAN:{0}<br>", response.ConsumerIBAN);
                logResult.InnerHtml += String.Format("ConsumerBIC:{0}<br>", response.ConsumerBIC);

                Session["transactionid"] = null;
                EnableButtons();
            }

            catch (iDealException ex)
            {
                tableError.Visible      = true;
                lblErrorCode.Text       = ex.ErrorCode;
                lblErrorDetail.Text     = ex.ErrorDetail;
                lblErrorMessage.Text    = ex.ErrorMessage;
                lblConsumerMessage.Text = ex.ConsumerMessage;
            }
        }
예제 #6
0
        protected void btnTransaction1_Click(object sender, EventArgs e)
        {
            try
            {
                tableError.Visible  = false;
                logResult.InnerHtml = "";

                var ideal = new iDealService();

                var issuers  = (IList <iDeal.Directory.Issuer>)Session["issuers"];
                int amount   = Int32.Parse(txtAmount.Value);
                var response = ideal.SendTransactionRequest(issuers[0].Id, "http://www.your-url.com", "purchaseId", amount, TimeSpan.FromMinutes(5), "Buy something for " + txtAmount.Value + " euro", "myentrancecode");

                logResult.InnerHtml  = String.Format("AcquirerId:{0}<br>", response.AcquirerId);
                logResult.InnerHtml += String.Format("TransactionId:{0}<br>", response.TransactionId);
                logResult.InnerHtml += String.Format("PurchaseId:{0}<br>", response.PurchaseId);
                logResult.InnerHtml += String.Format("<a href='{0}' target=='new'>complete transaction</a><br>", response.IssuerAuthenticationUrl);

                Session["transactionid"] = response.TransactionId;
                EnableButtons();
            }

            catch (iDealException ex)
            {
                tableError.Visible      = true;
                lblErrorCode.Text       = ex.ErrorCode;
                lblErrorDetail.Text     = ex.ErrorDetail;
                lblErrorMessage.Text    = ex.ErrorMessage;
                lblConsumerMessage.Text = ex.ConsumerMessage;
            }
        }
예제 #7
0
        protected void btnDirReq_Click(object sender, EventArgs e)
        {
            try
            {
                tableError.Visible  = false;
                logResult.InnerHtml = "";

                var ideal    = new iDealService();
                var response = ideal.SendDirectoryRequest();
                foreach (var issuer in response.Issuers)
                {
                    logResult.InnerHtml += String.Format("Issuer: ID={0} Name={1}<br/>", issuer.Id, issuer.Name);
                }
                Session["issuers"] = response.Issuers;
                EnableButtons();
            }

            catch (iDealException ex)
            {
                tableError.Visible      = true;
                lblErrorCode.Text       = ex.ErrorCode;
                lblErrorDetail.Text     = ex.ErrorDetail;
                lblErrorMessage.Text    = ex.ErrorMessage;
                lblConsumerMessage.Text = ex.ConsumerMessage;
            }
        }
예제 #8
0
        public void CanSendTransactionRequest()
        {
            var directoryResponse   = new iDealService().SendDirectoryRequest();
            var transactionResponse = new iDealService().SendTransactionRequest(directoryResponse.Issuers.First().Id, "http://webpirates.nl", "1", 200, TimeSpan.FromMinutes(30), "test", "test");

            Assert.NotNull(transactionResponse);
            Assert.AreEqual("1", transactionResponse.PurchaseId);
        }
예제 #9
0
        public void CanSendTransactionRequest()
        {
            var directoryResponse = new iDealService().SendDirectoryRequest();
            var transactionResponse = new iDealService().SendTransactionRequest(directoryResponse.Issuers.First().Id, "http://webpirates.nl", "1", 200, TimeSpan.FromMinutes(30), "test", "test");

            Assert.NotNull(transactionResponse);
            Assert.AreEqual("1", transactionResponse.PurchaseId);
        }
예제 #10
0
        public void CanSendStatusRequest()
        {
            var directoryResponse   = new iDealService().SendDirectoryRequest();
            var transactionResponse = new iDealService().SendTransactionRequest(directoryResponse.Issuers.First().Id, "http://www.webpirates.nl", "1", 3000, TimeSpan.FromMinutes(30), "test", "test");

            var statusResponse = new iDealService().SendStatusRequest(transactionResponse.TransactionId);

            Assert.AreEqual(Status.Status.Open, statusResponse.Status);
        }
예제 #11
0
        public void CanSendStatusRequest()
        {
            var directoryResponse = new iDealService().SendDirectoryRequest();
            var transactionResponse = new iDealService().SendTransactionRequest(directoryResponse.Issuers.First().Id, "http://www.webpirates.nl", "1", 3000, TimeSpan.FromMinutes(30), "test", "test");

            var statusResponse = new iDealService().SendStatusRequest(transactionResponse.TransactionId);

            Assert.AreEqual(Status.Status.Open, statusResponse.Status);
        }
예제 #12
0
        public void CanHandleErrorResponses()
        {
            var bogusConfiguration = new TestConfiguration
            {
                AcquirerUrl          = "https://www.ideal-simulator.nl:443/professional/",
                AcceptantCertificate = PrivateCertificate,
                AcquirerCertificate  = PublicCertificate,
                MerchantSubId        = 0,
                MerchantId           = "000000000" // faulty merchant id
            };

            Assert.Throws <iDealException>(delegate
            {
                var directoryResponse = new iDealService(bogusConfiguration).SendDirectoryRequest();
            });
        }
예제 #13
0
        public void CanHandleErrorResponses()
        {
            var bogusConfiguration = new TestConfiguration
            {
                AcquirerUrl = "https://www.ideal-simulator.nl:443/professional/",
                AcceptantCertificate = PrivateCertificate,
                AcquirerCertificate = PublicCertificate,
                MerchantSubId = 0,
                MerchantId = "000000000" // faulty merchant id
            };

            Assert.Throws<iDealException>(delegate
            {
                var directoryResponse = new iDealService(bogusConfiguration).SendDirectoryRequest();
            });
        }
예제 #14
0
        protected void btnStatus1_Click(object sender, EventArgs e)
        {
            try
            {
                tableError.Visible = false;
                logResult.InnerHtml = "";

                var ideal = new iDealService();
                StatusResponse response = ideal.SendStatusRequest((string) Session["transactionid"]);

                logResult.InnerHtml += string.Format("Status:{0}<br>", response.Status);
                logResult.InnerHtml += string.Format("TransactionId:{0}<br>", response.TransactionId);
                logResult.InnerHtml += string.Format("AcquirerId:{0}<br>", response.AcquirerId);
                logResult.InnerHtml += string.Format("ConsumerName:{0}<br>", response.ConsumerName);
                logResult.InnerHtml += string.Format("ConsumerIBAN:{0}<br>", response.ConsumerIBAN);
                logResult.InnerHtml += string.Format("ConsumerBIC:{0}<br>", response.ConsumerBIC);

                Session["transactionid"] = null;
                EnableButtons();
            }
            catch (iDealException ex)
            {
                tableError.Visible = true;
                lblErrorCode.Text = ex.ErrorCode;
                lblErrorDetail.Text = ex.ErrorDetail;
                lblErrorMessage.Text = ex.ErrorMessage;
                lblConsumerMessage.Text = ex.ConsumerMessage;
            }
        }
예제 #15
0
 public void CanSendDirectoryRequest()
 {
     var directoryResponse = new iDealService().SendDirectoryRequest();
     Assert.NotNull(directoryResponse);
     Assert.Greater(directoryResponse.Issuers.Count, 0);
 }