orkestra/transactor

支持与不同的金融交易处理平台交互

1.2.0 2017-10-26 04:56 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:30:22 UTC


README

Build Status

Transactor为任何PHP 5.4+、7.0+项目提供支付处理功能。此库依赖于Symfony,并支持Symfony 2.3+和3.0+。

HHVM支持程度较低,尚未进行广泛测试。如果您有任何问题,请提交问题

支持的支付处理器

  • Network Merchants信用卡、ACH和刷卡交易。
  • Authorize.Net信用卡和ACH支持。
  • 实体店面的现金和支票交易。
  • 积分,作为跟踪账户信用的一种手段。

安装

使用Composer安装此项目。

通过运行composer require orkestra/transactor:~1.2将orkestra-transactor添加到您的项目中,或者将其添加到您的composer.json文件中

{
    "require": {
        "orkestra/transactor": "~1.2"
    }
}

然后运行composer installcomposer update

用法

概览

  1. 创建凭证
  2. 创建账户
  3. 创建交易
  4. 处理交易

1. 创建凭证

凭证由Transactor用于与远程系统进行身份验证。每个Transactor都有一些特定字段,这些字段对于处理交易是必要的。

您可以使用给定的Transactor通过调用$transactor->createCredentials()来创建一组默认凭证。

<?php

use Orkestra\Transactor\Entity\Credentials;
use Orkestra\Transactor\Transactor\Generic\GenericTransactor;

$transactor = new GenericTransactor();

$creds = $transactor->createCredentials();
foreach ($creds->getCredentials() as $k => $v) {
    // Enumerate the default fields required by the transactor.
}

// Update credentials as necessary
$creds->setCredential('username', 'myuser');
$creds->setCredential('password', 'mypass');

提示:您可以使用凭证实体检查其Transactor类型,然后将该类型传递给TransactorFactory,以动态加载适用于给定交易的适当Transactor。

2. 创建账户

账户本质上是一个客户信息的容器。存在多种类型的账户实体,基本上每种网络类型对应一种类型。不同的Transactor支持不同的网络。网络是通过处理交易的方法,例如信用卡、ACH或现金。

<?php

use Orkestra\Transactor\Entity\Account;

// A credit card
$card = new Account\CardAccount();
$card->setAccountNumber('4111111111111111');

// A bank account (used for ACH processing)
$account = new Account\BankAccount();
$account->setAccountNumber('12345777');
$account->setRoutingNumber('5556713355');

3. 创建交易

交易必须向Transactor提供适当的账户和凭证,以便Transactor可以处理。

<?php

use Orkestra\Transactor\Entity\Transaction;

$transaction = new Transaction();
$transaction->setAccount($account);
$transaction->setCredentials($creds);
$transaction->setNetwork(new Transaction\NetworkType(Transaction\NetworkType::CASH));
$transaction->setType(new Transaction\TransactionType(Transaction\TransactionType::SALE));

4. 交易

使用Transactor实际处理交易。

<?php

$result = $transactor->transact($transaction);