CardScheme

Questo vincolo assicura che un numero di carta di credito sia valido per una data compagnia di carte di credito. Può essere usato per validare il numero prima di provare a iniziare un pagamento tramite un gateway.

Si applica a proprietà o metodo
Opzioni
Classe Symfony\Component\Validator\Constraints\CardScheme
Validatore Symfony\Component\Validator\Constraints\CardSchemeValidator

Uso di base

Per usare il validatore CardScheme, aggiungerlo semplicemente a una proprietà o a un metodo su un oggetto che conterrà un numero di carta di credito.

  • YAML
    # src/Acme/SubscriptionBundle/Resources/config/validation.yml
    Acme\SubscriptionBundle\Entity\Transaction:
        properties:
            cardNumber:
                - CardScheme:
                    schemes: [VISA]
                    message: Numero di carta di credito non valido.
    
  • XML
    <!-- src/Acme/SubscriptionBundle/Resources/config/validation.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
    
        <class name="Acme\SubscriptionBundle\Entity\Transaction">
            <property name="cardNumber">
                <constraint name="CardScheme">
                    <option name="schemes">
                        <value>VISA</value>
                    </option>
                    <option name="message">Numero di carta di credito non valido.</option>
                </constraint>
            </property>
        </class>
    </constraint-mapping>
    
  • Annotazioni
    // src/Acme/SubscriptionBundle/Entity/Transaction.php
    namespace Acme\SubscriptionBundle\Entity\Transaction;
    
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Transaction
    {
        /**
         * @Assert\CardScheme(schemes = {"VISA"}, message = "Numero di carta di credito non valido.")
         */
        protected $cardNumber;
    }
    
  • PHP
    // src/Acme/SubscriptionBundle/Entity/Transaction.php
    namespace Acme\SubscriptionBundle\Entity\Transaction;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Validator\Constraints as Assert;
    
    class Transaction
    {
        protected $cardNumber;
    
        public static function loadValidatorMetadata(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint('cardNumber', new Assert\CardScheme(array(
                'schemes' => array(
                    'VISA'
                ),
                'message' => 'Numero di carta di credito non valido.',
            )));
        }
    }
    

Opzioni disponibili

schemes

tipo: mixed [opzioni predefinite]

Questa opzione è obbligatoria e rappresenta il nome dello schema usato per validare la carta di credito, sia esso una stringa o un array. Valori validi sono:

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

Per maggiori infomazioni sugli schemi usati, vedere Wikipedia: Issuer identification number (IIN).

message

tipo: stringa predefinito: Unsupported card type or invalid card number

Il messaggio mostrato quando il valore non passa il controllo CardScheme.

Tabella dei contenuti

Argomento precedente

Image

Argomento successivo

Currency

Questa pagina