Http Post no C#, Passando produtos para o carrinho da PagSeg
10/06/2008
0
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
Posts
10/06/2008
Cla
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
11/06/2008
Srph82
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
12/06/2008
Cla
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.
13/06/2008
Cla
Como você fez para ler os valores que chegaram por POST?
Carlos.
Clique aqui para fazer login e interagir na Comunidade :)