Pesquisa no site
Itens ativos
Posts mais lidos hoje
Login do usuário
Assine o RSS do Drupal-BR
Modificação do uc_boleto para pagseguro, como enviar as variaveis de produto?
Opa meus amigos...
Eu baixei o código do módulo de pagamento por boletos feito pelo diego, e estou alterando o código para funcionar junto com o pagseguro (www.pagseguro.com.br). Estou com um problema para enviar as seguintes variaveis:
item_id_x
item_descr_x
item_quant_x
item_valor_x
(este "x" é substituido por um número identificador)
Bom, navegando pela documentação da API do ubercart, eu cheguei numa função que parece que me fornece tudo o que eu quero: http://www.ubercart.org/docs/api/hook_cart_display
O problema agora é utilizar a função na parte que eu quero. Vejam a parte do código que eu alterei:
'email_cobranca' => variable_get('uc_boleto2_email_pagseguro', ''),
//'refTran' => variable_get('uc_boleto2_convenio', '').$valor_reftran,
//'dtVenc' => $vencimento,
'tipo' => 'CP',
'moeda' => 'BRL',
'item_valor_1' => $valor_total, // limite de 500, ou seja, 5,00 reais
'cliente_nome' => $nome_cliente,
'cliente_end' => substr($order->delivery_street1, 0, 64),
'cliente_cidade' => substr($order->delivery_city, 0, 64),
'cliente_uf' => uc_get_zone_code($order->delivery_zone),
'cliente_cep' => substr($order->delivery_postal_code, 0, 16),
// codigo adicionado por mim
hook_cart_display($item);
foreach($item) {
'item_id_' . $item->nid => $item->nid;
'item_descr_' . $item->nid => $item->title;
'item_quant_' . $item->nid => $item->qty;
'item_valor_' . $item->nid => $item->#value;
};
// fim do codigo adicionado por mim
'cart_order_id' => $order->order_id,
'urlRetorno' => url('cart/boleto2/complete/'. uc_cart_get_id(), NULL, NULL, FALSE),
//'tpPagamento' => '2',
//'msgLoja' =>utf8_decode($msg_loja),
);
Da forma que escrevi, a página de carrinho me retorna o seguinte erro:
Parse error: syntax error, unexpected ';', expecting ')' in /home/webdesigner/www/natalimports/sites/all/modules/uc_boleto2/uc_boleto2.module on line 293
O lance é que eu sei o que está causando o erro, mas não sei escrever este trecho de código de outra forma, que faça ele funcionar =\
- Se logue ou se registre para poder enviar comentários
- 1082 leituras


Ei gente, isso é importante para mim, e eu realmente estou pesquisando e não estou encontrando uma resposta.
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
--
http://www.marcusvbp.com.br | http://designlivre.net | http://inofensivo.blog.br
Onde é a linha 293?
Paulino Michelazzo
http://www.michelazzo.com.br
http://www.michelazzo.blog.br
Paulino Michelazzo
http://www.cms.blog.br
http://www.michelazzo.com.br
Paulino, é a primeira linha que eu adicionei (hook_cart_display($item);). como eu disse, sei onde estar o erro, o problema é que eu nao consigo fazer de outra forma =\
Obrigado pela resposta.
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
--
http://www.marcusvbp.com.br | http://designlivre.net | http://inofensivo.blog.br
Não executei o código, somente o li. Tente alterar a vírgula no final de 'cliente_cep' => substr($order->delivery_postal_code, 0, 16), para ponto-e-vírgula.
Abs
Paulino Michelazzo
http://www.michelazzo.com.br
http://www.michelazzo.blog.br
Paulino Michelazzo
http://www.cms.blog.br
http://www.michelazzo.com.br
Marcus, eu não tive como testar, mas olhando por cima notei alguns possiveis problemas, o primeiro é esse teu foreach que esta errado, ele tem que ser no formato
foreach (expressao_array as $valor)
instrucoes
foreach (expressao_array as $chave => $valor)
instrucoes
Mas passando por ai, ainda tem o problema de todo aquele teu código adicionado estar dentro do array, o que eu não entendi é quantos valores de cada item você pretende enviar, sei la, a idéia não ficou bem clara pra mim. Não teria como você utilizar a hook_cart_display($item) fora do array, pegar os valores e ai sim alimentar os campos do array?
Eu teria que ver com calma a função no ubercart, só vi rapidamente, então é mais palpite do que uma solução, infelizmente to bem sem tempo essa semana, só no meio de julho é que tudo acalma pra mim, mas no que eu conseguir te ajudar vou postando ai.
abs
------------------------
Associação Kung Fu Tigre - http://www.akft.com.br
------------------------
Em breve algo novo.
Diego, obrigado pela resposta.
Vou dar uma olhada, não sabia que o foreach estava errado.
A idéia é passar os produtos a quantidade, o id e o valor do produto para o boleto do pagseguro.
Segundo a documentação fornecida pelo próprio pagseguro, eu tenho que passar as váriaveis assim:
item_id_x
item_descr_x
item_quant_x
item_valor_x
onde este "x" no final de cada variavel é um numero... Por exemplo se tivesse dois produtos no carrinho, deveria ser passado algo assim:
item_id_1 = '1'
item_descr_1 = 'TV DE PLASMA'
item_quant_1 = '1'
item_valor_1 = '3.000'
item_id_2 = '2'
item_descr_2 = 'playstation'
item_quant_2 = '1'
item_valor_2 = '500'
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
--
http://www.marcusvbp.com.br | http://designlivre.net | http://inofensivo.blog.br
Pessoas, é o seguinte, fiz uma solução alternativa devido a um estouro no prazo... está funcionando mas tenho um problema com acentos... qualquer palavra acentuada que é enviada à página do pagseguro fica com a letr acentuada trocada. Isso é um claro problema de incompatibilidade entre charsets... Alguém sabe como faço para resolver isso?
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
--
http://www.marcusvbp.com.br | http://designlivre.net | http://inofensivo.blog.br
Ei gente, alguma idéia de como resolvo o problema na acentuação?
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
--
http://www.marcusvbp.com.br | http://designlivre.net | http://inofensivo.blog.br
Po cara... akele problema eh de syntax php... pelo que reparei, vc esta fazendo um foreach dentro da declaração de um array... viagem total...
'email_cobranca' => variable_get('uc_boleto2_email_pagseguro', ''),
//...
);
hook_cart_display($item);
foreach(ALGUMA_COISA as $item) {
$data['item_id_' . $item->nid] = $item->nid;
//...
};
Assim seria a implementação correta...
flw!
--
Pedro Faria de Miranda Pinto
http://www.eusouopedro.com
http://www.phpavancado.net
Bate Papo sobre Drupal? irc://irc.freenode.net/drupal-br
Mais uma vez, obrigado Pedro!
Vou testar e posto o resultado aqui.
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
--
http://www.marcusvbp.com.br | http://designlivre.net | http://inofensivo.blog.br
Valeu pedro, consegui fazer usando o código que você me forneceu. O resultado final foi:
$i = 1;
foreach($item as $item) {
$data['item_id_' . $i] = $item->nid;
$data['item_descr_' . $i] = $item->title;
$data['item_quant_' . $i] = $item->qty;
$data['item_valor_' . $i] = ($item->price)*100;
$i++;
};
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
--
http://www.marcusvbp.com.br | http://designlivre.net | http://inofensivo.blog.br
Marcus,
dando uma rápida olhada neste teu código, sugiro que tu mude para:
$data = array(
'cart_order_id' => $order->order_id,
'cliente_nome' => $nome_cliente,
'cliente_end' => substr($order->delivery_street1, 0, 64),
'cliente_cidade' => substr($order->delivery_city, 0, 64),
'cliente_uf' => uc_get_zone_code($order->delivery_zone),
'cliente_cep' => substr($order->delivery_postal_code, 0, 16),
'email_cobranca' => variable_get('uc_boleto2_email_pagseguro', ''),
'moeda' => 'BRL',
'tipo' => 'CP',
'urlRetorno' => url('cart/boleto2/complete/'. uc_cart_get_id(), NULL, NULL, FALSE),
// 'dtVenc' => $vencimento,
// 'msgLoja' => utf8_decode($msg_loja),
// 'refTran' => variable_get('uc_boleto2_convenio', '') . $valor_reftran,
// 'tpPagamento' => '2',
);
// Dados de cada um dos produtos
foreach(uc_cart_get_contents() as $item) {
$data['item_id_' . $item->nid] = $item->nid;
$data['item_descr_' . $item->nid] = $item->title;
$data['item_quant_' . $item->nid] = $item->qty;
$data['item_valor_' . $item->nid] = $item->value;
};
Eu não li os comentários, então não sei sequer se alguém já respondeu... :P
abraço,
massa
PS: se tu estiver usando Drupal 6, substitua a função substr() por drupal_substr()
abraço,
massa
Fala Massa!
Obrigrado por responder. eu resolvi meu problema com esta listagem já... inclusive postei aqui como comentário. Meus problemas agora sao outros:
http://drupal-br.org/suporte/e-commerce-com-drupal/modulo-de-pagamentos-...
--
http://www.marcusvbp.com.br
http://www.nh18.com.br
http://inofensivo.blog.br
--
http://www.marcusvbp.com.br | http://designlivre.net | http://inofensivo.blog.br