carsio / erede-php
4.2.1
2019-04-10 20:44 UTC
Suggests
- monolog/monolog: Allows more advanced logging of the application flow
README
SDK集成eRede
安装
依赖关系
- PHP >= 5.6
安装SDK
如果已经有一个composer.json文件,只需将其中的依赖添加到项目中
{
"require": {
"developersrede/erede-php": "*"
}
}
将依赖添加到composer.json后,只需执行
composer install
或者,您可以直接在终端执行
composer require "developersrede/erede-php"
使用
授权交易
<?php // Configuração da loja em modo produção $store = new \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' ); // Autoriza a transação $transaction = (new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' )->capture(false); // Autoriza a transação $transaction = (new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\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 \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' )->additional(1234, 56); // Autoriza a transação $transaction = (new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' )->mcc( 'LOJADOZE', '22349202212', new \Rede\SubMerchant( '1234', 'São Paulo', 'Brasil' ) ); // Autoriza a transação $transaction = (new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' )->iata('code123', '250'); // Autoriza a transação $transaction = (new \Rede\eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); }
创建具有反欺诈功能的交易
<?php //Define o ambiente da integração // Ambiente de produção $environment = \Rede\Environment::production(); // Ambiente sandbox // $environment = \Rede\Environment::sandbox(); $environment->setIp('127.0.0.1'); $environment->setSessionId('NomeEstabelecimento-WebSessionID'); // Configuração da loja $store = new \Rede\Store('PV', 'TOKEN', $environment); // Transação que será autorizada $transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' ); //Dados do antifraude $antifraud = $transaction->antifraud($environment); $antifraud->consumer('Fulano', 'fulano@de.tal', '11111111111') ->setGender(\Rede\Consumer::MALE) ->setPhone(new \Rede\Phone('011', '999999999')) ->addDocument('RG', '111111111'); $antifraud->address() ->setAddresseeName('Fulano') ->setAddress('Rua dos bobos') ->setNumber('0') ->setZipCode('01122123') ->setNeighbourhood('Bairro legal') ->setCity('Cidade Bonita') ->setState('UF') ->setType(\Rede\Address::COMMERCIAL); $antifraud->addItem( (new \Rede\Item('123123', 1, \Rede\Item::PHYSICAL)) ->setAmount(200000) ->setDescription('Televisão') ->setFreight(199) ->setDiscount(199) ->setShippingType('Sedex') ); // Autoriza a transação $transaction = (new \Rede\eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { $antifraud = $transaction->getAntifraud(); printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); printf("\tAntifraude: %s\n", $antifraud->isSuccess() ? 'Sucesso' : 'Falha'); printf("\tScore: %s\n", $antifraud->getScore()); printf("\tNível de Risco: %s\n", $antifraud->getRiskLevel()); printf("\tRecomendação: %s\n", $antifraud->getRecommendation()); }
为航空公司创建具有反欺诈功能的交易
<?php //Define o ambiente da integração // Ambiente de produção $environment = \Rede\Environment::production(); // Ambiente sandbox // $environment = \Rede\Environment::sandbox(); $environment->setIp('127.0.0.1'); $environment->setSessionId('NomeEstabelecimento-WebSessionID'); // Configuração da loja $store = new \Rede\Store('PV', 'TOKEN', $environment); // Transação que será autorizada $transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' ); //Dados do antifraude $antifraud = $transaction->antifraud($environment); $antifraud->consumer('Guilherme', 'lorem@ipsum.com', '15153855406') ->setGender(\Rede\Consumer::MALE) ->setPhone(new \Rede\Phone('011', '912341234')) ->addDocument('RG', '3123123123123'); $antifraud->address() ->setAddresseeName('Daenerys') ->setAddress('Avenida Paulista') ->setNumber('123') ->setComplement('Ap 2') ->setZipCode('01122123') ->setNeighbourhood('Bela Vista') ->setCity('Sao Paulo') ->setState('SP') ->setType(\Rede\Address::COMMERCIAL); //Dados do voo e passageiro $antifraud->setIata( (new \Rede\Flight('123213', 'Los Angeles, LA', 'New York, NY', '2017-02-15T10:54:45-9:00')) ->setPassenger((new \Rede\Passenger('Arya Stark', 'lorem@ipsum.com', '32423432432')) ->setPhone(new \Rede\Phone('011', '912341234'))) ); // Autoriza a transação $transaction = (new \Rede\eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { $antifraud = $transaction->getAntifraud(); printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); printf("\tAntifraude: %s\n", $antifraud->isSuccess() ? 'Sucesso' : 'Falha'); printf("\tScore: %s\n", $antifraud->getScore()); printf("\tNível de Risco: %s\n", $antifraud->getRiskLevel()); printf("\tRecomendação: %s\n", $antifraud->getRecommendation()); }
捕获交易
<?php // Configuração da loja em modo produção $store = new \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\eRede($store))->capture((new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\eRede($store))->cancel((new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); $transaction = (new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); $transaction = (new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\Environment::production()); // Configuração da loja em modo sandbox // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox()); $transaction = (new \Rede\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 \Rede\Store('PV', 'TOKEN', \Rede\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 \Rede\Transaction(25, 'pedido' . time()))->debitCard( '5277696455399733', '123', '01', '2020', 'John Snow' ); // Configura o 3dSecure para autenticação $transaction->threeDSecure(\Rede\ThreeDSecure::DECLINE_ON_FAILURE); $transaction->addUrl('https://redirecturl.com/3ds/success', \Rede\Url::THREE_D_SECURE_SUCCESS); $transaction->addUrl('https://redirecturl.com/3ds/failure', \Rede\Url::THREE_D_SECURE_FAILURE); $transaction = (new \Rede\eRede($store))->create($transaction); if ($transaction->getReturnCode() == '220') { printf("Redirecione o cliente para \"%s\" para autenticação\n", $transaction->getThreeDSecure()->getUrl()); }