public static bool IsPaymentGatewayPreSelectRequired(PaymentGatewayInfo[] objPaymentGatewayInfos, HotelBookingPaymentAllocation[] objHotelBookingPaymentAllocations) { if (WBSPGHelper.BookingIsGuaranteeOnly(objHotelBookingPaymentAllocations)) return false; if (objPaymentGatewayInfos == null || objPaymentGatewayInfos.Length <= 1) return false; bool bPaymentGatewayCapturesCardDetails = false; for (int i = 0; i < objPaymentGatewayInfos.Length; i++) { if (objPaymentGatewayInfos[i].Mode == PaymentGatewayMode.PaymentGatewayCapturesCardDetails) { bPaymentGatewayCapturesCardDetails = true; break; } } if (!bPaymentGatewayCapturesCardDetails) return false; return true; }
public static bool IsOnlineCardType(PaymentGatewayInfo[] objPaymentGatewayInfos, string strPaymentCardType) { if (strPaymentCardType == "XX") return true; PaymentGatewayInfo objPaymentGatewayInfo = GetPaymentGatewayByCardType(objPaymentGatewayInfos, strPaymentCardType); if (objPaymentGatewayInfo != null) return true; return false; }
public static bool IsOnlinePayment(PaymentGatewayInfo[] objPaymentGatewayInfos, HotelBookingPaymentAllocation[] objHotelBookingPaymentAllocations, string strPaymentCardType) { if (WBSPGHelper.BookingIsGuaranteeOnly(objHotelBookingPaymentAllocations)) return false; if (!WBSPGHelper.IsOnlineCardType(objPaymentGatewayInfos, strPaymentCardType)) return false; return true; }
public static PaymentGatewayInfo GetPaymentGatewayByCardType(PaymentGatewayInfo[] objPaymentGatewayInfos, string strPaymentCardType) { PaymentGatewayInfo objPaymentGatewayInfo = null; if (objPaymentGatewayInfos != null) { for (int i = 0; i < objPaymentGatewayInfos.Length; i++) { for (int j = 0; j < objPaymentGatewayInfos[i].AcceptedCardTypes.Length; j++) { if (objPaymentGatewayInfos[i].AcceptedCardTypes[j] == strPaymentCardType) { objPaymentGatewayInfo = objPaymentGatewayInfos[i]; break; } } } } return objPaymentGatewayInfo; }
public static PaymentGatewayInfo[] GetPaymentGatewayInfos(string strHotelCode) { List<PaymentGatewayInfo> lPaymentGatewayInfos = new List<PaymentGatewayInfo>(); int intNumPaymentGatewayInfos = 0; if (ConfigurationManager.AppSettings["PaymentGatewayCount"] != "") { try { intNumPaymentGatewayInfos = Convert.ToInt32(ConfigurationManager.AppSettings["PaymentGatewayCount"]); } catch { intNumPaymentGatewayInfos = 0; } } for (int i = 0; i < intNumPaymentGatewayInfos; i++) { string strPaymentGatewayInfo = ConfigurationManager.AppSettings["PaymentGateway" + ((int)(i + 1)).ToString()]; if (strPaymentGatewayInfo != "") { string[] saPaymentGatewayInfo = strPaymentGatewayInfo.Split(new char[] { ';' }); for (int j = 0; j < saPaymentGatewayInfo.Length; j++) saPaymentGatewayInfo[j] = saPaymentGatewayInfo[j].Replace("^semicolon^", ";"); // de-escape occurance of ";" (used as data and not delimiter) in info string if (saPaymentGatewayInfo.Length < 2) continue; if (strHotelCode == null || strHotelCode == "" || saPaymentGatewayInfo[0] != strHotelCode) continue; PaymentGatewayInfo objPaymentGatewayInfo = new PaymentGatewayInfo(); if (saPaymentGatewayInfo[1] == "cba") { if (saPaymentGatewayInfo.Length != 7) continue; objPaymentGatewayInfo.Type = PaymentGatewayType.CBA; objPaymentGatewayInfo.Mode = PaymentGatewayMode.MerchantSiteCapturesCardDetails; objPaymentGatewayInfo.ConfigurationParameters = new string[5]; objPaymentGatewayInfo.ConfigurationParameters[CBA_MERCHANT_ID] = saPaymentGatewayInfo[2]; objPaymentGatewayInfo.ConfigurationParameters[CBA_MERCHANT_ACCESS_CODE] = saPaymentGatewayInfo[3]; objPaymentGatewayInfo.ConfigurationParameters[CBA_SECURE_HASH_SECRET] = saPaymentGatewayInfo[4]; objPaymentGatewayInfo.ConfigurationParameters[CBA_API_USER_NAME] = saPaymentGatewayInfo[5]; objPaymentGatewayInfo.ConfigurationParameters[CBA_API_USER_PASSWORD] = saPaymentGatewayInfo[6]; objPaymentGatewayInfo.AcceptedCardTypes = WBSPGHelper.GetAcceptedCardTypes(PaymentGatewayType.CBA, strHotelCode); objPaymentGatewayInfo.SubmitPaymentURL = "~/payment_gateways/cba/SubmitPayment.aspx"; lPaymentGatewayInfos.Add(objPaymentGatewayInfo); } else if (saPaymentGatewayInfo[1] == "ogone") { if (saPaymentGatewayInfo.Length != 6) continue; objPaymentGatewayInfo.Type = PaymentGatewayType.Ogone; objPaymentGatewayInfo.Mode = PaymentGatewayMode.MerchantSiteCapturesCardDetails; objPaymentGatewayInfo.ConfigurationParameters = new string[4]; objPaymentGatewayInfo.ConfigurationParameters[OGONE_MERCHANT_ID] = saPaymentGatewayInfo[2]; objPaymentGatewayInfo.ConfigurationParameters[OGONE_USER_ID] = saPaymentGatewayInfo[3]; objPaymentGatewayInfo.ConfigurationParameters[OGONE_USER_PASSWORD] = saPaymentGatewayInfo[4]; objPaymentGatewayInfo.ConfigurationParameters[OGONE_SECURE_SECRET] = saPaymentGatewayInfo[5]; objPaymentGatewayInfo.AcceptedCardTypes = WBSPGHelper.GetAcceptedCardTypes(PaymentGatewayType.Ogone, strHotelCode); objPaymentGatewayInfo.SubmitPaymentURL = "~/payment_gateways/ogone/SubmitPayment.aspx"; lPaymentGatewayInfos.Add(objPaymentGatewayInfo); } else if (saPaymentGatewayInfo[1] == "bnz") { if (saPaymentGatewayInfo.Length != 5) continue; objPaymentGatewayInfo.Type = PaymentGatewayType.BNZ; objPaymentGatewayInfo.Mode = PaymentGatewayMode.MerchantSiteCapturesCardDetails; objPaymentGatewayInfo.ConfigurationParameters = new string[3]; objPaymentGatewayInfo.ConfigurationParameters[BNZ_MERCHANT_ID] = saPaymentGatewayInfo[2]; objPaymentGatewayInfo.ConfigurationParameters[BNZ_CLIENT_CERT_PATH] = saPaymentGatewayInfo[3]; objPaymentGatewayInfo.ConfigurationParameters[BNZ_CLIENT_CERT_PASSWORD] = saPaymentGatewayInfo[4]; objPaymentGatewayInfo.AcceptedCardTypes = WBSPGHelper.GetAcceptedCardTypes(PaymentGatewayType.BNZ, strHotelCode); objPaymentGatewayInfo.SubmitPaymentURL = "~/payment_gateways/bnz/SubmitPayment.aspx"; lPaymentGatewayInfos.Add(objPaymentGatewayInfo); } else if (saPaymentGatewayInfo[1] == "dibs") { if (saPaymentGatewayInfo.Length != 7) continue; objPaymentGatewayInfo.Type = PaymentGatewayType.DIBS; objPaymentGatewayInfo.Mode = PaymentGatewayMode.PaymentGatewayCapturesCardDetails; objPaymentGatewayInfo.ConfigurationParameters = new string[5]; objPaymentGatewayInfo.ConfigurationParameters[DIBS_MERCHANT_ID] = saPaymentGatewayInfo[2]; objPaymentGatewayInfo.ConfigurationParameters[DIBS_SECURE_SECRET_1] = saPaymentGatewayInfo[3]; objPaymentGatewayInfo.ConfigurationParameters[DIBS_SECURE_SECRET_2] = saPaymentGatewayInfo[4]; objPaymentGatewayInfo.ConfigurationParameters[DIBS_CURRENCY_CODE_NUMBER] = saPaymentGatewayInfo[5]; objPaymentGatewayInfo.ConfigurationParameters[DIBS_SYSTEM_MODE] = saPaymentGatewayInfo[6]; objPaymentGatewayInfo.AcceptedCardTypes = WBSPGHelper.GetAcceptedCardTypes(PaymentGatewayType.DIBS, strHotelCode); objPaymentGatewayInfo.SubmitPaymentURL = "~/payment_gateways/dibs/SubmitPayment.aspx"; lPaymentGatewayInfos.Add(objPaymentGatewayInfo); } else if (saPaymentGatewayInfo[1] == "migs3p") { if (saPaymentGatewayInfo.Length != 9) continue; objPaymentGatewayInfo.Type = PaymentGatewayType.MIGS3P; objPaymentGatewayInfo.Mode = PaymentGatewayMode.PaymentGatewayCapturesCardDetails; objPaymentGatewayInfo.ConfigurationParameters = new string[7]; objPaymentGatewayInfo.ConfigurationParameters[MIGS3P_MERCHANT_ID] = saPaymentGatewayInfo[2]; objPaymentGatewayInfo.ConfigurationParameters[MIGS3P_MERCHANT_ACCESS_CODE] = saPaymentGatewayInfo[3]; objPaymentGatewayInfo.ConfigurationParameters[MIGS3P_SECURE_HASH_SECRET] = saPaymentGatewayInfo[4]; objPaymentGatewayInfo.ConfigurationParameters[MIGS3P_API_USER_NAME] = saPaymentGatewayInfo[5]; objPaymentGatewayInfo.ConfigurationParameters[MIGS3P_API_USER_PASSWORD] = saPaymentGatewayInfo[6]; objPaymentGatewayInfo.ConfigurationParameters[MIGS3P_AVS_ACTIVE] = saPaymentGatewayInfo[7]; objPaymentGatewayInfo.ConfigurationParameters[MIGS3P_AVS_RETURN_CODES] = saPaymentGatewayInfo[8]; objPaymentGatewayInfo.AcceptedCardTypes = WBSPGHelper.GetAcceptedCardTypes(PaymentGatewayType.MIGS3P, strHotelCode); objPaymentGatewayInfo.SubmitPaymentURL = "~/payment_gateways/migs3p/SubmitPayment.aspx"; lPaymentGatewayInfos.Add(objPaymentGatewayInfo); } else if (saPaymentGatewayInfo[1] == "hdfc") { if (saPaymentGatewayInfo.Length != 4) continue; objPaymentGatewayInfo.Type = PaymentGatewayType.HDFC; objPaymentGatewayInfo.Mode = PaymentGatewayMode.PaymentGatewayCapturesCardDetails; objPaymentGatewayInfo.ConfigurationParameters = new string[2]; objPaymentGatewayInfo.ConfigurationParameters[HDFC_TID_ALIAS] = saPaymentGatewayInfo[2]; objPaymentGatewayInfo.ConfigurationParameters[HDFC_TID_RESOURCE_PATH] = saPaymentGatewayInfo[3]; objPaymentGatewayInfo.AcceptedCardTypes = WBSPGHelper.GetAcceptedCardTypes(PaymentGatewayType.HDFC, strHotelCode); objPaymentGatewayInfo.SubmitPaymentURL = "~/payment_gateways/hdfc/SubmitPayment.aspx"; lPaymentGatewayInfos.Add(objPaymentGatewayInfo); } else continue; } } return lPaymentGatewayInfos.ToArray(); }
public static string[] GetPaymentGatewayAcceptedCardTypes(PaymentGatewayInfo[] objPaymentGatewayInfos) { List<string> lPaymentGatewayAcceptedCardTypes = new List<string>(); if (objPaymentGatewayInfos != null) { for (int i = 0; i < objPaymentGatewayInfos.Length; i++) { if (objPaymentGatewayInfos[i].Mode == PaymentGatewayMode.MerchantSiteCapturesCardDetails) lPaymentGatewayAcceptedCardTypes.AddRange(objPaymentGatewayInfos[i].AcceptedCardTypes); } } return lPaymentGatewayAcceptedCardTypes.ToArray(); }
public static HotelPaymentRQ GetHotelPaymentRQ(PaymentGatewayInfo objPaymentGatewayInfo, HotelBookingPaymentAllocation[] objHotelBookingPaymentAllocations, HotelDescriptiveInfo objHotelDescriptiveInfo, GuestDetailsEntryInfo objGuestDetailsEntryInfo, string strCultureCode, string strUICultureCode) { HotelPaymentRQ objHotelPaymentRQ = new HotelPaymentRQ(); objHotelPaymentRQ.RequestTransID = Guid.NewGuid().ToString(); objHotelPaymentRQ.PaymentGateway = objPaymentGatewayInfo; objHotelPaymentRQ.PaymentType = PaymentType.Payment; objHotelPaymentRQ.PaymentMethod = PaymentMethod.PaymentCard; objHotelPaymentRQ.PaymentAmounts = objHotelBookingPaymentAllocations; objHotelPaymentRQ.PaymentTransRefID = DateTime.UtcNow.Ticks.ToString("00000000000000000000"); objHotelPaymentRQ.PaymentTransInfo = "Hotel Accommodation"; objHotelPaymentRQ.PaymentCard = new HotelBookingPaymentCard(); if (objPaymentGatewayInfo.Mode == PaymentGatewayMode.MerchantSiteCapturesCardDetails) { objHotelPaymentRQ.PaymentCard.PaymentCardType = objGuestDetailsEntryInfo.PaymentCardType; objHotelPaymentRQ.PaymentCard.PaymentCardNumber = objGuestDetailsEntryInfo.PaymentCardNumber; objHotelPaymentRQ.PaymentCard.PaymentCardHolder = objGuestDetailsEntryInfo.PaymentCardHolder; objHotelPaymentRQ.PaymentCard.PaymentCardEffectiveDate = objGuestDetailsEntryInfo.PaymentCardEffectiveDate; objHotelPaymentRQ.PaymentCard.PaymentCardExpireDate = objGuestDetailsEntryInfo.PaymentCardExpireDate; objHotelPaymentRQ.PaymentCard.PaymentCardIssueNumber = objGuestDetailsEntryInfo.PaymentCardIssueNumber; objHotelPaymentRQ.PaymentCard.PaymentCardSecurityCode = objGuestDetailsEntryInfo.PaymentCardSecurityCode; } else if (objPaymentGatewayInfo.Mode == PaymentGatewayMode.PaymentGatewayCapturesCardDetails) { objHotelPaymentRQ.PaymentCard.PaymentCardType = ""; objHotelPaymentRQ.PaymentCard.PaymentCardNumber = ""; objHotelPaymentRQ.PaymentCard.PaymentCardHolder = ""; objHotelPaymentRQ.PaymentCard.PaymentCardEffectiveDate = ""; objHotelPaymentRQ.PaymentCard.PaymentCardExpireDate = ""; objHotelPaymentRQ.PaymentCard.PaymentCardIssueNumber = ""; objHotelPaymentRQ.PaymentCard.PaymentCardSecurityCode = ""; } objHotelPaymentRQ.HotelCode = objHotelDescriptiveInfo.HotelCode; objHotelPaymentRQ.CurrencyCode = objHotelDescriptiveInfo.CurrencyCode; objHotelPaymentRQ.CultureCode = strCultureCode; objHotelPaymentRQ.UICultureCode = strUICultureCode; return objHotelPaymentRQ; }
public bool IsCreditCardInfoRequired(HotelAvailabilityRS objHotelAvailabilityRS, RoomRateSelection[] objRoomRateSelections, PaymentGatewayInfo objPaymentGatewayInfo, bool bProfileGuaranteeRequested) { bool bRequired = false; for (int i = 0; i < objRoomRateSelections.Length; i++) { HotelRoomAvailInfo objHotelRoomAvailInfo = this.GetHotelRoomAvailInfo(objHotelAvailabilityRS.HotelRoomAvailInfos, objRoomRateSelections[i].RoomRefID); HotelAvailRatePlan objHotelAvailRatePlan = this.GetRatePlanInfo(objHotelRoomAvailInfo.RatePlans, objRoomRateSelections[i].RatePlanCode); if (objHotelAvailRatePlan.GuaranteeType == GuaranteeType.CCDCVoucher && !bProfileGuaranteeRequested) { bRequired = true; break; } else if (objHotelAvailRatePlan.GuaranteeType == GuaranteeType.Deposit || objHotelAvailRatePlan.GuaranteeType == GuaranteeType.PrePay) { if (objPaymentGatewayInfo == null || objPaymentGatewayInfo.Mode == PaymentGatewayMode.MerchantSiteCapturesCardDetails) { bRequired = true; break; } } } return bRequired; }
protected void btnPaymentGatewaySelect_Click(object sender, EventArgs e) { PaymentGatewayInfo objPaymentGatewayInfo = null; for (int i = 0; i < _PaymentGatewayInfos.Length; i++) { if (_PaymentGatewayInfos[i].Type.ToString() == ddlPaymentGatewaySelect.SelectedValue) { objPaymentGatewayInfo = _PaymentGatewayInfos[i]; break; } } if (objPaymentGatewayInfo != null) { _SelectedPaymentGateway = objPaymentGatewayInfo; PaymentGatewayPreSelectCompleted(this, new EventArgs()); } return; }
protected void btnConfirmBooking_Click(object sender, EventArgs e) { GuestDetailsEntryInfo objGuestDetailsEntryInfo = new GuestDetailsEntryInfo(); objGuestDetailsEntryInfo.NamePrefix = ddlNamePrefix.Text.Trim(); objGuestDetailsEntryInfo.FirstName = tbFirstName.Text.Trim(); objGuestDetailsEntryInfo.LastName = tbLastName.Text.Trim(); objGuestDetailsEntryInfo.Email = tbEmail.Text.Trim(); objGuestDetailsEntryInfo.EmailConfirmEntry = tbConfirmEmail.Text.Trim(); objGuestDetailsEntryInfo.Phone = tbTelephone.Text.Trim(); objGuestDetailsEntryInfo.Fax = ""; objGuestDetailsEntryInfo.Address1 = tbAddress1.Text.Trim(); objGuestDetailsEntryInfo.Address2 = tbAddress2.Text.Trim(); objGuestDetailsEntryInfo.StateRegion = tbStateRegion.Text.Trim(); objGuestDetailsEntryInfo.City = tbCity.Text.Trim(); objGuestDetailsEntryInfo.PostalCode = tbPostalCode.Text.Trim(); objGuestDetailsEntryInfo.SpecialInstructions = tbSpecialInstructions.Text.Trim(); objGuestDetailsEntryInfo.CompanyName = tbCompanyName.Text.Trim(); objGuestDetailsEntryInfo.TravelAgencyIATA = tbTravelAgencyIATA.Text.Trim(); objGuestDetailsEntryInfo.Country = ddlCountry.SelectedValue.Trim(); objGuestDetailsEntryInfo.SubscribeToNewsletter = cbSubscribeToNewsletter.Checked; objGuestDetailsEntryInfo.TravelPurpose = (TravelPurpose)Convert.ToInt32(ddlTravelPurpose.SelectedValue); objGuestDetailsEntryInfo.FlightNumber = tbFltNumber.Text.Trim(); objGuestDetailsEntryInfo.AirlineProgramCode = ddlAirlineProgram.SelectedValue; objGuestDetailsEntryInfo.AirlineProgramIdentifier = tbAirlineProgramNumber.Text.Trim(); objGuestDetailsEntryInfo.HotelProgramCode = ddlHotelProgram.SelectedValue; objGuestDetailsEntryInfo.HotelProgramIdentifier = tbHotelProgramNumber.Text.Trim(); if ((tbArrivalTimeHours.Text != null && tbArrivalTimeHours.Text != "") && (tbArrivalTimeMinutes.Text != null && tbArrivalTimeMinutes.Text != "")) { bool bReturnTimeForValidationCheck = true; int intHours; if (Int32.TryParse(tbArrivalTimeHours.Text, out intHours)) { if (intHours == 0 && rbArrivalTimePM.Checked) // Microsoft DateTime parser permits this entry (00:15pm accepted as 12:15pm) { objGuestDetailsEntryInfo.ArrivalTime = "error"; bReturnTimeForValidationCheck = false; } } if (bReturnTimeForValidationCheck) { StringBuilder sb = new StringBuilder(); sb.Append(tbArrivalTimeHours.Text); sb.Append(":"); sb.Append(tbArrivalTimeMinutes.Text); if (rbArrivalTimeAM.Checked) sb.Append(" AM"); else sb.Append(" PM"); objGuestDetailsEntryInfo.ArrivalTime = sb.ToString(); } } else if ((tbArrivalTimeHours.Text != null && tbArrivalTimeHours.Text != "") || (tbArrivalTimeMinutes.Text != null && tbArrivalTimeMinutes.Text != "")) { objGuestDetailsEntryInfo.ArrivalTime = "error"; } else { objGuestDetailsEntryInfo.ArrivalTime = ""; } objGuestDetailsEntryInfo.NumberRollawaysAdult = Convert.ToInt32(ddlAdultRollaway.SelectedValue); objGuestDetailsEntryInfo.NumberRollawaysChild = Convert.ToInt32(ddlChildRollaway.SelectedValue); objGuestDetailsEntryInfo.NumberCribs = Convert.ToInt32(ddlCrib.SelectedValue); objGuestDetailsEntryInfo.PaymentCardHolder = tbCardholderName.Text.Trim(); objGuestDetailsEntryInfo.PaymentCardIssueNumber = tbCardIssueNumber.Text.Trim(); objGuestDetailsEntryInfo.PaymentCardNumber = tbCardNumber.Text.Replace(" ", "").Trim(); objGuestDetailsEntryInfo.PaymentCardSecurityCode = tbCardSecurityCode.Text.Trim(); objGuestDetailsEntryInfo.PaymentCardType = ddlCardType.SelectedValue.Trim(); objGuestDetailsEntryInfo.PaymentCardExpireDate = ddlCardExpiryMonth.SelectedValue.PadLeft(2, '0') + ddlCardExpiryYear.SelectedValue.Substring(2); objGuestDetailsEntryInfo.PaymentCardEffectiveDate = ddlCardStartMonth.SelectedValue.PadLeft(2, '0') + ddlCardStartYear.SelectedValue.Substring(2); objGuestDetailsEntryInfo.ProfileGuaranteeRequested = cbProfileGuarantee.Checked; _GuestDetailsEntryInfo = objGuestDetailsEntryInfo; _TermsConditionsAccepted = cbTermsAgreement.Checked; if (_SelectedPaymentGateway == null && (_PaymentCardApplicationStatus == PaymentCardApplication.DepositOnly || PaymentCardApplicationStatus == PaymentCardApplication.GuaranteeAndDeposit)) { _SelectedPaymentGateway = WBSPGHelper.GetPaymentGatewayByCardType(_PaymentGatewayInfos, ddlCardType.SelectedValue.Trim()); } if (_SelectedPaymentGateway != null && _SelectedPaymentGateway.Mode == PaymentGatewayMode.PaymentGatewayCapturesCardDetails) { objGuestDetailsEntryInfo.PaymentCardType = "XX"; } GuestDetailsCompleted(this, new EventArgs()); return; }