跳到内容

CardScheme

编辑此页

此约束确保信用卡号对于给定的信用卡公司是有效的。它可以在尝试通过支付网关发起支付之前用于验证号码。

基本用法

要使用 CardScheme 验证器,请将其应用于将包含信用卡号的对象的属性或方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
// src/Entity/Transaction.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Transaction
{
    #[Assert\CardScheme(
        schemes: [Assert\CardScheme::VISA],
        message: 'Your credit card number is invalid.',
    )]
    protected string $cardNumber;
}

注意

与大多数其他约束一样,null 和空字符串被认为是有效值。这是为了允许它们成为可选值。如果该值是强制性的,一个常见的解决方案是将此约束与 NotBlank 结合使用。

可用选项

groups

类型: array | string 默认值: null

它定义了此约束的验证组。阅读更多关于 验证组 的信息。

message

类型: string 默认值: 不支持的卡类型或无效的卡号。

当值未通过 CardScheme 检查时显示的消息。

您可以在此消息中使用以下参数

参数 描述
{{ value }} 当前(无效)值
{{ label }} 对应的表单字段标签

payload

类型: mixed 默认值: null

此选项可用于将任意特定于域的数据附加到约束。配置的 payload 不会被 Validator 组件使用,但其处理完全取决于您。

例如,您可能想使用 几个错误级别,以便在前台根据错误的严重程度以不同的方式呈现失败的约束。

schemes

类型: mixed [默认选项]

此选项是必需的,表示用于验证信用卡号的号码方案的名称,它可以是字符串或数组。有效值包括

  • AMEX
  • CHINA_UNIONPAY
  • DINERS
  • DISCOVER
  • INSTAPAYMENT
  • JCB
  • LASER
  • MAESTRO
  • MASTERCARD
  • MIR
  • UATP
  • VISA

有关所用方案的更多信息,请参阅 维基百科:发卡行识别号码 (IIN)

本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本