示例#1
0
		public void PayWithNewCard_Click(object o, System.EventArgs e)
		{
			CheckSslStatus();

			try
			{
				PaymentClickEventArgs paymentClickEventArgs = new PaymentClickEventArgs();
				if (PaymentClick != null)
					PaymentClick(this, paymentClickEventArgs);

				if (paymentClickEventArgs.Abort)
					return;

				if (Page.IsValid)
				{
					this.CardNumberHash = Cambro.Misc.Utility.Hash(CardNumber.Text.Replace(" ", ""));
					if (this.ValidateAndLockInvoices())
					{
						secPay = new SecPay();
						try
						{
							string cardFullName = "";
							
							
							
							string cardNumber = "";
							string cardCV2 = "";
							DateTime cardStartDate = DateTime.MinValue;
							DateTime cardExpiryDate = DateTime.MinValue;
							string cardIssueNumber = "";
							
							
							cardFullName = Name.Text;
							string cardAddressStreet = Address.Text;
							string cardAddressPostCode = Postcode.Text.ToUpper();
							string cardAddressArea = uiAddressArea.Text;
							string cardAddressTown = uiAddressTown.Text;
							string cardAddressCounty = uiAddressCounty.Text;


							int cardAddressCountryK = LockedCountryK ?? ((CountryTable.Visible && FraudCheck.Equals(Transfer.FraudCheckEnum.Strict)) ? int.Parse(CountryDropDownList.SelectedValue) : 224);
							string cardAddressCountry = (CountryTable.Visible && FraudCheck.Equals(Transfer.FraudCheckEnum.Strict)) ? CountryDropDownList.SelectedItem.Text : "UK";
							

							cardNumber = CardNumber.Text;
							cardCV2 = Cv2.Text;

							int cardEndYear = Convert.ToInt32(EndDateYear.Text.Trim());
							cardEndYear += ((cardEndYear < 80) ? 2000 : 1900);
							cardExpiryDate = new DateTime(cardEndYear, Convert.ToInt32(EndDateMonth.Text.Trim()), 1);
							if (StartDateMonth.Text.Length > 0)
							{
								int cardStartYear = Convert.ToInt32(StartDateYear.Text.Trim());
								cardStartYear += ((cardStartYear < 80) ? 2000 : 1900);
								cardStartDate = new DateTime(cardStartYear, Convert.ToInt32(StartDateMonth.Text.Trim()), 1);
							}
							if (Issue.Text.Length > 0)
								cardIssueNumber = Issue.Text;

							bool creatingInvoices = false;

							foreach (InvoiceDataHolder idh in Invoices)
							{
								creatingInvoices = idh.K == 0;

								SetInvoiceDatesUsrsGuid(idh);
							}

							int promoterK = 0;
							if (CurrentPromoter != null)
								promoterK = CurrentPromoter.K;

							if (Vars.DevEnv)
								System.Threading.Thread.Sleep(1000);

							secPay.MakePayment(
								Invoices,
								InvoiceTotalAfterBalanceAndCredit,
								CurrentUsr,
								promoterK,
								CurrentUsr.K,
								cardFullName,
								cardAddressStreet,
								cardAddressArea,
								cardAddressTown,
								cardAddressCounty,
								cardAddressCountryK,
								cardAddressPostCode,
								cardAddressCountry,
								cardNumber,
								cardExpiryDate,
								cardCV2,
								FraudCheck,
								this.SaveCardCheckBox.Checked,
								(Guid)ViewState["DuplicateGuidTransfer"],
								cardStartDate,
								cardIssueNumber);
							if (GetFullAddress)
							{
								Usr usr = Usr.Current;
								usr.AddressStreet = cardAddressStreet;
								usr.AddressTown = cardAddressTown;
								usr.AddressCounty = cardAddressCounty;
								usr.AddressCountryK = cardAddressCountryK;
								usr.AddressPostcode = cardAddressPostCode;
								usr.Update();

							}
						}
						catch (Exception ex)
						{
							ProcessingVal.ErrorMessage = RETRY_INVOICE_ERROR_MSG;
							//try
							//{
							//    this.UnlockInvoiceItems();
							//}
							//catch (Exception)
							//{ }
							ProcessException(ex, CardNumber.Text);
							return;
						}

						if (secPay.Transfer.Status.Equals(Transfer.StatusEnum.Success))
							this.ProcessSuccessfulSecPayTransfer(secPay);
						else
							this.HandleFailedSecPayTransfer(secPay);
					}
				}
				else
				{
					if (ContainerPage != null && !HideValidationSummary)
						ContainerPage.AnchorSkip(this.ClientID + "_PaymentAnchor");
				}
			}
			catch (Exception ex)
			{
				ProcessingVal.ErrorMessage = RETRY_INVOICE_ERROR_MSG;
				ProcessException(ex);
				return;
			}
		}
示例#2
0
		public void PayWithSavedCard_Click(object o, System.EventArgs e)
		{
			CheckSslStatus();

			try
			{
				if (IsValidTotal() && AllowSavedCards)
				{
					PaymentClickEventArgs paymentClickEventArgs = new PaymentClickEventArgs();
					if (PaymentClick != null)
						PaymentClick(this, paymentClickEventArgs);

					if (paymentClickEventArgs.Abort)
						return;

					if (Page.IsValid)
					{

						Transfer prevSavedTransfer = new Transfer(Convert.ToInt32(this.SavedCardDropDownList.SelectedValue));
						this.CardNumberHash = prevSavedTransfer.CardNumberHash;
						//check for duplicate invoices
						if (ValidateAndLockInvoices())
						{
							secPay = new SecPay();
							//bool creatingInvoices = false;
							//int savedTransferK = Convert.ToInt32(this.SavedCardDropDownList.SelectedValue);

							if (!CurrentUsr.CheckPassword(PasswordTextBox.Text))
							{
								ProcessingVal.IsValid = false;
								ProcessingVal.ErrorMessage = "Incorrect password";
								this.UnlockInvoiceItems();

								if (ContainerPage != null && !HideValidationSummary)
									ContainerPage.AnchorSkip(this.ClientID + "_PaymentAnchor");
							}
							else
							{
								try
								{
									foreach (InvoiceDataHolder idh in Invoices)
									{
										//creatingInvoices = idh.K == 0;
										SetInvoiceDatesUsrsGuid(idh);
									}

									secPay.MakePaymentUsingSavedTransferDetails(
										Invoices,
										InvoiceTotalAfterBalanceAndCredit,
										CurrentUsr,
										prevSavedTransfer,
										FraudCheck,
										(Guid)ViewState["DuplicateGuidTransfer"]);
								}
								catch (Exception ex)
								{
									this.ProcessingVal.ErrorMessage = RETRY_INVOICE_ERROR_MSG;
									//try
									//{
									//    this.UnlockInvoiceItems();
									//}
									//catch (Exception)
									//{ }
									this.ProcessException(ex, prevSavedTransfer.CardNumberEnd);
									return;
								}

								if (secPay.Transfer.Status.Equals(Transfer.StatusEnum.Success))
									this.ProcessSuccessfulSecPayTransfer(secPay);
								else
									this.HandleFailedSecPayTransfer(secPay);
							}
						}
					}
					else
					{
						if (ContainerPage != null && !HideValidationSummary)
							ContainerPage.AnchorSkip(this.ClientID + "_PaymentAnchor");
					}

				}
				else
				{
					// Re evaluate.
					this.Initialize();
					
				}
			}
			catch (Exception ex)
			{
				ProcessingVal.ErrorMessage = RETRY_INVOICE_ERROR_MSG;
				ProcessException(ex);
				return;
			}
			
		}