asteroidetecnologia / erede
e.Rede集成SDK的克隆
dev-master
2020-10-21 20:02 UTC
Suggests
- monolog/monolog: Allows more advanced logging of the application flow
This package is auto-updated.
Last update: 2024-09-22 04:55:52 UTC
README
eRede集成SDK
安装
依赖关系
- PHP >= 7.2
注意: PHP 7.2的安全更新仅到2020年11月30日为止。出于安全考虑,我们建议您将PHP版本更新到最新版本。有关支持的版本信息,请参阅支持的版本。
安装SDK
如果您已经有了一个composer.json
文件,只需将以下依赖项添加到您的项目中:
{ "require": { "developersrede/erede-php": "*" } }
将依赖项添加到composer.json
后,只需执行:
composer install
或者,您可以直接在终端中执行:
composer require "developersrede/erede-php"
测试
SDK使用PHPUnit和TestDox进行测试。为了在本地环境中执行测试,您需要使用您的API凭据导出环境变量REDE_PV
和REDE_TOKEN
。完成此操作后,只需运行:
export REDE_PV=1234
export REDE_TOKEN=5678
vendor/bin/phpunit --testdox --colors='always' test
测试也可以通过具有项目理想配置的容器来执行。为此,只需执行:
docker build . -t erede-docker
docker run -e REDE_PV='1234' -e REDE_TOKEN='5678' erede-docker
如果需要,SDK还提供了调试日志功能,可以在执行测试时使用。要实现这一点,只需将环境变量REDE_DEBUG
导出为值1。
export REDE_DEBUG=1
使用
授权交易
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Transação que será autorizada $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' ); // Autoriza a transação $transaction = (new eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); }
默认情况下,交易将自动捕获;如果只需要授权交易,则应调用Transaction::capture()
方法,并传递参数false
。
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Transação que será autorizada $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' )->capture(false); // Autoriza a transação $transaction = (new eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); } //...
添加分期付款配置
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Transação que será autorizada $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' ); // Configuração de parcelamento $transaction->setInstallments(3); // Autoriza a transação $transaction = (new eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); }
添加网关和模块的附加信息
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Transação que será autorizada $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' )->additional(1234, 56); // Autoriza a transação $transaction = (new eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); }
授权带有动态MCC的交易
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Transação que será autorizada $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' )->mcc( 'LOJADOZE', '22349202212', new SubMerchant( '1234', 'São Paulo', 'BRA', '123ASDFA123', 'Rua Acre', 'SP', '07064-010', '71.789.371/0001-42' ) ); // Autoriza a transação $transaction = (new eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); } //...
授权IATA交易
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Transação que será autorizada $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' )->iata('code123', '250'); // Autoriza a transação $transaction = (new eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); }
捕获交易
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Transação que será capturada $transaction = (new eRede($store))->capture((new Transaction(20.99))->setTid('TID123')); if ($transaction->getReturnCode() == '00') { printf("Transação capturada com sucesso; tid=%s\n", $transaction->getTid()); }
取消交易
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Transação que será cancelada $transaction = (new eRede($store))->cancel((new Transaction(20.99))->setTid('TID123')); if ($transaction->getReturnCode() == '359') { printf("Transação cancelada com sucesso; tid=%s\n", $transaction->getTid()); }
通过ID查询交易
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); $transaction = (new eRede($store))->get('TID123'); printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());
通过参考查询交易
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); $transaction = (new eRede($store))->getByReference('pedido123'); printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());
查询交易的取消
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); $transaction = (new eRede($store))->getRefunds('TID123'); printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());
具有身份验证的交易
<?php // Configuração da loja em modo produção $store = new Store('PV', 'TOKEN', Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); // Configura a transação que será autorizada após a autenticação $transaction = (new Transaction(25, 'pedido' . time()))->debitCard( '5277696455399733', '123', '01', '2020', 'John Snow' ); // Configura o 3dSecure para autenticação $transaction->threeDSecure(ThreeDSecure::DECLINE_ON_FAILURE); $transaction->addUrl('https://redirecturl.com/3ds/success', Url::THREE_D_SECURE_SUCCESS); $transaction->addUrl('https://redirecturl.com/3ds/failure', Url::THREE_D_SECURE_FAILURE); $transaction = (new eRede($store))->create($transaction); if ($transaction->getReturnCode() == '220') { printf("Redirecione o cliente para \"%s\" para autenticação\n", $transaction->getThreeDSecure()->getUrl()); }