Magento2: Проверка кредитной карты в пользовательской форме не работает


Я пытаюсь добавить подтверждения кредитной карты в пользовательскую форму оплаты

 <form id="testForm" data-mage-init='{"validation":{}}'>
            First name:<br>
            <input type="text" name="firstname" class="required-entry" >
            <br>
           credit card:<br>
            <input type="text" name="creditcard" class="required-entry validate-cc-number">
            CCV:<br>
            <input type="text" name="cvv" class="required-entry validate-cc-cvn">
            <br><br>
            <input type="submit" value="Submit">
        </form>

Я также добавил для него зависимость

require([
    'jquery',
    'jquery.bootstrap',
    'payment',
    'mage/validation'
], function ($, bootstrap, payment, validation) { }

Validate-cc-номер работает не так, как ожидалось, когда ввод пуст, выдает ошибку

Пожалуйста, введите действительный номер кредитной карты

Но даже если я введу "тестовую карту" в качестве входных данных, она подтвердит и не покажет ошибки, для cvv она даже не выдает сообщение об ошибке

Чего мне не хватает ?

Author: Vishwas Bhatnagar, 2018-09-11

1 answers

Для работы проверки кредитной карты вам необходимо ввести значение в качестве типа карты

 <input type="hidden" value="" id="cc_type"> //value can VI,MC,AI,DN as per card entered
<input id="ccno" name="ccno" class="form-text form-control ccno validate-cc-number"
   data-validate="{
   'required-number':true,
   'validate-cc-number':'#cc_type',
   'validate-cc-type':'#cc_type'
   }"
   >
</div>

То же самое требуется для CVV

<input name="cccvv" id="cccvv" class="form-text form-control cccvv "
   data-validate="{
   'required-number':true,
   'validate-cc-cvn':'#cc_type'
   }">
</div>

И для проверки даты истечения срока действия

<select name="cc_exp_month" id="cc_exp_month" class="cc_exp_month"
   data-validate="{
   'required':true,
   'validate-cc-exp':'#cc_exp_yr'
   }"
   > //put year select as required and in month vlidation put year select id .Magento expects in format of YYYY
<select name="cc_exp_yr" id="cc_exp_yr" class="form-select form-control cc_exp_yr" data-validate="{required:true}">
 3
Author: Vishwas Bhatnagar, 2018-09-18 04:21:46