/// <summary>
        ///     Write client validation scripts to browser if user can add cards
        /// </summary>
        protected override void setCardValidationClientScripts()
        {
            if (!_RegisteredCardsOnly)
            {
                Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ValidationMessages", string.Format(ValidationScriptMessages,
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardMissingCard") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardBadCard") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardMissingName") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardMissingExpDate") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCard") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateRemoveCard") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardExpired") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateStreetAddressRequired") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateCityRequired") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateStateRequired") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateSelectCardType") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateZipRequired") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateNumberRequired") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateNeighborhoodRequired") as string),
                                                                                                                EscapeJavascriptQuotes(GetLocalResourceObject("ValidateTokenizationFailed") as string),
                                                                                                                EscapeJavascriptQuotes(GetGlobalResourceObject("MyHL_ErrorMessage", "InvalidNickname") as string),
                                                                                                                EscapeJavascriptQuotes(GetGlobalResourceObject("MyHL_ErrorMessage", "DuplicateCardError") as string)));
            }

            Page.ClientScript.RegisterClientScriptBlock(typeof(string), "RegisterdCardsOnly", string.Format(ScriptBlock, string.Concat("var registeredCards = ", _RegisteredCardsOnly.ToString().ToLower(), ";")));
            Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ControlNamingPrefix", string.Format(ScriptBlock, string.Concat("var prefix = '", txtCardHolderName.ClientID.Replace(txtCardHolderName.ID, string.Empty), "';")));

            //Tokenization for added cards
            bool disableTokenization = Settings.GetRequiredAppSetting <bool>("TokenizationDisabled", false);

            this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "TokenizationDisabled", string.Format(ScriptBlock, string.Concat("var tokenizationDisabled = ", disableTokenization.ToString().ToLower()), ";"));

            try
            {
                var seamlessCredentials = CookieHandler.GetSeamlessCredentials();
                if (seamlessCredentials != null && seamlessCredentials.AuthenticationToken != null)
                {
                    this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "AuthToken", string.Format(ScriptBlock, string.Concat("var authToken = '",
                                                                                                                                           seamlessCredentials.AuthenticationToken.ToString(), "';")));
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine("CookieHandler::GetSeamlessCredentials() error. Error description: {0}", ex.Message);
                (new HLErrorAuditEvent("CookieHandler::GetSeamlessCredentials()", CookieHandler.GetSeamlessCredentials(), ex)).Raise();
            }

            //this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "NickNamesList", string.Format(ScriptBlock, string.Concat("var nickNamesList = '", GetNickNamesList(), "';")));
            hdNickNameList.Value = GetNickNamesList();
            chkSaveCreditCard.Attributes.Add("onclick ", "CheckSaveBoxSettings(event)");
            chkMakePrimaryCreditCard.Attributes.Add("onclick ", "CheckPrimaryBoxSettings(event)");
        }
Ejemplo n.º 2
0
        // ========================================================================================
        /// <summary>
        ///
        /// </summary>
        /// <param name=""></param>
        // ========================================================================================
        protected virtual void setCardValidationClientScripts()
        {
            string onClientClick = string.Empty;
            string disableTokens = System.Configuration.ConfigurationManager.AppSettings["TokenizationDisabled"];

            this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "TokenizationDisabled", string.Format(ScriptBlock, string.Concat("var tokenizationDisabled = ", string.IsNullOrEmpty(disableTokens) ? false.ToString().ToLower() : disableTokens.ToString().ToLower()), ";"));
            this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "AuthToken", string.Format(ScriptBlock, string.Concat("var authToken = '", CookieHandler.GetSeamlessCredentials().AuthenticationToken.ToString(), "';")));
            this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ValidationMessages", string.Format(ValidationScriptMessages,
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateAddCardMissingCard)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateAddCardBadCard)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateAddCardMissingName)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateAddCardMissingExpDate)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateAddCard)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateAddCardExpired)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateStreetAddressRequired)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateCityRequired)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateStateRequired)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateZipRequired)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateSelectCardType)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateTokenizationFailed)),
                                                                                                                 EscapeJavascriptQuotes(GetResourceString(ValidateCVVRequired))
                                                                                                                 ));

            // Control binding
            var        controls  = GetControls(Page); // TODO, filter only significant controls to avoid overhead .Where(c => c is TextBox); ; Why not use FindControl?
            var        textboxes = controls.OfType <TextBox>();
            LinkButton btnSubmit = (LinkButton)controls.Where(c => c is LinkButton && c.ID == SubmitButtonControlId).FirstOrDefault();

            if (btnSubmit == null)
            {
                return;
            }

            //btnSubmit.OnClientClick = "return ValidateNewCard(event, this);";

            TextBox txtCardNumber     = textboxes.Where(c => c.ID == CardNumberControlId).FirstOrDefault();
            TextBox txtCardName       = textboxes.Where(c => c.ID == CardNameControlId).FirstOrDefault();
            TextBox txtCVV            = textboxes.Where(c => c.ID == CVVControlId).FirstOrDefault();
            TextBox txtCardHolderName = textboxes.Where(c => c.ID == CardHolderControlId).FirstOrDefault();
            TextBox txtStreetAddress  = textboxes.Where(c => c.ID == StreetAddressControlId).FirstOrDefault();
            TextBox txtCity           = textboxes.Where(c => c.ID == CityControlId).FirstOrDefault();
            TextBox txtState          = textboxes.Where(c => c.ID == StateControlId).FirstOrDefault();
            TextBox txtZip            = textboxes.Where(c => c.ID == ZipControlId).FirstOrDefault();
            Control lblMessage        = this.Parent.FindControl(MessageLabelControlId);

            DropDownList ddlCardType = (DropDownList)controls.Where(c => c is DropDownList && c.ID == CardTypeControlId).FirstOrDefault();
            DropDownList ddlExpMonth = (DropDownList)controls.Where(c => c is DropDownList && c.ID == ExpirationMonthControlId).FirstOrDefault();
            DropDownList ddlExpYear  = (DropDownList)controls.Where(c => c is DropDownList && c.ID == ExpirationYearControlId).FirstOrDefault();

            StringBuilder sb = new StringBuilder();

            sb.Append(string.Format("var txtCardNameControlName = '{0}';", GetControlName(txtCardName)));
            sb.Append(string.Format("var txtCardHolderNameControlName = '{0}';", GetControlName(txtCardHolderName)));
            sb.Append(string.Format("var txtCVVControlName = '{0}';", GetControlName(txtCVV)));
            sb.Append(string.Format("var txtCardNumberControlName = '{0}';", GetControlName(txtCardNumber)));
            sb.Append(string.Format("var txtStreetAddressControlName = '{0}';", GetControlName(txtStreetAddress)));
            sb.Append(string.Format("var txtCityControlName = '{0}';", GetControlName(txtCity)));
            sb.Append(string.Format("var txtStateControlName = '{0}';", GetControlName(txtState)));
            sb.Append(string.Format("var txtZipControlName = '{0}';", GetControlName(txtZip)));
            sb.Append(string.Format("var ddlCardtypeControlName = '{0}';", GetControlName(ddlCardType)));
            sb.Append(string.Format("var ddlExpMonthControlName = '{0}';", GetControlName(ddlExpMonth)));
            sb.Append(string.Format("var ddlExpYearControlName = '{0}';", GetControlName(ddlExpYear)));
            sb.Append(string.Format("var btnSubmitControlName = '{0}';", GetControlName(btnSubmit)));
            sb.Append(string.Format("var lblMessageControlName = '{0}';", GetControlName(lblMessage)));
            sb.Append(string.Format("var hdnValidationsControlName = '{0}';", GetControlName(hdnValidations)));

            string script = sb.ToString();

            this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ClientControlsRegistration", string.Format(ScriptBlock, script));
            this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "DontTokenizeJustMaskAndUseSessionStorage", string.Format(ScriptBlock, string.Concat("var DontTokenizeJustMaskAndUseSessionStorage = ", DontTokenizeJustMaskAndUseSessionStorage.ToString().ToLower()), ";"));

            List <HPSCreditCardType> cardValidations = GetCardValidations();

            cardValidations.ForEach(cv => hdnValidations.Value += string.Concat(cv.Code, "=", cv.CardNumberValidationRegexText, ";"));
        }