Валидация номера кредитной карты на PHP (Laravel)

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

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

Похожие статьи

Загрузка изображения в Laravel

Русификация Laravel

Добавить поле к существующей таблице Laravel

Как поменять язык в Faker

Транслитерация URL в Laravel. Примеры str_slug()

Разработка бота Telegram с помощью Botman на локальном компьютере

Валидация данных в Laravel form request

Laravel Excel - Базовый экспорт

Добавить в botman editMessageText для Telegram

Как сделать middleware в Laravel 6 - простой пример

Laravel: Отношения моделей многие ко многим - belongsToMany

Laravel: Отношения моделей один ко многим - hasMany, belongsTo

Как русифицировать или поменять шаблон уведомления о сбросе пароля в Laravel

Создать ссылку на storage из внешнего каталога для Laravel

Установить Laravel в отдельную папку (site.ru/laravel/)

Валидация номера кредитной карты на PHP (Laravel)

Создание form request в Laravel: руководство для начинающих

Связать папку storage с папкой public в Laravel

Экспорт маршрутов из Laravel в JSON файл

Откуда в Laravel Jetstream (inertia) prop auth.user?

Обработка ошибок в Laravel form request

Постраничная навигация на Bootstrap в Laravel 8

Blade - расширить @section с использованием директивы @parent

Добавить данные об авторизации при каждом запросе к API в Laravel

Работа с файлами в Laravel Form Request

Работа с вложенными объектами и коллекциями в Laravel form request

Laravel: Отношение через таблицу-посредника - hasOneThrough()

Стандартные свойства модели в Laravel

Laravel: Отношения моделей один к одному - hasOne, belongsTo

Laravel: Отношение через таблицу-посредника - hasManyThrough()

Авторизацией и аутентификация в Laravel form request

Создание уникального индекса в миграции Laravel

Установка Laravel и создание нового проекта

Laravel form request для создания API-запросов

Настройка команды CRON на хостинге nic.ru для активации Laravel schedule

HTTP-запросы в Laravel form request - работа с различными типами запросов

Создание класса модели в Laravel

Создание таблицы в базе данных (миграции) для модели в Laravel

Как создать модель в Laravel

Базовые методы CRUD контроллера для модели в Laravel

Наш сайт использует куки, нажмите «ОК» если вы не против
OK