Устанавливаем пакет. Документация на английском на 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)
Не писать ответ