pagseguro / pagseguro-sdk-php

Biblioteca de integração em PHP
298 stars 150 forks source link

Erro no retorno da API Boletos #137

Closed leobaiano closed 5 years ago

leobaiano commented 6 years ago

Estou tentando utilizar a API de boletos mas o retorno que estou recebendo é sempre o erro abaixo:

stdClass Object ( [timestamp] => 2018-08-08T20:40:39.598+0000 [status] => 500 [error] => Internal Server Error [exception] => org.springframework.dao.IncorrectResultSizeDataAccessException [message] => result returns more than one elements; nested exception is javax.persistence.NonUniqueResultException: result returns more than one elements [path] => /recurring-payment/boletos )

Inicialmente tentei enviar um post com o json sem utilizar nenhuma biblioteca e recebi este erro, então decidi usar o SDK do pagseguro e por fim utilizei este aqui e nas 3 tentativas recebo o mesmo erro, não acho que estou enviando informações incorretas porque quando mando algum dado incorreto ou deixo de enviar um dado obrigatório o retorno vem com uma mensagem bem direta.

Escrevo essa issue na esperança de que possam me ajudar a descobrir qual o problema.

geekcom commented 5 years ago

Olá @leobaiano,

É bem possível que isso tenha sido algum problema pontual, a API de pagamento via boleto está ok nesse exato momento.

geekcom commented 5 years ago

Bom, vou fechar a issue pois acredito que você não está mais enfrentando esse problema, caso seja preciso por favor abra outra issue.

prhost commented 5 years ago

O problema tava na documentação, o trecho abaixo fala pra passar o valor default mas na realidade tem que ser em uppercase DEFAULT ficando $boleto->setMode('DEFAULT');, vi isso no example do SDK, por favor mudem na documentação.

/**
 * Modo do pagamento
 *
 * Presença: Obrigatória.
 * Tipo: Texto.
 * Formato: aceita a opção default.
 *
 * @var string $paymentMode
 * @options=['default']
 */
$boleto->setMode($paymentMode);

Link da doc: https://devs.pagseguro.uol.com.br/v2/docs/bibliotecas-php-checkout-transparente-boleto

Issue relacionada: https://github.com/pagseguro/pagseguro-php-sdk/issues/134

Ruteski commented 5 years ago

Estou tendo um problema no checkout transparente com boleto. Realizando o pagamento com cartão de crédito, funciona perfeitamente, porém quando eu seleciono boleto, o retorno é "Internal Server Error", já validei todas as informações que estou enviando, está tudo conforme a documentação. Testei montando com o exemplo que tem na pagina, apenas informando o que é necessário para a sessão e ocorre o mesmo erro.

phvictorino commented 5 years ago

@Ruteski estou com o mesmo problema, acredito que o serviço deles esteja com algum problema, até porque alguns dias atrás testei com a mesma requisição e havia funcionado.

phvictorino commented 5 years ago

@Ruteski Acabei de testar e voltou a funcionar

oleandrolozano commented 5 years ago

@phvictorino estou recebendo este erro desde ontem. 'Internal Server Error'. Estou utilizando o sandbox do pagseguro. As validações são realizadas, pois forcei um erro e o mesmo é retornado, entretanto, ao enviar a requisição correta recebo a mensagem de erro no server.

TiagoSilvaLourenco commented 5 years ago

Estou com o mesmo problema, aconteceu a uma semana, tinha deixado funcional conforme o exemplo da biblioteca, depois parou de funcionar do nada sem eu mexer, pedi suporte mas não souberam explicar o erro, tudo indica que seja na biblioteca mesmo o problema, mas a uns dois dias atrás consegui fazer funcionar novamente e agora de novo voltou o mesmo erro. E pelo visto todos estamos com o mesmo problema

phvictorino commented 5 years ago

@TiagoSilvaLourenco @condkai na quinta feira entrei em contato com o suporte e disseram que estava com problema mesmo, mas havia voltado a funcionar.. mas no final de semana (desde sexta) não está funcionando novamente..

TiagoSilvaLourenco commented 5 years ago

@phvictorino obrigado por compartilhar

allowski commented 4 years ago

Reporto que em Julho do 2020, continuamos com o mesmo problema.

Volta e meia funciona, só quando quer mesmo:


{
    "timestamp": "2020-07-08T19:57:50.647+0000",
    "status": 500,
    "error": "Internal Server Error",
    "exception": "ps.recurringpayment.core.boleto.exception.PagSeguroInternalServerException",
    "message": "Status response 500 on https://ws.pagseguro.intranet/v2/transactions endpoint",
    "path": "/recurring-payment/boletos"
}```
rodriguesabner commented 4 years ago

07/09/2020

O problema continua...

vszambonp commented 4 years ago

Usem CPF válido no JSON em testes. A exceção é gerada para CPFs inválidos.

allowski commented 4 years ago

O problema é que api deveria retornar um erro 400, não 500. Eu consegui solucionar, porem e pouco intuitivo.

Usem CPF válido no JSON em testes. A exceção é gerada para CPFs inválidos.

rodriguesabner commented 4 years ago

Usem CPF válido no JSON em testes. A exceção é gerada para CPFs inválidos.

Eu estou usando meu CPF...

Como conseguiu @allowski?

allowski commented 4 years ago

O numero e complemento são obrigatórios também.

vszambonp commented 4 years ago

O problema é que api deveria retornar um erro 400, não 500. Eu consegui solucionar, porem e pouco intuitivo.

Usem CPF válido no JSON em testes. A exceção é gerada para CPFs inválidos.

Sim, deveria!

Só pra deixar claro, isso está ocorrendo para o endpoint: POST https://ws.pagseguro.uol.com.br/recurring-payment/boletos?{credenciais}

Provavelmente este serviço de boletos não está validando corretamente o parâmetro 'cpf' e resulta em exceções internamente. Não é pra qualquer cpf inválido que ele gera erro, nos testes que fiz o erro ocorre somente caso a string de cpf sejam 11 números iguais (ex.: 00000000000,99999999999). É possível que existam outros padrões que gerem erro. Como na documentação da Api ele usa como demonstração um cpf '00000000000', assim é provável que muitas pessoas deem de cara com este erro ao testar a Api seguindo a doc (https://dev.pagseguro.uol.com.br/reference/api-boleto)

Exemplo de json em que a Api retorna erro:

...
"customer": {
    "document": {
        "type": "CPF",
        "value": "00000000000"
      },
...
rodriguesabner commented 4 years ago

Pessoal, comigo estava retornando o erro 500 mesmo estando tudo correto, só resolveu criando uma nova conta com outra email, claro.

Então se vc já fez de tudo e ainda não funciona, tente criar uma nova conta!

DenisFernandes commented 3 years ago

2021 e ainda está acontecendo isso.. Estou integrando o Checkout Transparente usando o SDK disponível no branch para PHP 5.x.x, no meu caso o erro ocorre com pagamento via cartão de crédito Visa, o estranho é que alguns cartões Visa funcionam. Complicado de reproduzir esse error...

devcavalcante commented 3 years ago

Tô com esse mesmo erro para fazer o pagamento com cartão de crédito, com outra conta vai, mas a minha fica dando erro, e é só com o cartão de crédito.

rodriguesabner commented 3 years ago

@devcavalcante, algo que me ajudou muito foi trocar o status da transação pra Em Análise.

image

devcavalcante commented 3 years ago

@devcavalcante, algo que me ajudou muito foi trocar o status da transação pra Em Análise.

image

Cara, muito obrigada!! Tava presa nesse erro desde sexta-feita haha me salvou

aleffaso commented 3 years ago

Nossa, muuuuuuito obrigado! Eu estava debugando tudo que tinha construído