Retorno de dados Pag Seguro

0 respostas
B

A minha aplicação usa o pag seguro com host de pagamentos
estou usando o servidor de testes aqui localhost

para efetuar a transacao ou seja comprar ele funciona blz porem eu preciso verificar quando o statrus da transação no pag seguro for alterado

tipo se for cancelado ou rejeitada uma operação eu mando um email avisando o usuario isso

ou se a transação foui finalizada ou seja ja tenho como pegar a grana do pag seguro eu preciso salvar essas infos no meu banco de dados

Estava fazendo uma consulta ajax quando o cara está logado no meu sistema de tempo em tempo passando o id das transações do pag seguro e ele consequentemente deveria me retornar um post das alterações.

Só que esse ajax não retorna nada a principio nen erro nen valores fica totalmente no escuro.

Não sei se estou fazendo certo pois o servidor de testes foi configurado para mandar reposta para uma classe do meu sistema e não se se está enviando porque como disse não tenho erro nenhum

seguem os arquivos

Java script que ativa a chamada para consulta do status

<script type="text/javascript"> 
$(document).ready(function() {
var user =${usuario.id};
 		setInterval(function() {
			$.ajax({
			type: 'POST',
			data: {usuario: user},
			url: "${pageContext.request.contextPath}/pagseguro/verificaTransacao.do",
  			success: function(data){
  				//alert(urlCheck);
  			}
		}); 
	}, 5000);
 		

});
</script>

Codigo dentro do servidor que atende o js

public void verificaTransacao(HttpServletRequest req,HttpServletResponse res) throws IOException{
		ArrayList<CreditoUser> creditos = (ArrayList<CreditoUser>) creditoUsuarioManager.getByUser(usuarioManager.getById(Long.parseLong(req.getParameter("usuario"))));
		for (CreditoUser creditoUser : creditos) {
			try {

			    // Construct data
			    String data = URLEncoder.encode("TransacaoID", "UTF-8") + "=" + URLEncoder.encode(creditoUser.getIdPagSeguro(), "UTF-8");
			    data += "&" + URLEncoder.encode("Anotacao", "UTF-8") + "=" + URLEncoder.encode("checkoutvalues", "UTF-8");
			    data += "&" + URLEncoder.encode("Comando", "UTF-8") + "=" + URLEncoder.encode("validar", "UTF-8");
			
			    

				
			    // Send data
			    URL url = new URL(URL_NPI);
			    URLConnection conn = url.openConnection();
			    conn.setDoOutput(true);
			    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
			    wr.write(data);
			    wr.flush();
			
			    // Get the response
			    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			    String line;
			    while ((line = rd.readLine()) != null) {
			        System.out.println(line.toString());
			    }
			    wr.close();
			    rd.close();
			} catch (Exception e) {
			}
		}

codigo do metodo que trata o retorno automatico do pag seguro se eu enviar um form de uam pag html para ele ele trata sem nehum erro

public ModelAndView retornoPagSeguro(HttpServletRequest req,HttpServletResponse res) throws IOException{
		
		
		if ("POST".equalsIgnoreCase(req.getMethod())) {
			//o método POST indica que a requisição é o retorno da validação NPI.
			Enumeration<?> en = req.getParameterNames();
			String token = "cole aqui o token do vendedor";
			StringBuffer validaNPI = new StringBuffer("Comando=validar&Token=");
			validaNPI.append(token);
			
			while (en.hasMoreElements()) {
				String paramName = (String) en.nextElement();
				String paramValue = req.getParameter(paramName);
				validaNPI.append("&");
				validaNPI.append(paramName);
				validaNPI.append("=");
				validaNPI.append(paramValue);
			}

			URL u = new URL(URL_NPI);
			URLConnection uc = (URLConnection) u.openConnection();
			uc.setDoOutput(true);
			uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			PrintWriter pw = new PrintWriter(uc.getOutputStream());
			pw.println(validaNPI.toString());
			pw.close();

			BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
			String resp = in.readLine();
			in.close();

			//Verifica se o status da transação está VERIFICADO
			String transacaoID = req.getParameter("TransacaoID");
			if (resp.equals("VERIFICADO")) {
				System.out.println("o post foi validado");
				System.out.println("\n\n post validado return"+req.getParameter("ProdID_1")+" status "+req.getParameter("StatusTransacao")+"\n\n");
				CreditoUser credito = new CreditoUser();
				credito.setCredito(creditoManager.getById(Long.parseLong(req.getParameter("ProdID_1"))));
				credito.setDataUltimaOperacao(new Date());
				credito.setTpOperacao(1);
				credito.setStatusTransaction(req.getParameter("StatusTransacao"));
				credito.setUsuario((Usuario)req.getSession().getAttribute("usuario"));
				credito.setIdPagSeguro(req.getParameter("TransacaoID"));
				creditoUsuarioManager.save(credito);
				
			} else if (resp.equals("FALSO")) {
				System.out.println("o post nao foi validado");
			} else {
				System.out.println("erro na integracao");
			}

		} 
		
		
		else if ("GET".equalsIgnoreCase(req.getMethod())) {
			Enumeration<?> en = req.getParameterNames();
			while (en.hasMoreElements()) {
				String paramName = (String) en.nextElement();
				System.out.println("OS  VALORES QUE EU MANDEI SÃO "+paramName+" == "+req.getParameter(paramName));
			}
		}
		
		
		
		Enumeration<?> en = req.getParameterNames();
		while (en.hasMoreElements()) {
			String paramName = (String) en.nextElement();
			System.out.println("OS  VALORES QUE EU MANDEI SÃO "+paramName+" == "+req.getParameter(paramName));
		}
		

		//URL_NPI
		return new ModelAndView("feedback/feedback","msg","O pag seguro bombou seu boc&oacute;");
	}
Criado 17 de março de 2011
Respostas 0
Participantes 1