none
Http Post no C# RRS feed

  • Pergunta

  •  

    Olá,

     

    Estou trabalhando com o VS 2005 e C#. Preciso passar os produtos do carrinho de compras do site para o carrinho de compras do PagSeguro, isso do C#. O código exemplo que a PagSeguro fornece é:

     

    Exemplo 2: Código HTML para a venda de 2 produtos, incluindo os campos opcionais para cálculo do

    frete e cadastro

    <form target="PagSeguro" action="https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspxmethod="post" />

    <input type="hidden" name="email_cobranca" value="suporte@lojamodelo.com.br" />

    <input type="hidden" name="tipo" value="CP" />

    <input type="hidden" name="moeda" value="BRL" />

    <input type="hidden" name="item_id_1" value="12345" />

    <input type="hidden" name="item_descr_1" value="Descrição do item à ser vendido" />

    <input type="hidden" name="item_quant_1" value="1" />

    <input type="hidden" name="item_valor_1" value="100" />

    <input type="hidden" name="item_frete_1" value="0" />

    <input type="hidden" name="item_peso_1" value="0" />

    <input type="hidden" name="item_id_2" value="67890" />

    <input type="hidden" name="item_descr_2" value="Descrição do item 2 à ser vendido"/>

    <input type="hidden" name="item_quant_2" value="1" />

    <input type="hidden" name="item_valor_2" value="199" />

    <input type="hidden" name="item_frete_2" value="0" />

    <input type="hidden" name="item_peso_2" value="0" />

    <input type="hidden" name="tipo_frete" value="EN" />

    <input type="hidden" name="cliente_nome" value="Nome do cliente" />

    <input type="hidden" name="cliente_cep" value="29200720" />

    <input type="hidden" name="cliente_end" value="Rua José Barcelos de Mattos" />

    <input type="hidden" name="cliente_num" value="12" />

    <input type="hidden" name="cliente_compl" value="Sala 109" />

    <input type="hidden" name="cliente_bairro" value="Bairro do cliente" />

    <input type="hidden" name="cliente_cidade" value="Cidade do cliente" />

    <input type="hidden" name="cliente_uf" value="ES" />

    <input type="hidden" name="cliente_pais" value="BRA" />

    <input type="hidden" name="cliente_ddd" value="27" />

    <input type="hidden" name="cliente_tel" value="12345678" />

    <input type="hidden" name="cliente_email" value="emaildocliente@cliente.com.br" />

    <input type="image" src="https://pagseguro.uol.com.br/Security/Imagens/btnfinalizaBR.jpg" name="submit"

    alt="Pague com PagSeguro - é rápido, grátis e seguro!" />

    </form>

     

    Com base em pesquisas na internet montei o seguinte código:

     

    public string HttpPost(string URL)

    {

    System.Net.WebClient client = new System.Net.WebClient();

    System.Collections.Specialized.NameValueCollection nvc = new System.Collections.Specialized.NameValueCollection();

    nvc.Add("email_cobranca", "minhaID");

    nvc.Add("tipo", "CBR");

    nvc.Add("moeda", "BRL");

    nvc.Add("item_id", "100");

    nvc.Add("item_descr", "Teste do PagSeguro");

    nvc.Add("item_quant", "2");

    nvc.Add("item_valor", "1000");

    nvc.Add("frete", "0");

    nvc.Add("peso", "0");

    client.Headers.Add("Cache-Control", "no-cache");

    client.Headers.Add("Accept-Encoding", "gzip, deflate");

    client.Headers.Add("Accept-Language", "pt-br");

    byte[] responseArray = client.UploadValues(URL, "POST", nvc);

    return new System.Text.ASCIIEncoding().GetString(responseArray);

    }

     

    Mas esse código não é o ideal, porque eu não quero nenhum valor de retorno e ele não faz o que eu preciso que é fazer com que a minha loja direcione o usuário para a página do carrinho da PagSeguro, passando os produtos para o mesmo. Como faço isso?

     

    Obrigado antecipadamente,

     

    CLA.

    quinta-feira, 29 de maio de 2008 19:54

Respostas

  • Olá Joyce,

     

    Descobri uma solução para o problema. É assim:

     

    Você cria uma página vazia aspx e nela você criar todo o código html, colocando todos os produtos do carrinho, em uma variável (aqui eu a chamei de carrinho) então você executa esse código assim:

     

    Response.ContentType = "text/html";

     

    string carrinho = "<form target='PagSeguro' action='https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx' method='post' />" +

    "<input type='hidden' name='email_cobranca' value='suporte@lojamodelo.com.br' />" +

    "<input type='hidden' name='tipo' value='CP' />" +

    "<input type='hidden' name='moeda' value='BRL' />" +

    "<input type='hidden' name='item_id_1' value='12345' />" +

    "<input type='hidden' name='item_descr_1' value='Descrição do item à ser vendido' />" +

    "<input type='hidden' name='item_quant_1' value='1' />" +

    "<input type='hidden' name='item_valor_1' value='100' />" +

    "<input type='hidden' name='item_frete_1' value='0' />" +

    "<input type='hidden' name='item_peso_1' value='0' />" +

    "<input type='hidden' name='item_id_2' value='67890' />" +

    "<input type='hidden' name='item_descr_2' value='Descrição do item 2 à ser vendido'/>" +

    "<input type='hidden' name='item_quant_2' value='1' />" +

    "<input type='hidden' name='item_valor_2' value='199' />" +

    "<input type='hidden' name='item_frete_2' value='0' />" +

    "<input type='hidden' name='item_peso_2' value='0' />" +

    "<input type='hidden' name='tipo_frete' value='EN' />" +

    "<input type='hidden' name='cliente_nome' value='Nome do cliente' />" +

    "<input type='hidden' name='cliente_cep' value='29200720' />" +

    "<input type='hidden' name='cliente_end' value='Rua José Barcelos de Mattos' />" +

    "<input type='hidden' name='cliente_num' value='12' />" +

    "<input type='hidden' name='cliente_compl' value='Sala 109' />" +

    "<input type='hidden' name='cliente_bairro' value='Bairro do cliente' />" +

    "<input type='hidden' name='cliente_cidade' value='Cidade do cliente' />" +

    "<input type='hidden' name='cliente_uf' value='ES' />" +

    "<input type='hidden' name='cliente_pais' value='BRA' />" +

    "<input type='hidden' name='cliente_ddd' value='27' />" +

    "<input type='hidden' name='cliente_tel' value='12345678' />" +

    "<input type='hidden' name='cliente_email' value='emaildocliente@cliente.com.br' />" +

    "<input type='image' src='https://pagseguro.uol.com.br/Security/Imagens/btnfinalizaBR.jpg' name='submit' alt='Pague com PagSeguro - é rápido, grátis e seguro!' />" +

    "</form>";

     

    Response.Write(carrinho);

     

     

    Espero ter ajudado,

     

    CLA.

    terça-feira, 10 de junho de 2008 14:35
  • so p/ completar a info acima, o q fiz alem do post acima foi

    colocar um funcao java script:

        <script type="text/javascript" language="javascript">
            function carregaTela()
            {
                var form = document.forms[2];
                document.form2.action = "https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx";
                document.form2.method = "post";
                document.form2.target = "pagseguro";
                document.form2.submit();

            }
           
        </script>

    dei um nome e id ao form que vai ser criado de FORM2

    e no botao " onload='carregaTela()' "


    ai qdo abre a tela ele ja da o submit na pagina jogando o usuario p/ pagseguro


    p/ nao ficar jogando o usuario de tela em tela

    coloquei um botao, p/ usuario optar na forma de pagamento...  e qdo isso for feito, mando um iframe abrir essa pagina do pagfacil e como ja executa o submit...
    ja abre uma tela nova p/ pagamento do pedido

    Smile

    abraço
    quinta-feira, 8 de janeiro de 2009 15:55

Todas as Respostas

  • Olá,

     

    Estou tentando sem sucesso fazer como mostrado no código abaixo, eu adiciono campos hidden e depois dou um cross postback, porque de acordo com um site o cross postback passaria esses valores hidden para a página destino. Eu chego a entrar na página destino mas não funciona, ela informa que ocorreu um erro (não especifica qual)... O procedimento que estou fazendo está errado?

     

    public partial class FormPost : System.Web.UI.Page

    {

    protected void Page_Load(object sender, EventArgs e)

    {

    btnPost.PostBackUrl = "https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx";

    }

    protected void btnPost_Click(object sender, EventArgs e)

    {

    AddHiddenField("email_cobranca", "suporte@lojamodelo.com.br");

    AddHiddenField("tipo", "CP");

    AddHiddenField("moeda", "BRL");

    AddHiddenField("item_id_1", "12345");

    AddHiddenField("item_descr_1", "Descrição do item à ser vendido");

    AddHiddenField("item_quant_1", "1");

    AddHiddenField("item_valor_1", "100");

    AddHiddenField("item_frete_1", "0");

    AddHiddenField("item_peso_1", "0");

    AddHiddenField("item_id_2", "67890");

    AddHiddenField("item_descr_2", "Descrição do item 2 à ser vendido");

    AddHiddenField("item_quant_2", "1");

    AddHiddenField("item_valor_2", "199");

    AddHiddenField("item_frete_2", "0");

    AddHiddenField("item_peso_2", "0");

    AddHiddenField("tipo_frete", "EN");

    AddHiddenField("cliente_nome", "Nome do cliente");

    AddHiddenField("cliente_cep", "29200720");

    AddHiddenField("cliente_end", "Rua José Barcelos de Mattos");

    AddHiddenField("cliente_num", "12");

    AddHiddenField("cliente_compl", "Sala 109");

    AddHiddenField("cliente_bairro", "Bairro do cliente");

    AddHiddenField("cliente_cidade", "Cidade do cliente");

    AddHiddenField("cliente_uf", "ES");

    AddHiddenField("cliente_pais", "BRA");

    AddHiddenField("cliente_ddd", "27");

    AddHiddenField("cliente_tel", "12345678");

    AddHiddenField("cliente_email", emaildocliente@cliente.com.br);

    }

     

    private void AddHiddenField(string name, string value)

    {

    System.Web.UI.HtmlControls.HtmlInputHidden htmlHidden = new System.Web.UI.HtmlControls.HtmlInputHidden();

    htmlHidden.ID = name;

    htmlHidden.Name = name;

    htmlHidden.Value = value;

    Page.Form.Controls.Add(htmlHidden);

    }

     

    }

     

     

    sexta-feira, 30 de maio de 2008 21:02
  •  

    Caro CLA

     

    VOCÊ JÁ TEVE SUCESSO COM ESSA TAREFA, POIS ESTOU TENDO O MESMO PROBLEMA.

     

    PODE ME AJUDAR?!

     

    JOYCE

    domingo, 8 de junho de 2008 16:02
  • Olá Joyce,

     

    Ainda não obtive sucesso, mandei um e-mail para o suporte da pagseguro mas a resposta foi inútil, eles simplesmente mandaram um link apontando para as instruções sobre como implementar o carrinho passo-a-passo... Que eu já conhecia. Caso consiga resolver o problema, por favor, poste a resposta aqui.

     

    CLA.

    terça-feira, 10 de junho de 2008 12:04
  • Olá Joyce,

     

    Descobri uma solução para o problema. É assim:

     

    Você cria uma página vazia aspx e nela você criar todo o código html, colocando todos os produtos do carrinho, em uma variável (aqui eu a chamei de carrinho) então você executa esse código assim:

     

    Response.ContentType = "text/html";

     

    string carrinho = "<form target='PagSeguro' action='https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx' method='post' />" +

    "<input type='hidden' name='email_cobranca' value='suporte@lojamodelo.com.br' />" +

    "<input type='hidden' name='tipo' value='CP' />" +

    "<input type='hidden' name='moeda' value='BRL' />" +

    "<input type='hidden' name='item_id_1' value='12345' />" +

    "<input type='hidden' name='item_descr_1' value='Descrição do item à ser vendido' />" +

    "<input type='hidden' name='item_quant_1' value='1' />" +

    "<input type='hidden' name='item_valor_1' value='100' />" +

    "<input type='hidden' name='item_frete_1' value='0' />" +

    "<input type='hidden' name='item_peso_1' value='0' />" +

    "<input type='hidden' name='item_id_2' value='67890' />" +

    "<input type='hidden' name='item_descr_2' value='Descrição do item 2 à ser vendido'/>" +

    "<input type='hidden' name='item_quant_2' value='1' />" +

    "<input type='hidden' name='item_valor_2' value='199' />" +

    "<input type='hidden' name='item_frete_2' value='0' />" +

    "<input type='hidden' name='item_peso_2' value='0' />" +

    "<input type='hidden' name='tipo_frete' value='EN' />" +

    "<input type='hidden' name='cliente_nome' value='Nome do cliente' />" +

    "<input type='hidden' name='cliente_cep' value='29200720' />" +

    "<input type='hidden' name='cliente_end' value='Rua José Barcelos de Mattos' />" +

    "<input type='hidden' name='cliente_num' value='12' />" +

    "<input type='hidden' name='cliente_compl' value='Sala 109' />" +

    "<input type='hidden' name='cliente_bairro' value='Bairro do cliente' />" +

    "<input type='hidden' name='cliente_cidade' value='Cidade do cliente' />" +

    "<input type='hidden' name='cliente_uf' value='ES' />" +

    "<input type='hidden' name='cliente_pais' value='BRA' />" +

    "<input type='hidden' name='cliente_ddd' value='27' />" +

    "<input type='hidden' name='cliente_tel' value='12345678' />" +

    "<input type='hidden' name='cliente_email' value='emaildocliente@cliente.com.br' />" +

    "<input type='image' src='https://pagseguro.uol.com.br/Security/Imagens/btnfinalizaBR.jpg' name='submit' alt='Pague com PagSeguro - é rápido, grátis e seguro!' />" +

    "</form>";

     

    Response.Write(carrinho);

     

     

    Espero ter ajudado,

     

    CLA.

    terça-feira, 10 de junho de 2008 14:35
  • so p/ completar a info acima, o q fiz alem do post acima foi

    colocar um funcao java script:

        <script type="text/javascript" language="javascript">
            function carregaTela()
            {
                var form = document.forms[2];
                document.form2.action = "https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx";
                document.form2.method = "post";
                document.form2.target = "pagseguro";
                document.form2.submit();

            }
           
        </script>

    dei um nome e id ao form que vai ser criado de FORM2

    e no botao " onload='carregaTela()' "


    ai qdo abre a tela ele ja da o submit na pagina jogando o usuario p/ pagseguro


    p/ nao ficar jogando o usuario de tela em tela

    coloquei um botao, p/ usuario optar na forma de pagamento...  e qdo isso for feito, mando um iframe abrir essa pagina do pagfacil e como ja executa o submit...
    ja abre uma tela nova p/ pagamento do pedido

    Smile

    abraço
    quinta-feira, 8 de janeiro de 2009 15:55
  • CLA, de uma olhada nessa biblioteca. Ela encapsula todo esse processo que você está fazendo.

    http://code.google.com/p/pagsegurodotnet/

     

    Att..

    segunda-feira, 28 de novembro de 2011 10:16