UC PagSeguro for Drupal 6

pedrofaria - September 18, 2009 - 13:09
Project:UC PagSeguro | Ubercart payment
Version:6.x-1.x-dev
Component:Code
Category:task
Priority:normal
Assigned:Unassigned
Status:needs review
Description

Hello all, i will post in pt-BR because this module is only useful in Brazil. If some problem, ask me that i translate for you.

Bem, conforme já esta rolando a algum tempo a conversão para drupal 6 e ubercart 2, tirei alguns mins do meu dia para tocar essa carroça (que tem andado muito lenta).

Como o flaviovs fez uma junção de todo o trabalho do Marcelo, do Marcus e alguns ajustes próprios, fica mais tranquilo de fazer os ajustes finais para lançar o modulo.

Coloquei o código no CVS no branch do drupal 6 e tenho algumas considerações a fazer:

1) O código não está seguindo o padrão definido pelo drupal. Trabalhar dentro do padrão é altamente importante em um projeto open source. Mais informações: http://drupal.org/coding-standards

2) Uso de HTML entities nas frases. O Drupal usa o UTF-8 como charset base. Se você configurar seu editor de texto para usar UTF-8 durante a programação, o HTML entity torna-se desnecessário.

3) Código comentado ao invez de Comentário de código. Tem muito código comentado. Um módulo precisa estar limpo e padronizado para que seja lançado.

Bem, fora isso, precisamos de teste...

Critiquem!

-pedrofaria

#1

Marcus VBP - September 18, 2009 - 17:37

é cara, assumo parte da culpa, mas eu tava fazendo o possível no meu tempo e conhecimento limitados...

afinal eu tenho q lançar o site do meu cliente (que por sinal tá online: www.exercicioscontabeis.com.br).

bom, ao meu ver, o módulo tá com 2 problemas, que pode ser um só afinal: você efetua a compra, os dados vão para o pagseguro, mas a loja nao registra a compra, o usuário não é listado como comprador...

também tem que ver se qdo o usuário compra um produto com a opção de aplicar um papel ao usuário o papel vai ser realmente aplicado, mas eu acho que isso ta relacionado com o problema de nao registrar a compra.

#2

flaviovs - September 19, 2009 - 23:34

Pedro, respondendo às sua perguntas:

  1. "Você me permite que eu coloque no CVS do drupal para melhor controle do codigo?" Sim, por favor, faça isso. A idéia é essa mesmo!
  2. "O código não está seguindo o padrão definido pelo drupal." É verdade, e não me preocupei muito com isso neste momento. Se alguém puder dar uma acertada no fonte, agradeço em nome da comunidade.
  3. "Uso de HTML entities nas frases. O Drupal usa o UTF-8 como charset base. Se você configurar seu editor de texto para usar UTF-8 durante a programação, o HTML entity torna-se desnecessário." Por default meu editor só edita arquivos do Drupal em UTF-8. Ficou algum caracter fora do padrão no arquivo? Se sim, me fale que vejo o que ocorreu aqui pra acertar...
  4. "Código comentado ao invez de Comentário de código. Tem muito código comentado." É verdade! Somente depois de enviar o arquivo lembrei-me que, por exemplo, todo o código de request HTTP que foi substituído por drupal_http_request() foi comentado e ainda está no módulo ocupando espaço. Veja resposta 1 acima. Se alguém puder ajudar... ;-)

Existe outra questão em relação ao código, que é o uso de strings traduzidas. Algumas mensagens nem usam a função t() e em alguns lugares também não me preocupei com isso pois, afinal, o módulo é para brasileiros que falam português (nem sei se o PagSeguro tem opção de interface em outro idioma). Também não tenho certeza de qual o padrão do Drupal nestes casos.

As opções são: a) não usar t(); b) usar t() com strings em português e c) usar t() com strings em inglês e traduzir a interface via arquivo .po.

Se a gente for usar o padrão de facto, a opção a seguir seria a "c", mas acho que isso pode ser uma complicação desnecessária.

Edit: se for usar t() o texto tem que estar em inglês (ou seja, seguir a opção "c"). Vejam http://api.drupal.org/api/function/t:

t($string)
(...)
$string A string containing the English string to translate.

(O negrito fui eu que coloquei.)

#3

flaviovs - September 19, 2009 - 15:57

@Marcus VBP:

bom, ao meu ver, o módulo tá com 2 problemas, que pode ser um só afinal: você efetua a compra, os dados vão para o pagseguro, mas a loja nao registra a compra, o usuário não é listado como comprador...

também tem que ver se qdo o usuário compra um produto com a opção de aplicar um papel ao usuário o papel vai ser realmente aplicado, mas eu acho que isso ta relacionado com o problema de nao registrar a compra.

Marcus, eu testei o módulo e nada disso aconteceu (ou, sendo mais claro, tudo funcionou).

Note que, como disse no post original, testei apenas em um servidor de teste. Mas lembrando que as funções que você alega não estarem funcionando são atribuições do UC,

Pergunta: voce já experimentou usar o módulo de cartão de crédito que vem no UC com o gateway de teste e ver se o problema está mesmo no módulo do PagSeguro??

#4

Vuds - September 21, 2009 - 14:49

Pessoal,

Não tive tempo ainda de ver o módulo, me desculpem. Estou tentando correr pra garantir um fim de ano mais tranquilo pq pra dezembro estou esperando uma baixa de clientes.

Duas coisas:

1) Tem q adaptar o módulo para usar t() e expressões traduzidas. O avanço do PagSeguro deve seguir para a América Latina inteira (começando pela Argentina, onde o UOL já é bem forte).

2) Outra coisa q a fonte do UOL me garantiu é q eles vão mudar o sistema mas q as alterações de programação *devem ser* mínimas. Então eu continuaria trabalhando nessa base, mas com certo cuidado. Outra coisa é q, qdo entrar o sistema novo, provavelmente deverá haver um servidor de testes (ufa, finalmente!).

#5

pedrofaria - September 21, 2009 - 18:32

Boas notícias Vuds...

Então pessoal, vamos meter a mão na massa...

o código já está no CVS e pode ser baixado. Não quero liberar o snapshot da nova versão pq ainda necessita de muitas modificações.

Se alguém precisar de ajuda com o CVS, grita!

flw

#6

Marcus VBP - September 22, 2009 - 19:42

@flaviovs

cara, seguinte... eu testei diretamente no pagseguro, usando minha conta lá...

aí não sei...

vc nao tem como testar usando o pagseguro mesmo nao?

#7

flaviovs - September 27, 2009 - 15:51

Marcus, claro que tenho e vou testar no PS. Estou trabalhando em um site que precisava ter uma solução preliminar de integração com o PS, daí o patch. Em alguns dias vamos começar os testes de integração e o resultado eu mando aqui.

De qualquer forma, a questão de atribuir o papel está sim relacionada ao recebimento da confirmação do pagamento. Se há problema, ele está neste recebimento de confirmação do PS, porque usando um servidor de teste funciona -- e a atribuição de papéis é um módulo do UC, que não teria porque deixar de funcionar somente com o módulo do PS.

Perguntas:

  1. Você cadastrou seu token de segurança na configuração do módulo?
  2. Já olhou o log do Drupal?
  3. Já olhou o log do pedido?
  4. O pedido muda de status (de "In checkout" para "Pendind", "Completed" etc.)?

#8

Marcus VBP - September 29, 2009 - 12:30

@flaviovs

to meio afastado do meu projeto que usa pagseguro, aí não ta dando para testar nada disso.

Agora eu tenho uma sugestão de uma boa adição ao módulo.

O Ubercart tem uma opção de desabilitar o checkout pelo próprio ubercart. Se vc ativar esta opção, o botão de checkout some do carrinho.

A minha sugestão seria adicionar uma opção de fazer checkout direto para o pagseguro, adicionando um botãozinho ali no carrinho. Isso simplificaria as coisas (ou não)...

Isso seria interessante, tenho um cliente meu que disse que o processo de compra do site dele tá muito confuso... mas confusa tá a cabeça daquela ANTA, acho que ele nunca deve ter feito uma compra no submarino na vida.

#9

flaviovs - September 30, 2009 - 14:41

Nunca ví o checkout direto no PS, por isso não posso comentar. Só sei que o processo de compra é um momento de alta sensiblidade para o usuário-comprador, e ficar mudando de site, de visual, de comunicação etc. pode fazer a diferença entre fechar a venda ou não.

Se te ajuda, pode encaminhar este meu comentário para seu cliente. ;-)

Em todo caso, ter como opção usar o checkout do PS é claro uma boa. Mas em minha opinião, isso deve acontecer com um módulo em separado (que pode ser distribuído no pacote do UC PagSeguro -- só tem que ser habilitado separadamente), porque senão vai complicar bastante o código atual, sem obtermos muito benefício com isso.

Alguém se habilita? ;-)

#10

Evandro_sl - November 12, 2009 - 11:14
Assigned to:Anonymous» Evandro_sl

Ola Pessoal, gostaria de saber como que esta a situação atual do módulo...

To finalizando o desenvolvimento de um e-commerce ja no Drupal 6 e só vai ficar me faltando esta questão do pagamento com o Pagseguro.
A última versão lançada chega a ser usável??, porque se não vou ter que arranjar alguma solução para a minha situação.

Se alguém ja colocou em prática e souber me dar algum feedback a respeito agradeceria...
Flw pessoal.

Abraços!

#11

romeugodoi - November 16, 2009 - 10:35

Olá !

Também estou com um site a concluir e precisava saber como anda... o que falta pra concluir esse módulo, em que posso ajudar.
Se me derem um feedback posso finalizar esse módulo, já que de qualquer forma terei que dar uma solução ao meu cliente.

Só precisamos de mais feedback da galera que encabeça esse módulo para juntos fecharmos essa parada.

Abraços!

#12

Evandro_sl - November 19, 2009 - 13:26

Dae cara td tranquilo.

Seguinte, como pode ter percebido também estou em função do e-commerce pelo Drupal.

Ja comecei a fazer alguns testes para saber como esta a situação... e Olha velho até agora esta rolando tudo ok.!!!

Testei o pagseguro e esta funcionando... correios esta td ok tbm... teve um dia q ele se perdeu no valor, mas foi só uma vez, não sei se tinha q ajustar no próprio pagseguro mesmo para receber o valor do frete..

Após o Pagamento.. retorna pro site certinho.... ele registra a ordem de compra normamente no status "in checkout", dentro da ordem da compra ele aponta o recebimento do status pelo pagseguro e diz que esta aguardando o pagamento.... os dados estão todos la...

Terminei a pouco uns testes a grosso modo e me parece estar bastante plausível..

Agora vou partir para uns testes mais minuncioso e vou relatando a experiência =].

Abração!

#13

pedrofaria - November 25, 2009 - 13:06
Assigned to:Evandro_sl» Anonymous

#14

andreeppinghaus - November 25, 2009 - 13:11

Segue o novo módulo

Existem algumas facilidades BEM explicadas no arquivo

Leia o arquivo LEIAME

Qualquer duvida me mande um email.

André Eppinghaus

AttachmentSize
uc_pagseguro.zip 291.48 KB

#15

pedrofaria - November 25, 2009 - 13:32

André,

Parabens pela iniciativa e obrigado pelo seu empenho.

Olhei (não testei) seu código e conforme já comentei no canal #drupal-br aguardo o reviews de mais pessoas e tendo uma aprovação, coloco o codigo no cvs.

1) Tem muitos comentários de debug... favor remover.
2) Usar a função t, que serve para tradução, em uma string já traduzida perde o sentido.
3) Comentários sem sentido no código... provavelmente gerado por ctrl+c -> ctrl+v. tipo, tem um Implementation of hook_init numa função de callback do menu... estranho...
4) Drupal é utf8 e usar html entities em strings não faz sentido.

Bem... são estas as considerações...

Aguardo um OK de mais gente....

Pedro Faria.

#16

andreeppinghaus - November 25, 2009 - 13:56

Nova versao revisada com as considerações do chat com o PedroFaria

André Eppinghaus

AttachmentSize
uc_pagseguro.zip 291.38 KB

#17

andreeppinghaus - November 25, 2009 - 14:03

Nova versão revisada com o LEIAME.

André Eppinghaus

AttachmentSize
uc_pagseguro.zip 292.98 KB

#18

romeugodoi - November 30, 2009 - 01:21

Opa... Testando vi que estava com um problema no menu, apontando para uc_pagseguro.pages.inc dava erro de required.

'Failed opening required 'sites/all/modules/uc_pagseguro/uc_pagseguro.pages.inc'

Mudei para uc_pagseguro.inc

Segue arquivo atualizado em anexo. :P

AttachmentSize
uc_pagseguro.tar_.gz 289.59 KB
 
 

Drupal is a registered trademark of Dries Buytaert.