developersrede / erede-php Goto Github PK
View Code? Open in Web Editor NEWSDK PHP Rede
License: MIT License
SDK PHP Rede
License: MIT License
Após instalar o plugin, dá erro crítico no site. No log me retorna:
2023-02-07T16:06:46+00:00 CRITICAL Uncaught Error: Class "Rede\Environment" not found in /home3/labout86/public_html/wp-content/plugins/rede-woocommerce-master/includes/class-wc-rede-api.php:32
Olá boa tarde, infelizmente não consigo utilizar essa SDK porque não possui acesso as carteiras digitais (visa checkout e masterpass). No manual não encontrei o URL (endpoint) e como deve ser feito a autenticação da loja junto com os json que precisa ser enviado, alguém poderia dar um exemplo bem simples de como deve ser o CURL em PHP em uma requisição de transação por carteira digital?
Abaixo coloco um código de base para o CURL.
https://www.userede.com.br/desenvolvedores/pt/produto/e-Rede#documentacao-carteiras
`
$corpo = [
"reference" => uniqid(),
"amount" => 20000, // para R$200,00
"origin" =>6, // 4 masterpass, 6 visa checkout
"storageCard" => 0, // transacao sem credencial armazenada
"cardNumber" => "5448280000000007", /// aqui no caso seria o wallet key??
"expirationMonth" => 12, /// é obrigatório envio dessa informação??
"expirationYear" => 2020, /// é obrigatório envio dessa informação??
"securityCode" => "235" /// é obrigatório envio dessa informação??
];
$cabecalhos = [
"Content-Type: application/json"
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_VERBOSE => true, /// DEBUGAR O CURL
CURLOPT_STDERR => $fp, /// DEBUGAR O CURL
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_URL => 'https://api.userede.com.br/erede/v1/transactions/',
CURLOPT_HTTPHEADER => $cabecalhos,
CURLOPT_POSTFIELDS => json_encode($corpo),
CURLOPT_RETURNTRANSFER => true
]);
$resposta = curl_exec($ch);
curl_close($ch);
`
Muito obrigado.
Prezados, primeiramente, parabéns pela documentação!! Excelente.
Sem mencionar a grande quantidade de SDK's! Parabéns!!!!
Antes que eu esqueça, o site (developers) está com tempos de resposta muito alta. Por exemplo, ao efetuar o login, ou pedir para exibir as lojas, enfim, muito lento, desde o dia em que fiz o cadastro (dia 13/02/2019).
Ah, ainda sugiro atualizar a documentação informando que o terceiro parâmetro para objetos "Store" deve ser o ambiente, assim como, na minha humilde opinião, acho que o default (quando omitido) deveria ser sandbox. Mas, sem problemas. (Para ajudar, tomei a liberdade de fazer um pull request, caso concorde) =)
Vamos ao problema:
Estou no modo sandbox, e somente tenho retorno da api se algo estiver errado com os dados de PV ou token (aí recebo o "Affiliation: Invalid parameter format" ou "Token: Invalid token.").
Caso estes dados estejam corretos, não recebo mais retorno a api. O que eu poderia estar fazendo errado? (ou será que teria haver com a lentidão que mencionei préviamente?)
Muito obrigado por antecipação, e abaixo trecho do meu código:
`
$store = new Store(env('E_REDE_PV'),env('E_REDE_TOKEN'), Environment::sandbox());
$transaction = new Transaction();
$transaction->setReference($idVenda);
$transaction->setAmount($valorTotal);
$transaction->setSoftDescriptor($produto);
$transaction->capture(true);
$transaction->setCard($cardNumber, $securityCode, $expirationMonth, $expirationYear, $cardHolderName, 'credit');
if ($installments != null)
$transaction->setInstallments($installments);
$eRede = new eRede($store);
$retorno = null;
try {
$retorno = $eRede->create($transaction);
} catch (RedeException $ex) {
$retorno = $ex->getMessage();
}
print_r($retorno);`
Bom dia!
Estou tentando fazer a integração usando o modulo rede com esta biblioteca php, mas não esta dando certo, poderia me auxiliar?
Primeiro teste que fui fazer e já deu erro. O que estou fazendo errado ?
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/storage/d/8e/d4/duplloimpacto1/public_html/restrito/autorizacao.php on line 9
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()); }Olá bom dia.
Estou desenvolvendo uma aplicação em PHP com integração a Rede e encontrei um pequeno problema.
Na classe /vendor/developersrede/erede-php/src/Rede/Transaction.php a função setAmount realiza a seguinte operação (int)($amount * 100);
Essa operação pode retornar alguns valores errados, ex (int) (9.04 * 100) = 903.
Uma sugestão para resolver esse pequeno problema seria alterar:
DE:
public function setAmount($amount)
{
$this->amount = (int)($amount * 100);
return $this;
}
PARA:
public function setAmount($amount)
{
$this->amount = ceil($amount * 100);
return $this;
}
Algué poderia me ajudar a fazer a integração com o 3ds? Se puder exemplificar ficaria grato.
Alguns commits atrás o anti-fraude foi removido. Qual o motivo? Quem possui lib antiga deve parar de usar?
Olá!
Alguém sabe me informar se na Rede eu consigo fazer a Tokenização de Cartões?
Utilizo essa função na Cielo, e gostaria de usar também na Rede.
Lendo o manual, vi que a Rede oferece um serviço de Carteira Digital, mas acredito que não seja a mesma coisa, pois eles comentam que precisa ser contratado por bandeira.
Obrigado!
Boa tarde.
Estou desenvolvendo um app, utilizando o sistema da rede, finalizando fui efetuar os testes de erro, CVV errado, data de validade errada, etc...
Porém, pelo que vi, ele aceita qualquer CVV e validade, quebrando meus testes de erro.
Alguma luz?
Obrigado.
Como faço para setar a url de notificação?
Onde é informado em quantas parcelas o cliente vai efetuar o pagamento.
Creio que deveria estar no json. "installments"
Liguei para a Rede mas souberam informar...
Bom dia.
Tentando rodar em Sandbox e tenho o seguinte retorno:
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Invalid json' in /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Transaction.php:436 Stack trace: #0 /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php(93): Rede\Transaction->jsonUnserialize('Access Denied') #1 /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php(186): Rede\Service\AbstractTransactionsService->parseResponse('Access Denied', 403) #2 /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php(45): Rede\Service\AbstractService->sendRequest('{"kind":"credit...', 'POST') #3 /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/eRede.php(81): Rede\Service\AbstractTransactionsService->execute() #4 /home/storage/a/dd/35/ksi/public_html/pgtoservice/in in /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php on line 99
Segue código:
// Configuração da loja em modo sandbox
$store = new \Rede\Store('10004477', 'f153d92adbe9430c87a962c96636a2c1', \Rede\Environment::sandbox());
// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
'5448280000000007',
'235',
'12',
'2020',
'Cliente teste'
);
// 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());
}
Olá, eu preciso identificar a bandeira do cartão. Como é feito essa tarefa?
Não encontro na documentação, nem na biblioteca referencia a criação do Link de Pagamento. É a funcionalidade mais simples de todas e a integração mais rápida possivel, disponibilizada praticamente por quase todos os concorrentes. Porque nao tem na Rede? Há previsão para disponibilização? (Maxipago não vale, é muito arcaico, alem de que passa pouca credibilidade ao comprador)
Olá pessoal, gostaria de saber se essa lib já esta englobando a versão 2.0 do 3D Secure.
Olá.
Existe alguma previsão para liberar a integração por PIX?
Boa noite, estou implementando o código erede, já coloquei o código js, porém não sei onde coloco a pasta disponibilizada aqui do Git
O authorizationCode esta vindo com valor vazio quando faz uma new Transaction para a rede. Uma solução o authorizationCode esta vindo dentro do Brand o que pode ser adicionado no projeto.
Resposta do código abaixo:
object(Rede\Transaction)[4]
private 'amount' => int 99
private 'additional' => null
private 'authorization' => null
private 'authorizationCode' => null
private 'brandTid' => null
private 'brand' =>
object(Rede\Brand)[12]
private 'name' => string 'Mastercard' (length=10)
private 'returnCode' => string '00' (length=2)
private 'returnMessage' => string 'Success.' (length=8)
private 'authorizationCode' => string '586083' (length=6)
private 'cancelId' => null
private 'capture' => null
private 'cardBin' => string '544828' (length=6)
private 'cardHolderName' => string 'Teste' (length=5)
private 'cardNumber' => string '5448280000000007' (length=16)
private 'cart' => null
private 'dateTime' =>
Framework Laravel 5.8 - WampServer - Testes em Localhost
SSL certificate problem: unable to get local issuer certificate
Esse é o erro que retorna quando tento finalizar uma compra usando a API. Fui na E-REDE, criei uma loja playground, configurei o Controller do Cart para a requisição.
`//Api Rede
$pv = 10004970;
$token = 'ed33348f5608426a81748437d5834500';
$store = new \Rede\Store($pv, $token, \Rede\Environment::sandbox());
//dd($store);
//variaveis
$numero_cartao = '';
$cvc = '';
$mesvenc = '';
$anovenc = '';
$nome_cartao = '';
// 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);
dd($transaction);
if ($transaction->getReturnCode() == '00') {
printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
exit;
}`
O primiero dd(), retorna:
Store {#234 ▼ -environment: Environment {#231 ▼ -ip: null -sessionId: null -endpoint: "https://api.userede.com.br/desenvolvedores/v1/" } -filiation: 10004970 -token: "ed33348f5608426a81748437d5834500" }
No segundo dd() o retorno é o erro com a certificação SSL. Alguem sabe o que pode ser?
No Wamp tenho o cacert.pem configurado da seguinte forma
;curl.cainfo = "C:\wamp\baixado\cacert.pem"
Olá, estou construindo um projeto de inscrição de curso, mas gostaria de na transação adicionar o curso contratado na transação, teria como adicionar um ou mais item na forma de "Autorizando uma transação".
Vi que tem na forma de autorização antifraude, mas são muitos dados do cliente e o sistema é bem simples, não solicitamos o endereço no cadastro apenas dados pessoais simples para identificação do mesmo.
Agradeço
Olá, valeria a pena um exemplo com antifraude.
Obrigado
Olá amigo, estou implementando o e-rede em uma loja propria de um cliente em ASP classico.
É a primeira vez que trabalho com json, mas ja tenho toda a biblioteca.
Estou tendo apenas 1 dificuldade, para enviar o json, como faço para enviar os dados da afiliacao, que seria o pv e o toquem enquanto esta em desenvolvimento?
No corpo do json não aceita, na url do Post me retorna somente os dados que enviei.
Pode me ajudar?
Olá, estou tentando realizar transações no Sandbox, mas retorna o codigo de integração 42 o tempo todo.
Mesmo que eu coloque strings como "er5bd74dc2985f08" ele retorna o mesmo erro, tornando impraticável utilizar o Sandbox.
Curiosamente, nos primeiros dias em que tive contato com a integração via SDK, eu fiz dezenas de transações no Sandbox com o campo "reference" definido como "1".
Olá, primeiro quero parabenizar pelo package, código muito bom!
Estou com este problema:
Peguei o código de exemplo e estou rodando em máquina local com um servidor Laragon (apache) e possuo certificado válido, está retornando esta mensagem abaixo.
"Unauthorized. Contact issuer."
try {
$environment = \Rede\Environment::sandbox();
$store = new \Rede\Store($credentials['pv'], $credentials['token'], $environment);
// Transação que será autorizada
$transaction = (new \Rede\Transaction(20, 'pedido' . time()))
->creditCard(
'5448280000000007',
'235',
'12',
'2020',
'John Snow'
);
// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);
//...
// seu código aqui
} catch (\Rede\Exception\RedeException $e) {
echo $e->getMessage();
}
Como faço para realizar a transação com compra parcelada?
Tudo bem?
Estou com dificuldade em encontrar informações sobre como usar o softDescriptor.
Coo ele deve ser usado?
Obrigado
Quero ter o retorno da bandeira. Como faço para acessar o returncode do objeto Brand?
Tentei da seguinte forma:
$expira = explode('/', $request->expiry);
$dadosCartao = collect();
$dadosCartao->valor = $this->valorFloat($request->valorPagamento);
// Desta forma deu erro -> $dadosCartao->installments = ['type' => 'zero_interest', 'number' => $request->quantidadeParcela];
// Desta forma passou a vista -> $dadosCartao->installments = $request->quantidadeParcela;
$dadosCartao->pedido = $request->alunoCodigo . time();
$dadosCartao->numeroCartao = $this->removerEspacoEmBranco($request->number);
$dadosCartao->numeroVerificador = $request->cvc;
$dadosCartao->expiraMes = trim($expira[0]);
$dadosCartao->expiraAno = trim($expira[1]);
$dadosCartao->titular = $request->name;
// Autoriza a transação
$transacao = (new \Rede\eRede($this->redeStore))->create($this->setTransacao($dadosCartao));
Eu não sei colocar o sand box no meu site, alguém pode me ajudar? Sou iniciante e gostaria de aprender, mas não entendo, o suporte da rede pede que esteja pronto
pessoal alguem pode me dar uma mão ? oque falta no cod para conseguir testar ?
estou no php 7....
Percebi que ao enviar transações com caracteres acentuados o SDK passou a gerar um erro, então realizei algumas requisições diretamente via curl para API usando o mesmo json gerado pelo SDK e percebi que a API e.Rede não aceita caracteres formatados com Unicode. Portanto acredito que seria bacana se SDK, ao se gerar o json, "escapar" o Unicode e manter os caracteres UTF-8, nesse caso, por exemplo, a linha:
Deveria ser algo como:
public function execute()
{
return $this->sendRequest(json_encode($this->transaction, JSON_UNESCAPED_UNICODE), AbstractService::POST);
}
Alguem passou por esse erro?
Fatal error: Uncaught Error: Interface 'Rede\RedeSerializable' not found in /opt/lampp/htdocs/rede/src/Rede/Transaction.php on line 12
Como faço para usar no modo sandbox?
Me parece que é esse meu problema estou tentando usar, porem ele só retorna: "Affiliation: Invalid parameter format.".
Pode me ajudar?
Olá, vi que foi removida esta funcionalidade do SDK, exite algum lugar onde podemos encontrar os motivos e mais detalhes sobre o assunto?
O SDK não funciona em cenários onde não se utiliza Magento pois o método sendRequest sempre invoca o método \Mage::log
Como consigo a lista de código das transações atualizados. No link abaixo estão faltando alguns como por exemplo o 101 e 106.
https://www.userede.com.br/pt-BR/Lists/Downloads/Attachments/104/e.Rede%20Manual%20%20%20API%20SOAP.pdf
Ao realizar transações me retorna erro algum, e ao tentar criar uma loja nova, me retorna o erro. "Erro ao criar loja, entre em contato com a Rede."
Alguém passando por isso também, alguma previsão de retorno?
Oi bom dia,
Realizamos muitas transações por dia com a rede e desde ontem algumas tem retornado a seguinte mensagem:
Failed to connect to api.userede.com.br port 443: Connection timed out
Nem conseguimos nos comunicar com a API. Sabem me dizer se está ocorrendo alguma oscilação por ai? Desde já grata.
Está ocorrendo erro fatal quando é retornado um codigo de status > 400 conforme abaixo o erro.
Desta maneira não consigo tratar o retorno da rede que neste caso é "cod: 171 - Operation not allowed for this transaction."
Será que está faltando algo em meu código? Essa função "throw new RedeException" tem alguma dependência que não estou vendo?
Fatal error: Uncaught exception 'Rede\Exception\RedeException' with message 'Operation not allowed for this transaction.' in /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php:80 Stack trace: #0 /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php(117): Rede\Service\AbstractTransactionsService->parseResponse('{"returnCode":"...', 422) #1 /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/Service/CaptureTransactionService.php(15): Rede\Service\AbstractService->sendRequest('{"amount":2099}', 'PUT') #2 /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/eRede.php(59): Rede\Service\CaptureTransactionService->execute() #3 /home/resen685/public_html/integrarRede/index.php(144): Rede\eRede->capture(Object(Rede\Transaction)) #4 {main} thrown in /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php on line 80
Boa noite, estou com problemas na integração e o suporte solicitou a abertura dessa Issue.
Estou utilizando a api atualizada e as instruções do readme. Funcionava normalmente a função crédito e crédito parcelado, até que parou de funcionar e retorna o erro:
Fatal error: Uncaught RuntimeException: Curl error[7]: in /home/onaorg/public_html/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php:198 Stack trace: #0 /home/onaorg/public_html/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php(47): Rede\Service\AbstractService->sendRequest('{"kind":"credit...', 'POST') #1 /home/onaorg/public_html/vendor/developersrede/erede-php/src/Rede/eRede.php(83): Rede\Service\AbstractTransactionsService->execute() #2 /home/onaorg/public_html/rede_teste.php(34): Rede\eRede->create(Object(Rede\Transaction)) #3 {main} thrown in /home/onaorg/public_html/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php on line 198
Testei em outro servidor e funciona normalmente. A versão do PHP do servidor que está com erro é: 7.3.22
Conseguem verificar qual configuração do servidor deve ser alterada?
Obrigado
Essa API está compatível com o PHP 7.2?
Ao realizar a Captura conforme exemplo:
// PV e TOKEN foram corretamente utilizados para criar uma transação com antifraude
// TID foi retornada na transação citada acima
$store = new \Rede\Store('PV', 'TOKEN');
// Transação que será capturada
$transaction = (new \Rede\eRede($store))->capture((new \Rede\Transaction(20.99))->setTid('TID'));
if ($transaction->getReturnCode() == '00') {
printf("Transação capturada com sucesso; tid=%s\n", $transaction->getTid());
}
Retorna o erro:
PHP Fatal error: Uncaught Rede\Exception\RedeException: Unsuccessful. Please, contact Rede. in /var/www/html/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php:86
Stack trace:
#0 /var/www/html/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php(141): Rede\Service\AbstractTransactionsService->parseResponse('{"returnCode":"...', 500)
#1 /var/www/html/vendor/developersrede/erede-php/src/Rede/Service/CaptureTransactionService.php(15): Rede\Service\AbstractService->sendRequest('{"amount":2099}', 'PUT')
#2 /var/www/html/vendor/developersrede/erede-php/src/Rede/eRede.php(81): Rede\Service\CaptureTransactionService->execute()
#3 /var/www/html/rede-capturar-transacao.php(8): Rede\eRede->capture(Object(Rede\Transaction))
#4 {main}
thrown in /var/www/html/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php on line 86
Debugando o response do CURL, resultou nisso:
"{"returnCode":"171","returnMessage":"Operation not allowed for this transaction."}"
Alguma ideia do que possa estar ocorrendo?
Olá,
poderia me explicar como faria a implementação da forma de debito, eu trabalho muito com o PagSeguro e lá ele tem a opção de selecionar o banco na loja virtual, no sistema rede é a mesma coisa? pois eu não achei nada que me explica-se a forma de integrar o debito na loja virtual.
Desculpe mais é a primeira vez que trabalho com a rede.
Agradeço
Como faço para enviar o pagamento com um Cartão Corporativo?
O envio é com CNPJ (14 caracteres). Na API, só aceita 11 caracteres.
https://www.userede.com.br/desenvolvedores/pt/produto/e-Rede#antifraude-rede-integracao-com-antifraude-rede
cpf | 11 | Numérico | Sim | Número de CPF do comprador.
Mensagem de retorno de erro:
907 => Consumer CPF: Invalid Parameter size.
Grato,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.