Устанавливаем пакет. Документация на английском на GitHub
composer require laravel-validation-rules/credit-card
Как использовать пакет для валидации номера кредитной карты
Создание своего класса для валидации - CreditCardRequest
namespace App\Http\Requests;
use LVR\CreditCard\CardCvc;
use LVR\CreditCard\CardNumber;
use LVR\CreditCard\CardExpirationYear;
use LVR\CreditCard\CardExpirationMonth;
use Illuminate\Foundation\Http\FormRequest;
class CreditCardRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'card_number' => ['required', new CardNumber],
'expiration_year' => ['required', new CardExpirationYear($this->get('expiration_month'))],
'expiration_month' => ['required', new CardExpirationMonth($this->get('expiration_year'))],
'cvc' => ['required', new CardCvc($this->get('card_number'))]
];
}
}
Без своего класса валидации:
$request->validate( ['card_number' => '2547853698514587'], ['card_number' => new \LVR\CreditCard\CardNumber] );
Валидация напримую, без $request
Проверить пренадлежность к определенному типу карты
(new \LVR\CreditCard\Cards\Visa)
->setCardNumber('9854785143987562')
->isValidCardNumber()
Проверить корректность номера банковской карты:
$is_valid = null;
try{
$is_valid = \LVR\CreditCard\Factory::makeFromNumber("8521478536985412")->isValidCardNumber();
}
catch(Exception $e){
echo $e->getMessage();
}
Проверить срок действия кредитной карты
Через $request
Проверка года
$request->validate(
['expiration_year' => '2022'],
['expiration_year' => ['required', new \LVR\CreditCard\CardExpirationYear($request->get('expiration_month'))]]
);
Проверка месяца
$request->validate(
['expiration_month' => '11'],
['expiration_month' => ['required', new \LVR\CreditCard\CardExpirationMonth($request->get('expiration_year'))]]
);
Проверить актуальная ли дата у кредитной карты
$request->validate(
['expiration_date' => '02-24'],
['expiration_date' => ['required', new \LVR\CreditCard\CardExpirationDate('MM-YY')]]
);
Без $request
\LVR\CreditCard\Cards\ExpirationDateValidator( $expiration_year, $expiration_month )->isValid(); // Or static \LVR\CreditCard\Cards\ExpirationDateValidator::validate( $expiration_year, $expiration_month );
Проверка корректности CVC для кредитной карты
Через $request
$request->validate(
['cvc' => '789'],
['cvc' => new \LVR\CreditCard\CardCvc($request->get('card_number'))]
);
Напрямую, без $request
\LVR\CreditCard\Cards\Card::isValidCvcLength($cvc);
Комментарии (0)
Не писать ответ