orkestra /transactor
支持与不同的金融交易处理平台交互
1.2.0
2017-10-26 04:56 UTC
Requires
- php: >=5.3.3
- guzzlehttp/guzzle: ~3.7
- orkestra/common: ~1.0
- symfony/serializer: ~2.3|~3.0
- symfony/symfony: ~2.3|~3.0
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is not auto-updated.
Last update: 2024-09-14 13:30:22 UTC
README
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 install
或composer update
。
用法
概览
- 创建凭证
- 创建账户
- 创建交易
- 处理交易
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);