engeni/credit-card

验证信用卡号、到期日期、cvv

dev-master 2023-05-18 14:36 UTC

This package is auto-updated.

Last update: 2024-09-18 17:33:27 UTC


README

关于此分支

此分支将 Tarjeta Naranja 添加到信用卡验证器的列表中。

在此处检查原始包:https://github.com/laravel-validation-rules/credit-card

因此,保留从原始包中的命名空间 LVR\CreditCard

简介

此规则将验证给定的信用卡 号码到期日期cvv 是否有效。

它验证以下信用卡列表

  • 美国运通
  • Cabal
  • 大都会俱乐部
  • Discover
  • Hipercard
  • 万事达卡
  • JCB
  • Mir
  • Tarjeta Naranja
  • Troy
  • 银联
  • Visa

以下借记卡

  • Forbrugsforeningen
  • Dankort
  • Maestro
  • Visa Electron

安装

composer require engeni/credit-card

用法

作为 FormRequest

<?php

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' => '37873449367100'],
    ['card_number' => new LVR\CreditCard\CardNumber]
);

直接

(new LVR\CreditCard\Cards\Visa)
    ->setCardNumber('4012888888881881')
    ->isValidCardNumber()

卡到期日

来自请求

// CardExpirationYear requires card expiration month
$request->validate(
    ['expiration_year' => '2017'],
    ['expiration_year' => ['required', new LVR\CreditCard\CardExpirationYear($request->get('expiration_month'))]]
);

// CardExpirationMonth requires card expiration year
$request->validate(
    ['expiration_month' => '11'],
    ['expiration_month' => ['required', new LVR\CreditCard\CardExpirationMonth($request->get('expiration_year'))]]
);

// CardExpirationDate requires date format
$request->validate(
    ['expiration_date' => '02-18'],
    ['expiration_date' => ['required', new LVR\CreditCard\CardExpirationDate('my')]]
);

直接

LVR\CreditCard\Cards\ExpirationDateValidator(
    $expiration_year,
    $expiration_month
)->isValid();

// Or static
LVR\CreditCard\Cards\ExpirationDateValidator::validate(
    $expiration_year,
    $expiration_month
);

卡 CVC

来自请求

// CardCvc requires card number to determine allowed cvc length
$request->validate(
    ['cvc' => '123'],
    ['cvc' => new LVR\CreditCard\CardCvc($request->get('card_number'))]
);

直接

LVR\CreditCard\Cards\Card::isValidCvcLength($cvc);

许可证

本项目采用 Apache 2.0 许可证,您可以在 此处 找到。

反馈

如果您有任何反馈、评论或建议,请随时在此存储库中打开一个问题!