cebugle/laravel-credit-card-rule

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

v2.0.0 2024-03-18 06:34 UTC

This package is auto-updated.

Last update: 2024-09-18 07:46:09 UTC


README

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

安装

composer require cebugle/laravel-credit-card-rule

用法

作为FormRequest使用

<?php

namespace App\Http\Requests;

use Cebugle\CreditCard\CardCvc;
use Cebugle\CreditCard\CardNumber;
use Cebugle\CreditCard\CardExpirationYear;
use Cebugle\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 Cebugle\CreditCard\CardNumber]
);

直接

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

卡到期日期

从请求中获取

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

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

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

直接

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

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

卡CVC

从请求中获取

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

直接

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

许可证

本项目采用Apache 2.0许可证,您可以在以下LICENSE文件中找到。

反馈

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