Nuevo en Symfony 4.3: Mejoras en los validadores financieros

Los validadores financieros y numéricos de Symfony permiten validar datos como tarjetas de crédito y cuentas bancarias. En Symfony 4.3 les hemos añadido algunas mejoras.

Comprobando que el BIC y el IBAN estén relacionados

El IBAN (International Bank Account Number) es un estándar internacional para identificar cuentas bancarias entre países. El BIC (Bank Identifier Code) es un código para identificar de forma única a instituciones financieras y se define en el estándar ISO 9362.

Aunque los dos códigos son independientes, se pueden validar conjuntamente para comprobar al menos que los dos pertenecen al mismo país. Así que en Symfony 4.2 hemos mejorado el validador BIC para que se pueda validar junto a un IBAN.

Así por ejemplo, puedes pasar al BIC el código del IBAN mediante su nueva opción iban para validar que los dos están relacionados:

use Symfony\Component\Validator\Constraints as Assert;
// ...
 
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
    $metadata->addPropertyConstraint('businessIdentifierCode', new Assert\Bic([
        'iban' => 'FR1420041010050500013M02606',
    ]));
}

Otra forma de validarlo es usar la nueva opción ibanPropertyPath para definir qué propiedad del objeto almacena el código IBAN:

use Symfony\Component\Validator\Constraints as Assert;
// ...
 
class Transaction
{
    /**
     * @Assert\Bic(ibanPropertyPath = "accountNumber")
     */
    protected $businessIdentifierCode;
 
    /**
     * @Assert\Iban
     */
    protected $accountNumber;
 
    // public getters for properties ...
}

Esta funcionalidad fue contribuida por Sylvain Fabre en el pull request #28479.

Añadido soporte para tarjetas de UATP

UATP (Universal Air Travel Plan) es una red de pago operada por las aerolíneas y que permite realizar pagos en agencias de viajes, trenes, aviones, hoteles, etc. En Symfony 4.3 hemos mejorado el validador CardScheme para que también pueda validar este esquema de pago llamado UATP:

// ...
 
class Transaction
{
    /**
     * @Assert\CardScheme(
     *     schemes={"AMEX", "MASTERCARD", "UATP", "VISA"},
     *     message="Your credit card number is invalid."
     * )
     */
    protected $cardNumber;
}

Esta funcionalidad fue contribuida por Raúl Fraile en el pull request #29504.


Fuente: New in Symfony 4.3: Improved Financial Constraints

Comentarios

Publicada el

25 de marzo de 2019

Etiquetas

Proyectos Symfony destacados

La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.