2013-09-04 3 views
1

У меня есть информация о форме обновления CC. Отображаются только последние 4 номера карты, а остальные выделяются (* **** * 1234).Пытается проверить форму кредитной карты (jQuery, ColdFusion)

Когда кто-то входит и просто должен обновить свою дату истечения срока действия на карте с таким же номером, мы также должны потребовать, чтобы они также обновили карту, поскольку номер, помеченный звездочкой, будет отправлен в используемый нами API, и вернется как плохой номер CC. API требует, чтобы оба набора номеров (номер карты & exp) были представлены. Простейшим решением является проверка отправки, если номер карты отмечен.

Как проверить, если первые 12 номера снимались из (* ** *) с JavaScript/JQuery?

Также, пожалуйста, предлагайте другой способ справиться с этим, если вы знаете лучшее решение.

Я достаточно хорошо знаком с проверкой jQuery, но никогда не видел того, что может это сделать.

Спасибо заранее,

Стивен

+0

Вы сохраняете полные номера кредитных карт в своей базе данных? Если вы, я надеюсь, что вы совместимы с PCI, в противном случае вы настраиваете себя на некоторые серьезные проблемы с ответственностью. –

+0

@scott stroz. Нет, мы не. В противном случае я просто запрошу номер. Спасибо, что посмотрел. Я не вмешиваюсь в соответствие с PCI. –

ответ

4

Если вы храните данные в базе данных, то, когда новые данные ехр приходит вы не можете просто посмотреть номер CC в БД и передать его сюда? Что же касается вашего другого вопроса, если ваша форма действительно проходят звездочки просто смотреть на них:

<cfif find(ccnum,"*")> 
    you have stars so you look up the CC before passing it 
<cfelseif isvalid("CC", CCNUM)> 
    you have a valid cc num... so combine it with the other data and submit it. 
<cfelse> 
    you have something unexpected send an error back to the user 
</cfif> 
+0

Я закончил тем, что сделал гибрид этого и только отправил дату опыта в api. –

+1

Рад, что вы разобрали его. Рад, что я мог помочь :) спасибо за помощь, Мэтт ... не успел ее протестировать. –

2

Не фантазии, но вы можете просто посмотреть на строке.

стороне клиента:

if(ccNum.substr(0,11) == '************'){ 
    // do whatever 
} 

ColdFusion Сторона:

if(left(ccNumber,12) == '************'){ 
    // do whatever 
} 

или тег на основе

<cfif left(ccNumber,12) eq '************'> 
    <!--- do whatever ---> 
</cfif> 
0

я изначально собирался предложить просто игнорируя поле номера CC в форме, когда вы выполняете обновление SQL/транзакции. Просто потому, что он предоставлен пользователем, это не значит, что вы должны его использовать.

Но есть проблема с этим - он предполагает, что пользователь никогда не будет обновлять информацию о кредитной карте с помощью другой кредитной карты - что я бы предложил, это плохо, чтобы «просто» предположить.

Как насчет того, если вы проверили представленные значения для символов «*» в номере кредитной карты?

Если «*», они НЕ изменили номер СС из того, что было первоначально сохранено, поэтому это «безопасная ставка (r)», теперь вы можете игнорировать число.

Если нет «*» - они предоставили номер CC - подтвердите его/сохраните. Даже если это тот же номер карты, что и раньше, просто предположите, что они ввели совершенно другое число и выполнили требуемую проверку номера CC, а затем сохранили все данные формы.

Нечто подобное;

<cfif form.ccNumber contains "*"> 
    <!--- disregard the CC number it is the same as the old one ---> 
    <!--- do other form field validation ---> 
    <!--- save all OTHER form fields, only/do NOT save the CC number ---> 
<cfelse> 
    <!--- we have no "*" in the CC number - validate the card number ---> 
    <!--- jQuery has credit card validation in its validation plugin. ---> 
    <!--- do other form field validation ---> 
    <!--- save ALL form fields ---> 
</cfif> 
Смежные вопросы