I have a problem with the PAGSEGURO module, when I select the option to pay for it and click Next, it reports this error.

Notice: Undefined property: stdClass::$line_items em commerce_pagseguro_redirect_form() (linha 117 de /home/amxalumi/public_html/sites/all/modules/commerce_pagseguro/commerce_pagseguro.module).
Warning: Invalid argument supplied for foreach() em commerce_pagseguro_redirect_form() (linha 117 de /home/amxalumi/public_html/sites/all/modules/commerce_pagseguro/commerce_pagseguro.module).
Notice: Undefined variable: line_item_ids em commerce_pagseguro_redirect_form() (linha 121 de /home/amxalumi/public_html/sites/all/modules/commerce_pagseguro/commerce_pagseguro.module).

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

tregismoreira’s picture

I have same error.

Notice: Undefined property: stdClass::$line_items em commerce_pagseguro_redirect_form() (linha 117 de /sites/all/modules/commerce_pagseguro/commerce_pagseguro.module).
Warning: Invalid argument supplied for foreach() em commerce_pagseguro_redirect_form() (linha 117 de /sites/all/modules/commerce_pagseguro/commerce_pagseguro.module).
Notice: Undefined variable: line_item_ids em commerce_pagseguro_redirect_form() (linha 121 de /sites/all/modules/commerce_pagseguro/commerce_pagseguro.module).
Notice: Undefined property: stdClass::$line_items em commerce_pagseguro_redirect_form() (linha 138 de /sites/all/modules/commerce_pagseguro/commerce_pagseguro.module).
Warning: Invalid argument supplied for foreach() em commerce_line_items_total() (linha 1412 de /sites/all/modules/commerce/modules/line_item/commerce_line_item.module).
Warning: Invalid argument supplied for foreach() em commerce_line_items_total() (linha 1446 de /sites/all/modules/commerce/modules/line_item/commerce_line_item.module).
wasare’s picture

Assigned: Adeptos_da_tecnologia » wasare
Priority: Normal » Major
Status: Active » Needs review
FileSize
5.52 KB

@tregismoreira I worked to fix these errors and I'll make this module fully functional.

The patch attached fixes the errors and adds initial support for "Automatic Data Return" including the PagSeguro token and improves customer data sent to Pagseguro on checkout process (minimizing the needs the customer filling again his informations to PagSeguro).

I request to @recidive adds me as co-maintainer because I want colaborate to spread of drupal commerce into brazilian community.

recidive’s picture

Title: ERROR PAGSEGURO » Update module with latest API changes to avoid errors
Priority: Major » Critical
Status: Needs review » Needs work

@wasare obrigado por trabalhar no módulo. Seguem algumas observações para podermos ter suas alterações incorporadas no projeto.

1. A função commerce_pagseguro_process_rad() foi criada para receber o Retorno Automático de Dados. O redirecionamento do usuário, se for mesmo necessário, deve ter seu próprio callback.

2. Em commerce_pagseguro_redirect_form() por favor não use tabs e use sempre somente um espaço antes e depois de '=' ou '=>'. Troque 'else if' por 'elseif' de acordo com o Coding Standards.

3. Em vez de usar $line_item->commerce_product[LANGUAGE_NONE][0]['product_id'], é melhor usar o EntityMetadataWrapper como você vez com o $order_wrapper acima. Algo assim:

$line_item_wrapper = entity_metadata_wrapper('commerce_line_item', $line_item);
$product_id = $line_item_wrapper->commerce_product->product_id->value();
wasare’s picture

@recidive eu incorporei todas as observações que você indicou.

Eu criei um projeto sanbox com uma versão completamente funcional do módulo, incluindo a atualização do status do pagamento / pedido através da nova API do pagseguro.

Quem desejar testar: http://drupal.org/sandbox/wasare/1587886

recidive’s picture

Status: Needs work » Needs review

@wasare massa, pretendo revisar o seu código essa semana.

Seria interessante se você tivesse iniciado o seu repositório a partir do repositório oficial do módulo, assim eu conseguiria dar pull no seu código localmente para testar, e depois push para o oficial, quando o patch estivesse completo, dando os respectivos créditos aos seus commits.

wasare’s picture

@recidive eu criei um novo branch "reloaded" na sandbox com as mudanças, mas a partir de um clone do repositório oficial. Acredito que agora facilite seu trabalho de revisão do código (bastaria um pull deste novo branch).

http://drupal.org/node/1587886/commits
http://drupalcode.org/sandbox/wasare/1587886.git/commit/a5948b5c02ca42ee...

recidive’s picture

@wasare, dei uma olhada no commit e parece muito bom, pretendo revisar na quinta. Se você puder, por favor arrume os comentários do código, colocando todos em inglês, começando com letra maiúscula e finalizando com um ponto. Obrigado.

wasare’s picture

@recidive consegui enviar as alterações propostas para os comentários (tudo no branch reloaded na sandbox)

pedrorocha’s picture

Esse código está dando erro quando existem itens que não são produtos para serem pagos, como o frete, no caso de usarem o módulo Commerce Shipping.

pedrorocha’s picture

Estava dando erro por não estar usando a API 2 do PagSeguro também, conforme a documentação em https://pagseguro.uol.com.br/v2/guia-de-integracao/pagamento-via-html.html

O código que segue como patch tem como base o módulo Commerce PagSeguro, então é só rodar o patch mesmo(eu já adaptei o código do Reloaded e integrei ai Master do Commerce Pagseguro).

recidive’s picture

Ótimo patch. Minha idéia inicial era portar para API 2.0, junto com as outras alterações, então concordo com a mudança.

Fico só na dúvida de como creditar o @wasare devidamente, pois estava pensando inicialmente em dar um merge da branch dele.

@pedrorocha: por não ter convenção em como os argumentos devem ser indentados, sugiro mantermos todos nas mesma linha, mesmo que ultrapasse 80 colunas (duvido que alguém vá imprimir esse código algum dia e editores podem ser configurados para quebrar automaticamente ou rolar a view port). Outra coisa: não usamos bloco de comentário no corpo de funções pela simples razão de tornar difícil comentar a função inteira quando necessário durante o desenvolvimento. Gostaria que fizesse essas alterações. E se possível que veja com o @wasare como ter o seu patch adicionado ao fork dele, para que eu possa pegar de lá, ou envie um patch criado com o git format-patch, para manter os créditos.

Precisamos de pessoas para testar o patch: @wasare, @tregismoreira?

Obrigado pessoal, vamos finalizar isso logo, para podermos lançar uma versão beta do módulo.

recidive’s picture

Status: Needs review » Fixed

Marcando como 'fixed', pois todas as alterações aqui foram incorporadas.

Obrigado pessoal.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.