• Cadastro
  • Fóruns
  • Manual
  • Tradução
  • Tutoriais
Início

Pesquisa no site

Google

Itens ativos

  • Como Filtrar Conteudo Selec List de Acordo com Papéis de Usuários
  • Usuários com diferentes níveis de acesso.
  • Usando o drupal
  • Mamão e Drupal com açucar, desmistificando o primeiro contato com o Drupal
  • Galeria de Fotos
  • Taxonomy Blocks
  • computed field
  • Site em manutenção... como entrar? URGENTE
  • MULTILINGUAGENS
  • internacionalization, vistas e view field
more

Posts mais lidos hoje

  • Como Criar um Tema Para Drupal 6 - Parte 01
  • Tutoriais
  • Manual
  • Usando o drupal
  • Sobre o Drupal
  • Instalação ilustrada em localhost
  • Galeria de Fotos
  • Usuários com diferentes níveis de acesso.
  • Módulo de votaçao para computar votos positivos e negativos
  • Como Criar um Tema Para Drupal 6 - Parte 02

Login do usuário

  • Criar uma conta
  • Recuperar senha

Assine o RSS do Drupal-BR

RSS dos itens mais ativos

RSS do conteúdo

RSS dos comentários

Início » Fórum » Suporte » Módulos

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:

  $data = array(

        '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 =\

‹ Como adicionar eventos a campos de formulários? Exibir campos CCK apenas para usuários com determinados papéis, ›
Enviado por marcus_vbp em 27/06/2008 - 09:27
  • Módulos
  • Se logue ou se registre para poder enviar comentários
  • 1082 leituras
Em 30/06/2008 - 10:31 marcus_vbp disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 30/06/2008 - 15:36 pmichelazzo disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 30/06/2008 - 17:15 marcus_vbp disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 30/06/2008 - 21:28 pmichelazzo disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 01/07/2008 - 01:29 diegohermes@dru... disse:

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.

  • Se logue ou se registre para poder enviar comentários
Em 01/07/2008 - 09:21 marcus_vbp disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 03/07/2008 - 14:26 marcus_vbp disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 07/07/2008 - 11:53 marcus_vbp disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 07/07/2008 - 13:41 pedrofaria disse:

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...

$data = array(
  '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

  • Se logue ou se registre para poder enviar comentários
Em 07/07/2008 - 16:53 marcus_vbp disse:

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

  • Se logue ou se registre para poder enviar comentários
Em 07/07/2008 - 21:41 marcus_vbp disse:

Valeu pedro, consegui fazer usando o código que você me forneceu. O resultado final foi:

      $item = uc_cart_get_contents();
        $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

  • Se logue ou se registre para poder enviar comentários
Em 08/07/2008 - 12:35 brmassa disse:

Marcus,

dando uma rápida olhada neste teu código, sugiro que tu mude para:

// Dados gerais do pedido
$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

  • Se logue ou se registre para poder enviar comentários
Em 08/07/2008 - 14:38 marcus_vbp disse:

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

  • Se logue ou se registre para poder enviar comentários
Designimage

Este site é feito, orgulhosamente, com Drupal.