Array
(
)

Http Post no C#, Passando produtos para o carrinho da PagSeg

Cla
   - 10 jun 2008

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 fazendo com que o usuário fique na página do carrinho da PagSeguro para efetuar o pagamento, isso no 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

HTML































































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

CODE
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);

}


}

Mas não obtive sucesso. A idéia é adicionar campos hidden e depois dar um cross postback, porque de acordo com o que na Internet 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?

Obrigado antecipadamente,

CLA.


Cla
   - 10 jun 2008

Estou colocando o código fornecido pela PagSeguro aqui e nele substituinto os caracteres ´<´ e ´>´ por ´´ para evitar que o site interprete o código HTML ao invés de exibilo.

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


Srph82
   - 11 jun 2008

Com relação ao seu código pude verificar que ele passar os valores para uma proxima pagina, porem ele coloca alguns caracteres antes do nome do objeto que você cria.

Por exemplo vc criou o objeto
AddHiddenField(´email_cobranca´, ´suporte@lojamodelo.com.br´);

o .NET cria esse objeto com o seguinte nome na pagina
ctl00$email_cobranca

ele n cria o objeto apenas com o nome que você colocou.

Faça um teste vc mesmo. coloca o link do postbackurl para uma pagina local de teste e veja que os valores passam.

Estou tendo o mesmo problema e ainda n sei como resolver. Vou continuar a procura nessa linha se achar algo te passo. Se achar algo me notifique também.

at

Sérgio Roberto


Cla
   - 12 jun 2008

Olá Sérgio,

Seja se esse código resolve o seu problema:

String formSubmit = ´<form id=´SubmitForm´ name=´SubmitForm´ 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´ />´ +
´</form>´;

Response.ContentType = ´text/html´;
Response.Write(formSubmit);

Page.ClientScript.RegisterStartupScript(GetType(), ´PagSeguro´, ´<script>document.SubmitForm.submit();</script>´);

Espero ter ajudado,

Carlos.


Cla
   - 13 jun 2008

Olá Sérgio,

Como você fez para ler os valores que chegaram por POST?

Carlos.