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); }
protected void OnAuthorizeAttempt(object sender, EventArgs e) { string xid = XID.Value; string eci = ECI.Value; string cavv = CAVV.Value; string sessionKey = SessionKey.Value; string encData = EncryptedData.Value; string cardNumber = CardNumber.Value; var item = dataListCardInfo.Items[dataListCardInfo.Items.Count - 1].FindControl("creditPaymentInfo") as PaymentInfoControl_KS; var txtId = item.FindControl("txtId") as TextBox; var txtAmount = item.FindControl("txtAmount") as TextBox; var txtCardholderName = item.FindControl("txtCardholderName") as TextBox; var txtPaymentMethod = item.FindControl("txtPaymentMethodType") as TextBox; var ddlCardType = item.FindControl("ddlCardType") as DropDownList; var ddlInstallments = item.FindControl("ddlInstallments") as DropDownList; var ddlBCPoints = item.FindControl("ddlBCPoint") as DropDownList; CreditPayment thePayment = null; if (txtPaymentMethod.Text == "XMPI") { if (!string.IsNullOrEmpty((xid + eci + cavv))) { var payment = new KoreaMPIPayment_V01(); payment.Amount = decimal.Parse(txtAmount.Text); payment.AuthorizationMethod = AuthorizationMethodType.Online; payment.Card = new CreditCard(); payment.Card.AccountNumber = cardNumber; payment.Card.NameOnCard = txtCardholderName.Text; payment.Card.Expiration = new DateTime(2049, 12, 31); payment.Currency = CurrencyType.KRW.Key; payment.XID = xid; payment.CAVV = cavv; payment.ECI = eci; var options = new PaymentOptions_V01(); options.NumberOfInstallments = int.Parse(ddlInstallments.SelectedValue); payment.PaymentOptions = options; payment.AuthorizationCode = "123456"; thePayment = payment; } } else { if (!string.IsNullOrEmpty((sessionKey + encData))) { var payment = new KoreaISPPayment_V01(); payment.LineID = txtId.Text; payment.Amount = decimal.Parse(txtAmount.Text); payment.AuthorizationMethod = AuthorizationMethodType.Online; payment.Card = new CreditCard(); payment.Card.AccountNumber = PaymentInfoProvider.VisaCardNumber; payment.Card.NameOnCard = txtCardholderName.Text; payment.Card.Expiration = new DateTime(2049, 12, 31); payment.Currency = HL.Common.ValueObjects.CurrencyType.KRW.Key; payment.KvpEncryptedData = encData; // "sdfsdfhsdfgsdgfsdfgsdfgsdfgsdfgsdfgsdfgsdfg;jtrtgowrhgiwerhgifhgldkfjgvs;dofgjvsdfvhdfvhsldihvrlserhgew;jgdfgnkfvnkdzs,n.x,cbn"; // encData; payment.KvpSessionKey = sessionKey; // "yaoieyrboacryserivnpeiorugnpxm,posijfpxfbjzx;cvzx;c mzclvk nzkchvado;fjivga'dfivhjadofvhad;fvha;uisdvhasdcbx.vlkc;'vndgtohuwpsrotuywpergynbsactyserngisrcuyudrfhxonzisudhfbxaiufheowrhcfisdfuhvsdofihjv"; // sessionKey; payment.BCTopPoints = int.Parse(ddlBCPoints.SelectedValue); ; var options = new PaymentOptions_V01(); options.NumberOfInstallments = int.Parse(ddlInstallments.SelectedValue) + payment.BCTopPoints; payment.PaymentOptions = options; payment.AuthorizationCode = "123456"; thePayment = payment; } } if (null != thePayment) { thePayment.Card.IssuingBankID = ddlCardType.SelectedItem.Text; thePayment.Address = new Address_V01(); if (string.IsNullOrEmpty(thePayment.AuthorizationCode)) { //lblCreditCardMessage.Text = GetLocalResourceObject("ValidateCardPaymentAuthFailedMessage") as string; } else { var items = GetPaymentInformation(); var p = (from c in items where c.LineID == thePayment.LineID select c); if (p.Count() > 0) { int index = items.IndexOf(p.First()); items.RemoveAt(index); items.Insert(index, thePayment); } else { items.Insert(0, thePayment); } SetPaymentInformation(items); _CurrentPaymentsList = GetCurrentCardsList(); dataListCardInfo.DataSource = _CurrentPaymentsList; dataListCardInfo.DataBind(); ResolvePayments(); SetupGridRows(); var status = OrderCoveredStatus.PartiallyCovered; var tot = (from c in _CurrentPaymentsList where !string.IsNullOrEmpty(c.AuthorizationCode) select c.Amount) .Sum(); if (null != _orderTotals && tot == _orderTotals.AmountDue) { status = OrderCoveredStatus.FullyCovered; } OnCreditCardAuthenticated(thePayment, new CreditCardAuthenticationCompletedEventArgs(status)); } } }