Exemple #1
0
        public static ServiceProvider.OrderSvc.Address_V01 CreateDefaultAddress()
        {
            var address = new ServiceProvider.OrderSvc.Address_V01();

            address.Country                = "US";
            address.Line1                  = "950 West 190th St.,";
            address.City                   = "Torrance";
            address.PostalCode             = "90502-1001";
            address.StateProvinceTerritory = "CA";
            return(address);
        }
        public override List <Payment> GetPayments(ServiceProvider.OrderSvc.Address_V01 shippingAddress)
        {
            var paymentList = new List <Payment>();

            CheckForPaymentGatewayResponse();
            var choice = GetCurrentPaymentOption();

            switch (choice)
            {
            case PaymentOptionChoice.DirectDeposit:
            case PaymentOptionChoice.WireTransfer:
            case PaymentOptionChoice.PaymentGateway:
            {
                paymentList.Add(CreateDummyPayment(shippingAddress));
                break;
            }

            case PaymentOptionChoice.CreditCard:
            {
                var paymentInfo = GetCurrentPaymentInformation(_locale, _distributorId);

                foreach (GridViewRow row in gridViewCardInfo.Rows)
                {
                    var cardType       = row.FindControl("lblCardType") as Label;
                    var lblIssueNumber = row.FindControl("lblIssueNumber") as TextBox;
                    var txtCVV         = row.FindControl("txtCVV") as TextBox;
                    var txtAmount      = row.FindControl("txtAmount") as TextBox;
                    var id             = row.FindControl("cardID") as TextBox;
                    var payOption      = row.FindControl("txtOption") as TextBox;
                    var choice1        = row.FindControl("txtChoice1") as TextBox;
                    var choice2        = row.FindControl("txtChoice2") as TextBox;
                    var ddInstallments = (DropDownList)row.FindControl("drpInstallments");
                    var currentOptions = row.FindControl("lnkPaymentOptions") as LinkButton;
                    int cardID         = int.Parse(id.Text);
                    var ddBCPoints     = row.FindControl("drpUsePoints") as DropDownList;

                    decimal cardAmount;
                    if (decimal.TryParse(txtAmount.Text, out cardAmount) && cardID > 0)
                    {
                        var info = paymentInfo.Find(p => p.ID == cardID);

                        var thePayment = new CreditPayment();
                        if (info.CardType.Trim() == "국민카드" || info.CardType.Trim() == "비씨카드")
                        {
                            var payment = new KoreaISPPayment_V01();
                            payment.Amount = cardAmount;
                            payment.AuthorizationMethod = AuthorizationMethodType.Online;
                            payment.Card = new CreditCard();
                            payment.Card.AccountNumber = info.CardNumber;
                            payment.Card.NameOnCard    = (info.CardHolder.First.Trim() + " " + info.CardHolder.Last.Trim()).Trim();
                            payment.Card.Expiration    = info.Expiration;
                            payment.Card.CVV           = txtCVV.Text.Trim();
                            payment.Currency           = HLConfigManager.Configurations.CheckoutConfiguration.Currency.Trim();
                            payment.Address            = (null != info.BillingAddress) ? info.BillingAddress : shippingAddress;
                            payment.BCTopPoints        = info.CardType.Trim() == "국민카드" ? int.Parse(ddBCPoints.SelectedValue) : 0;
                            var options = new PaymentOptions_V01();
                            options.NumberOfInstallments = int.Parse(ddInstallments.SelectedValue) + payment.BCTopPoints;
                            payment.PaymentOptions       = options;
                            payment.KvpEncryptedData     = info.IssueNumber;
                            payment.Card.IssuingBankID   = info.CardType;
                            payment.KvpSessionKey        = "FA";

                            thePayment = payment;
                        }
                        else
                        {
                            var payment = new KoreaMPIPayment_V01();
                            payment.Amount = cardAmount;
                            payment.AuthorizationMethod = AuthorizationMethodType.Online;
                            payment.Card = new CreditCard();
                            payment.Card.AccountNumber = info.CardNumber;
                            payment.Card.NameOnCard    = (info.CardHolder.First.Trim() + " " + info.CardHolder.Last.Trim()).Trim();
                            payment.Card.Expiration    = info.Expiration;
                            payment.Card.CVV           = txtCVV.Text.Trim();
                            payment.Currency           = HLConfigManager.Configurations.CheckoutConfiguration.Currency.Trim();
                            payment.Address            = (null != info.BillingAddress) ? info.BillingAddress : shippingAddress;
                            var options = new PaymentOptions_V01();
                            options.NumberOfInstallments = int.Parse(ddInstallments.SelectedValue);
                            payment.PaymentOptions       = options;
                            payment.CAVV = info.IssueNumber;
                            payment.Card.IssuingBankID = info.CardType;
                            payment.ECI = "";
                            payment.XID = "FA";

                            thePayment = payment;
                        }

                        thePayment.ReferenceID = currentOptions.Text;
                        paymentList.Add(thePayment);
                    }
                }
                break;
            }
            }

            string currentKey = PaymentsConfiguration.GetCurrentPaymentSessionKey(_locale, _distributorId);

            Session[currentKey] = paymentList;
            return(paymentList);
        }