jlorente/laravel-credit-cards

Laravel >=5.6 集成,用于PHP信用卡包,允许对借记卡和信用卡进行格式化、验证品牌、号码和Luhn算法等操作。

1.0.3 2023-09-07 11:38 UTC

This package is auto-updated.

Last update: 2024-09-07 13:44:10 UTC


README

Laravel >=5.6 集成PHP Credit Cards包,允许对借记卡和信用卡进行格式化、验证品牌、号码和Luhn算法等操作。

它可以验证流行的品牌,如Visa、Mastercard、American Express等。

安装

安装此扩展的首选方式是通过composer

安装Composer后,您可以使用以下命令安装扩展

$ php composer.phar require jlorente/laravel-credit-cards

或者添加

...
    "require": {
        "jlorente/laravel-credit-cards": "*"
    }

到您的composer.json文件的require部分。

配置

  1. 在config/app.php服务提供者列表中注册ServiceProvider。

config/app.php

return [
    //other stuff
    'providers' => [
        //other stuff
        \Jlorente\Laravel\CreditCards\CreditCardsServiceProvider::class,
    ];
];
  1. 将以下外观添加到$aliases部分。

config/app.php

return [
    //other stuff
    'aliases' => [
        //other stuff
        'CreditCardValidator' => \Jlorente\Laravel\CreditCards\Facades\CreditCardValidator::class,
    ];
];
  1. 发布包配置文件。
$ php artisan vendor:publish --provider='Jlorente\Laravel\CreditCards\CreditCardsServiceProvider'
  1. 如果您想限制系统中可用的信用卡类型,您可以使用credit_cards.php配置文件来指定它们。

config/credit_cards.php

<?php

use Jlorente\CreditCards\CreditCardValidator;

return [
    'allowed_cards' => [
        CreditCardValidator::TYPE_VISA,
        CreditCardValidator::TYPE_MASTERCARD,
        CreditCardValidator::TYPE_AMERICAN_EXPRESS,
    ],
];

或者通过在.env配置中添加以逗号分隔的数组元素字符串来实现。

.env

//other configurations
CREDIT_CARDS_ALLOWED_CARDS="visa,mastercard,unionpay"

使用方法

CreditCardValidator外观

您可以通过外观访问CreditCardValidator类的单例。

CreditCardValidator::isVisa($cardNumber);
CreditCardValidator::isMastercard($cardNumber);
$creditCardConfiguration = CreditCardValidator::getType($cardNumber);

要查看该包的完整方法列表,请参阅PHP Credit Cards文档

CreditCardRule

在Laravel验证流程中使用的一个规则包含在该包中。

您可以通过其字符串形式

class Request {

    public function rules() {
        return [
            'card' => 'credit_card'
        ];
    }
}

或类形式

class Request {

    public function rules() {
        return [
            'card' => CreditCardRule::make()
        ];
    }
}

验证安全码格式

如果规则的第一个参数是整数值,则将验证安全码(CVC、CVV等)的格式。

class Request {

    public function rules() {
        return [
            'card' => 'credit_card:651'
        ];
    }
}

或者

class Request {

    public function rules() {
        return [
            'card' => CreditCardRule::make(null, '651')
        ];
    }
}

验证信用卡类型

您还可以提供由逗号分隔的接受信用卡类型的列表。请记住,信用卡类型应该是配置的系统可用类型的子集。

public function rules() {
    return [
        'card' => 'credit_card:' implode(',', [CreditCardValidator::TYPE_VISA, CreditCardValidator::TYPE_MASTERCARD]),
    ];
}

或者

class Request {

    public function rules() {
        return [
            'card' => CreditCardRule::make([
                CreditCardValidator::TYPE_VISA, 
                CreditCardValidator::TYPE_MASTERCARD,
                CreditCardValidator::TYPE_AMERICAN_EXPRESS,
            ]),
        ];
    }
}

您还可以将信用卡类型与安全码验证组合

class Request {

    public function rules() {
        return [
            'card' => 'credit_card:651,' . implode(',', [CreditCardValidator::TYPE_VISA, CreditCardValidator::TYPE_MASTERCARD]),
        ];
    }
}

或者

class Request {

    public function rules() {
        return [
            'card' => CreditCardRule::make(
                [
                    CreditCardValidator::TYPE_VISA, 
                    CreditCardValidator::TYPE_MASTERCARD,
                    CreditCardValidator::TYPE_AMERICAN_EXPRESS,
                ], 
                '651',
            ),
        ];
    }
}

许可证

版权所有 © 2020 José Lorente Martín jose.lorente.martin@gmail.com

在BSD 3-Clause许可证下授权。有关详细信息,请参阅LICENSE.txt。