定制 larium/credit-card 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

larium/credit-card

最新稳定版本:2.0.0

Composer 安装命令:

composer require larium/credit-card

包简介

Credit card as value object.

README 文档

README

Coverage Status Build Status Scrutinizer Code Quality

Credit card as Value Object

Installation

You can install this library using Composer

Information about how to install composer you can find here

Command line

In root directory of your project run through a console:

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

Composer.json

Include require line in your composer.json file

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

and run from console in the root directory of your project:

$ composer update

After this you must require autoload file from composer.

<?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.

<?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
)
*/

统计信息

  • 总下载量: 660
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 8
  • 点击次数: 2
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 7
  • Watchers: 2
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-09-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固