Pagseguro integração Java

  1. Estou planejando e estudando o Pagseguro.
  2. Objetivo integrar no nosso sistema.
  3. Documentos li vários documentos no próprio site da uol como esse: Site dicas integração pagseguro
  4. Baixei a lib Java de integração.
  5. Integramos no nosso projeto.
  6. Começamos os testes.
  7. Criamos uma conta no sandbox, sempre aparece fora do ar
  8. Estamos fazendo uma integração transparente, onde seremos responsáveis pela captura dos dados necessário para solicitar, consultar e enviar pagamentos ao pagseguro.
  9. Mas esta difícil a documentação deles é pobre e não tem um roteiro definido para implementação clara.
  10. as resposta deles são demoradas no forum chegam até mais de 30 dias.

Dicas

  • Alguém pode dar dicas que nos norteia nesse sentido
  • Uma outra solução de pagamento que tenha esses requisito (mais barato possível as taxas) e seja fácil a implementação
  • Principalmente tenha um roteiro de implementação e um ambiente que possa simular nossa implementação.
1 curtida

Já fiz uma integração utilizando o IUGU (https://iugu.com/informacoes/precos-e-tarifas),
as tarifas, a documentação, o atendimento e o serviço em si são muito bons.

1 curtida

Olá Edulemos,

Fizeram a integração via webservices?
Faz consulta de status de transações?
Eles notificam seu sistema de modificações nessas transações?

Sim a integração e via rest, e pode-se fazer consultas das transações sim, e existe um gatilho que você configura para receber as notificações automáticas no seu sistema.

Bom dia Edu,

Comecei a fazer a integração com a IUGU, estou optando pelo modo transparente,
Onde vou desenvolver meus rest client, e fazer as chamadas na api IUGU,

Comecei com um problema basic de erro 401 nos meus TDD

Você chegou a fazer os testes de integração com JUnit, Ou usou o SoapUI,
para fazer os testes?

Estou usando o Spring, já tentei varias combinações de parâmetros e ainda nada…

https://api.iugu.com/v1/customers/meu_codigo_cliente_cadastrado_no_sandbo_ambiente_de_testes

Coloco os parâmetros no como header, na URL e nada

HttpHeaders headers = new HttpHeaders();
headers.set("mode", "TEST");
headers.set("username", "code cadastrado na API teste=API Token de Testes");
HttpEntity<?> entity = new HttpEntity<>(headers);
final String costumerCode = "code_cadastrado no sandBox teste";
final String url = urlOverHttps + "/" + costumerCode;
Customer customer = restTemplate.exchange(url, HttpMethod.GET, entity, Customer.class).getBody();

Pelo SoapUI, tentei com as mesmas variáveis e também tenho o mesmo problema, passei também como parametros ?username=

Bom dia,

Bem 401 e não autorizado, você pegou seu token?

Para testar aconselho usar o plugin HttpRequester do Firefox, lembrando
que o método e POST.

https://api.iugu.com/v1/customers/numtoken

Sim peguei meu token.

Não a requisição é method GET

Se você fosse montar essa URL como faria?

curl -X GET https://api.iugu.com/v1/customers/7585552717DCODE37777 -u 770abc460ba011b06493d9d193a:

Em Java, o que é esse u

Post ou GET depende da operação realizada, no caso para listar e GET uma das formas de autenticação seria enviar o parâmetro api_token conforme documentação da api.

https://api.iugu.com/v1/customers?api_token=7585552717DCODE37777

Sobre o -u, isto não e java, da uma pesquisada sobre curl.

Edu, obrigado deu certo…

Ficou assim o resultado…!

MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("api_token", apiCodeTest);
params.add("mode", "TEST");
final String costumerCode = "codigo_do_cliente";
final String url= String.format(CustomerService.FIND_URL, costumerCode);
UriComponents uriComponents = UriComponentsBuilder.fromHttpUrl(url).queryParams(params).build();

Resultado URL

https://api.iugu.com/v1/customers/codigo_do_cliente?api_token=apiCodeTest&mode=TEST

Execução com Spring

RestTemplate        restTemplate=new RestTemplate("mais configurações, conforme projeto")
Customer customer = restTemplate.getForObject(uriComponents.toUri(), Customer.class);
Assert.assertEquals("Teste1 - by marcelo", customer.getName());