2017 © Pedro Peláez
 

library credit-card

Credit card as value object.

image

larium/credit-card

Credit card as value object.

  • Monday, December 12, 2016
  • by andreas_kollaros
  • Repository
  • 2 Watchers
  • 4 Stars
  • 402 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 18 Versions
  • 3 % Grown

The README.md

Coverage Status Build Status Scrutinizer Code Quality, (*1)

Credit card as Value Object

Installation

You can install this library using Composer, (*2)

Information about how to install composer you can find here, (*3)

Command line

In root directory of your project run through a console:, (*4)

$ composer require "larium/credit-card":"@stable"

Composer.json

Include require line in your composer.json file, (*5)

{
    "require": {
        "larium/credit-card": "@stable"
    }
}

and run from console in the root directory of your project:, (*6)

$ composer update

After this you must require autoload file from composer., (*7)

<?php
require_once 'vendor/autoload.php';

Usage

Creating a credit card object

<?php
use Larium\CreditCard\CreditCard;
use Larium\CreditCard\CreditCardValidator;

require_once 'vendor/autoload.php';

$data = array(
    'holderName'=> 'John Doe',
    'month'     => 1,
    'year'      => date('Y') + 1,
    'brand'     => CreditCard::VISA,
    'number'    => '4532875311640795',
    'cvv'       => '123',
);

$card = new CreditCard($data);

echo $card->getBrand(); # visa
//Auto uppercase holder name.
echo $card->getHolderName(); # JOHN DOE

$card = $card->withNumber('5284911033259148');
echo $card->getBrand(); # master

Adding a token in credit card object

<?php
use Larium\CreditCard\CreditCard;
use Larium\CreditCard\CreditCardValidator;
use Larium\CreditCard\Token;

require_once 'vendor/autoload.php';

$data = array(
    'holderName' => 'John Doe',
    'month'     => 1,
    'year'      => date('Y') + 1,
    'brand'     => CreditCard::VISA,
    'number'    => '4532875311640795',
    'cvv'       => '123',
);

$card = new CreditCard($data);

# ... use credit card to obtain a token reference from a remote payment gateway.

$token = new Token('0123456789');

$card = $card->withToken($token);

# Now, credit card will use token for future payments
# and will mask any sensitive data as number and cvv.
echo $card->getCvv(); # null
echo $card->getNumber(); # XXXX-XXXX-XXXX-0795
echo $card->getToken(); # 0123456789

In some cases we need to use a temporary token to fulfil a payment. Many payment gateways support a limited time token, which represents a card or a payment method., (*8)

<?php
use Larium\CreditCard\Token;

require_once 'vendor/autoload.php';

$token = new Token('0123456789', new DateTime('15 minutes'));
$token->isExpired() # false

$token = new Token('0123456789', new DateTime('15 minutes ago'));
$token->isExpired() # true

Validating a credit card

use Larium\CreditCard\CreditCard;
use Larium\CreditCard\CreditCardValidator;

require_once 'vendor/autoload.php';

$data = array(
    'holderName'=> 'John Doe',
    'month'     => 1,
    'year'      => date('Y') + 1,
    'brand'     => CreditCard::VISA,
    'number'    => '4532875311640795',
    'cvv'       => '123',
);

$card = new CreditCard($data);

$validator = new CreditCardValidator();
$errors = $validator->validate($card);
$valid = count($errors) === 0; # true

$card = $card->withNumber('1');
$error = $validator->validate($card);

print_r($errors);
/*
Array
(
    [number] => not a valid number
    [brand] => not valid card type
)
*/

Validating a token of a credit card

<?php

use Larium\CreditCard\CreditCard;
use Larium\CreditCard\CreditCardValidator;
use Larium\CreditCard\Token;

require_once 'vendor/autoload.php';

$card = new CreditCard();
$token = new Token('0123456789');
$card = $card->withToken($token);
$validator = new CreditCardValidator(CreditCardValidator::CONTEXT_TOKEN);
$errors = $validator->validate($card);
$valid = count($errors) === 0; # true

$token = new Token('0123456789', new DateTime('15 minutes ago'));
$card = $card->withToken($token);
$validator->setContext(CreditCardValidator::CONTEXT_TOKEN);
$validator->validate($card);
$validator->getErrors();
/*
Array
(
    [token] => token has been expired
)
*/

The Versions

12/12 2016

dev-master

9999999-dev

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

12/12 2016

0.1.12

0.1.12.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

01/12 2016

0.1.11

0.1.11.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

30/11 2016

0.1.10

0.1.10.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

22/11 2016

0.1.9

0.1.9.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

10/11 2016

0.1.8

0.1.8.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

25/10 2016

0.1.7

0.1.7.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

24/10 2016

0.1.6

0.1.6.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

10/04 2016

0.1.5

0.1.5.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Andreas Kollaros

merchant payments credit card

12/02 2016

0.1.4

0.1.4.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card

08/09 2015

0.1.3

0.1.3.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card

06/09 2015

0.1.2

0.1.2.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card

06/09 2015

0.1.1

0.1.1.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card

06/09 2015

0.1.0

0.1.0.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card

05/09 2015

0.0.4

0.0.4.0

Credit card as value object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card

05/09 2015

0.0.3

0.0.3.0

Creditcard

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card

05/09 2015

0.0.2

0.0.2.0

Creditcard

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card

05/09 2015

0.0.1

0.0.1.0

Creditcard

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Andreas Kollaros

merchant payments credit card