none
Redirect ajuda RRS feed

  • Pergunta

  • Boa tarde pessoal seguinte:  Tenho um senário onde preciso redirecionar para outro site(pagamento) porem antes de eu redirecionar eu pego um código e uma url que recebo via xml. até ai blz.

    Meu problema é que tento ativar um timer1.enable=true; e depois dou o redirect. Nessa ordem, timer e redirect ai o timer não funciona, mas o redirect funciona.  Esse timer tem uma rotina de verificar se o codigo informado pelo xml 

    foi liberado pelo cartão ou não. Se eu fizer em duas etapas tipo usar um botão pro redirect e um botão para consultar funciona.

    estou usando axja e update painel





    Charles Tenorio

    sexta-feira, 3 de outubro de 2014 18:15

Respostas

  • Charles,

    No seu cenário não é recomendável o uso de Timer. Avalie a possibilidade armazenar o retorno em uma sessão ou algo do tipo. Na sequência (depois do redirect) verifique o conteúdo armazenado.

    • Sugerido como Resposta Deric Ferreira quarta-feira, 15 de outubro de 2014 12:04
    • Marcado como Resposta Marcos SJ quarta-feira, 23 de setembro de 2015 20:57
    terça-feira, 14 de outubro de 2014 21:00

Todas as Respostas

  • Tem como você postar um trecho desse código ?

    Se a sugestão resolver o problema, favor marcar como Resposta.

    sábado, 4 de outubro de 2014 03:40
  •  

    StringBuilder xmlCielo = newStringBuilder();             xmlCielo.Append("<?xml version='1.0' encoding='iso-8859-1' ?>");             xmlCielo.Append("<requisicao-transacao id='" + PG.Id_trasacao + "' versao='1.3.0'>");             xmlCielo.Append("<dados-ec>");             xmlCielo.Append("<numero>" + PG.Codigo_cielo + "</numero>");             xmlCielo.Append("<chave>" + PG.Chave_cielo + "</chave>");             xmlCielo.Append("</dados-ec>");             xmlCielo.Append("<dados-pedido>");             xmlCielo.Append("<numero>1</numero>");             xmlCielo.Append("<valor>" + PG.PrecoPrdudo1 + "</valor>");             xmlCielo.Append("<moeda>986</moeda>");             xmlCielo.Append("<data-hora>" + PG.Data_hora_transacao + "</data-hora>");             xmlCielo.Append("<descricao>[origem:172.16.34.66]</descricao>");             xmlCielo.Append("<idioma>PT</idioma>");             xmlCielo.Append("<soft-descriptor>" + DESCRI + "</soft-descriptor>");             xmlCielo.Append("</dados-pedido>");             xmlCielo.Append("<forma-pagamento>");             xmlCielo.Append("<bandeira>" + Cartao + "</bandeira>");             xmlCielo.Append("<produto>1</produto>");             xmlCielo.Append("<parcelas>1</parcelas>");             xmlCielo.Append("</forma-pagamento>");             xmlCielo.Append("<url-retorno>http://minhaurlderetrono.aspx</url-retorno>");             xmlCielo.Append("<autorizar>3</autorizar>");             xmlCielo.Append("<capturar>false</capturar>");             xmlCielo.Append("</requisicao-transacao>");             var result = newWebServiceCieloRequest()                                .Message(xmlCielo.ToString())                             .Response();             string rt = result.ToString();             string RetornoXmlCodigo = rt;             int posicao_codigo = RetornoXmlCodigo.IndexOf("<tid>");             string Codigo = RetornoXmlCodigo.Substring(posicao_codigo + 5, 20);             Session["CodRetornoCielo"] = Codigo;             int posicao = rt.IndexOf("https");             string url = rt.Substring(posicao, rt.Length - posicao);             string novaurl = url.Replace("</url-autenticacao>""").Trim();             novaurl = novaurl.Replace("</transacao>""").Trim();             Timer2.Enabled = true;             imgEsperCartao.Visible = true;             lblMsgCartao.Visible = true;                      Response.Redirect(novaurl);

    se quinte eu mando um xml para Cielo e rebebo de volta outro xml com o código da transação

    ai eu salvo esse códio em Codigo. e dou um redirect para chamar a pagina do cartão. o usr digita

    os dados e finaliza quando ele finaliza eu pego esse codigo q já tenho e tento verificar

    se essa transação foi autorizada ou não. eu coloquei isso dentro de um timer1, mas o problema e

    que depois do redirect nada funciona.

      

    Charles Tenorio

    sábado, 4 de outubro de 2014 11:48
  • Você tentou usar o timer.Start()?
    sábado, 4 de outubro de 2014 12:09
  • não sei o que é isso?

    Charles Tenorio

    terça-feira, 7 de outubro de 2014 11:24
  • Estranho você esta usando timer e não sabe o que é Timert.Start()?

    Isso é o que diz quando iniciar o temporizador, no componente Timer2 deixa habilitado e onde você colocou Timer2.Enabled muda para Timer2.Start() para o contador de tick iniciar e lembre-se de ao final de seus processamento colocar Timer2.Stop().

    Timer2.Start() -> inicia o contador de tick;

    Timer2.Stop() -> parar o contador de tick;


    quarta-feira, 8 de outubro de 2014 11:51
  • Cara,

    Como você está fazendo o redirect o timer não vai funcionar, ele até deixa como true, porem só vai funcionar se você permanecer na mesma página, pois precisa da tela ativa para funcionar os componentes, nesse caso você precisaria criar um serviço para antes de redirecionar ativar o serviço e ele rodar em segundo plano para fazer o processamento que você deseja.

    sábado, 11 de outubro de 2014 17:41
  • Charles,

    No seu cenário não é recomendável o uso de Timer. Avalie a possibilidade armazenar o retorno em uma sessão ou algo do tipo. Na sequência (depois do redirect) verifique o conteúdo armazenado.

    • Sugerido como Resposta Deric Ferreira quarta-feira, 15 de outubro de 2014 12:04
    • Marcado como Resposta Marcos SJ quarta-feira, 23 de setembro de 2015 20:57
    terça-feira, 14 de outubro de 2014 21:00
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    domingo, 28 de junho de 2015 15:20