filipegar / erede
为 e.Rede RESTful 支付处理提供的 PHP 无框架实现。
Requires
- php: >=5.6
- guzzlehttp/guzzle: >=6.0
This package is auto-updated.
Last update: 2024-09-15 22:18:23 UTC
README
#e.Rede PHP SDK
这是一个 PHP 的无框架框架实现,用于 UseRede 的 e.Rede RESTful 服务。UseRede。
UseRede(也称为 Redecard)是巴西领先的信用卡收单机构之一。
在开始使用之前,请确保该产品已为您的工作站购买。
主要功能
- 信用卡支付。
- 借记卡支付/认证。
- 取消授权/捕获。
- 查询交易。
限制
由于涉及应用程序的用户界面,SDK 仅作为创建交易的框架。在直接授权(不使用 3DS)的情况下,没有限制;但在需要认证的情况下,开发者必须使用 SDK 生成交易,并使用 Rede 返回的链接在应用程序中提供用户重定向。
安装 e.Rede
通过 Composer 安装此软件包是最好的方式。
如果您已经有了一个 composer.json 文件,只需将以下依赖项添加到您的项目中
"require": { "filipegar/erede": "^1.0" }
将依赖项添加到 composer.json 后,只需执行
composer install
或者,您可以直接在终端中执行
composer require "filipegar/erede"
使用 SDK
要使用 SDK 创建简单的信用卡支付,只需这样做
创建信用卡支付
<?php require 'vendor/autoload.php'; use Filipegar\eRede\Acquirer\Environment; use Filipegar\eRede\Acquirer\ERedeClient; use Filipegar\eRede\Acquirer\Transaction; use Filipegar\eRede\Acquirer\Refund; use Filipegar\eRede\Acquirer\Url; use Filipegar\eRede\Merchant; use Filipegar\eRede\Acquirer\Requests\ERedeErrorException; //Configure suas credenciais - PV e token $merchant = new Merchant("PVestabelecimento", "TOKEN"); //Crie seu cliente da SDK $eRede = new ERedeClient($merchant, Environment::sandbox()); // Crie uma instância de Transaction informando o ID do pedido na loja $transacao = (new Transaction("IDpedido"))->setCapture(false)->setSoftDescriptor('PEDIDO 12345'); // Crie uma instância de Payment informando o valor do pagamento $payment = $transacao->payment(123456); // Crie uma instância de Credit Card utilizando os dados de teste // disponíveis no manual de integração $card = $transacao->creditCard('CVV/CVV2') ->setCardHolderName('Fulano da Silva') ->setCardNumber('0000000000000001') ->setExpirationMonth('01')->setExpirationYear('2019'); // Envie o pagamento para a Rede try { // Utilizando o cliente SDK criado com Merchant + Environment $transacao = $eRede->authorize($transacao); // Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais // dados retornados pela Cielo $transactionTid = $transacao->getTid(); // Com o ID do pagamento, podemos fazer sua captura, se ela não tiver sido capturada ainda $captura = $eRede->captureTransaction($transactionTid, 123456); // E também podemos fazer seu cancelamento, se for o caso $refund = (new Refund())->setTid($transactionTid)->setAmount(123456)->url('CALLBACKurl', URL::URL_CALLBACK); $refund = $eRede->refundTransaction($refund); } catch (ERedeErrorException $e) { // Em caso de erros de integração, podemos tratar o erro aqui. // os códigos de erro estão todos disponíveis no manual de integração. $error = $e->getMessage(); //os erros de transferência do Guzzle estão em getPrevious(). $erroERede = (string) $e->getPrevious()->getRequest()->getBody(); } // ...
创建借记卡/认证支付
<?php require 'vendor/autoload.php'; use Filipegar\eRede\Acquirer\Environment; use Filipegar\eRede\Acquirer\ERedeClient; use Filipegar\eRede\Acquirer\Transaction; use Filipegar\eRede\Acquirer\Url; use Filipegar\eRede\Acquirer\ThreeDSecure; use Filipegar\eRede\Merchant; use Filipegar\eRede\Acquirer\Requests\ERedeErrorException; //Configure suas credenciais - PV e token $merchant = new Merchant("PVestabelecimento", "TOKEN"); //Crie seu cliente da SDK $eRede = new ERedeClient($merchant, Environment::sandbox()); // Crie uma instância de Transaction informando o ID do pedido na loja $transacao = (new Transaction("IDpedido"))->setCapture(false)->setSoftDescriptor('PEDIDO 12345'); // Crie uma instância de Payment informando o valor do pagamento $payment = $transacao->payment(123456); // Crie uma instância de Credit Card utilizando os dados de teste // disponíveis no manual de integração $card = $transacao->debitCard('CVV/CVV2') ->setCardHolderName('Fulano da Silva') ->setCardNumber('0000000000000001') ->setExpirationMonth('01')->setExpirationYear('2019'); // Obrigatório utilizar 3DS - 3D Secure - transação autenticada $threeD = $transacao->threeDSecure(ThreeDSecure::MPI_EREDE, ThreeDSecure::FAILURE_DECLINE)->setUserAgent('USER_AGENT_string'); // Defina as URLs para redirecionar seu cliente de volta para seu site. $transacao->url('https://teste.com.br/erede/sucesso', Url::URL_SUCCESS)->url('https://teste.com.br/erede/falha', Url::URL_FAILURE); // Envie o pagamento para a Rede try { // Utilizando o cliente SDK criado com Merchant + Environment $transacao = $eRede->authorize($transacao); // Redirecione o usuário de sua aplicação para a URL de autenticação. $transacao->getThreeDSecure()->getRedirectUrl(); } catch (ERedeErrorException $e) { // Em caso de erros de integração, podemos tratar o erro aqui. // os códigos de erro estão todos disponíveis no manual de integração. $error = $e->getMessage(); //os erros de transferência do Guzzle estão em getPrevious(). $erroERede = (string) $e->getPrevious()->getRequest()->getBody(); } // ...
请注意,e.Rede 不会为未完成的认证交易生成 TID、NSU 或授权代码。在沙盒中,无法通过商店的 referenceId 查询这些交易。因此,方法 authorize 的响应中返回的 Transaction 对象将仅包含重定向链接、请求状态(220)和请求的日期/时间。
查询交易
<?php require 'vendor/autoload.php'; use Filipegar\eRede\Acquirer\Environment; use Filipegar\eRede\Acquirer\ERedeClient; use Filipegar\eRede\Merchant; use Filipegar\eRede\Acquirer\Requests\ERedeErrorException; //Configure suas credenciais - PV e token $merchant = new Merchant("PVestabelecimento", "TOKEN"); //Crie seu cliente da SDK $eRede = new ERedeClient($merchant, Environment::sandbox()); // Consulta de status da transação try { $query = $eRede->queryTransaction('TIDcom20digitos'); // Ou ainda via Referencia da loja $query = $eRede->queryTransactionReference('Reference'); // Consulte os dados da transação via getTransaction() $nsu = $query->getTransaction()->getNsu(); $cardBin = $query->getTransaction()->getCard()->getCardBin(); $amount = $query->getTransaction()->getPayment()->getAmount(); // Consulte os dados da captura $nsuCaptura = $query->getCapture()->nsu; // Ou consulte os dados de qualquer cancelamento $refundId = $query->getRefunds()[0]->getRefundId(); } catch (ERedeErrorException $e) { // Em caso de erros de integração, podemos tratar o erro aqui. // os códigos de erro estão todos disponíveis no manual de integração. $error = $e->getMessage(); //os erros de transferência do Guzzle estão em getPrevious(). $erroERede = (string) $e->getPrevious()->getRequest()->getBody(); } // ...
测试卡
测试卡在 e.Rede 文档中可用,请点击 此处。
点击“注册”以获取您的 token 和 PV 号码以测试此 SDK。
e.Rede 文档
e.Rede 文档可在 Rede 网站上找到,请点击 此处。
如果您发现行为与文档不同,请报告一个问题以供检查。
许可证
此开源软件包遵循 MIT 许可证 的条款。