DGmike

DGmike

Calma! não entre em pânico! Amanhã (talvez) tem novo post…

  • Alice Andrade
  • Rafael Zamana
Você está aqui: dgmike » Programação » PHP+PagSeguro = Loja virtual de downloads

  • Home
  • Guia Rápido jQuery
  • Códigos prontos
    • PHP: Função __auloload()
    • Classe sqlsimples e sql – PHP
    • Bancos, bancos e mais bancos…
  • PagSeguro
  • Artigos
    • JavaScript (parte 1)
  • Quem é dgmike?

PHP+PagSeguro = Loja virtual de downloads

Posted in Programação, Tecnologia, Trabalho, Tutorial, jQuery, javascript, pagseguro, php, sql by DGmike
Apr 20 2009
TrackBack Address.
Você pode obter mais informações na minha página dedicada ao PagSeguro

Voltamos a um assunto que interessa muitas pessoas: ganhar dinheiro. Talvez você não tenha nada físico para vender, mas você provavelmente tem talento (não, chocolate não) e sabe escrever um bom livro ou mesmo fazer ótimas fotografias[bb]. Você pode não saber, mas dá pra ganhar dinheiro com esse seu talento. Por que você não começa a vender arquivos para download? Sim! Por que não?! Comece a explorar o seu lado criativo e faça de seus dons uma forma de fazer lucros.

Crie uma loja virtual. Você pode começar com uma loja poderosa como o Magento ou mesmo uma coisa mais simples como OsCommerce, Joomla o mesmo WordPress. Mas, se você é programador como eu e prefere escrever seu próprio código ou mesmo entender como o sistema de sua loja (ou loja de seus clientes) funcionará, farei uma série de artigos para demonstrar como é simples criar uma loja virtual[bb] cujos produtos não são nada além de links para download.

Loja virtual com PagSeguro? Agora ficou fácil!

Loja virtual com PagSeguro? Agora ficou fácil!

Para você conseguir acompanhar este “curso” você deve entender um pouco dos seguintes assuntos:

  • PagSeguro: Vamos usar esta ferramenta de pagamento online para que nossos clientes se sintam seguros ao comprar em sua loja, então você já pode criar sua conta para podermos fazer a nossa loja virtual
  • PHP: Não precisa ser um expert, mas saber conceitos básicos de banco de dados e orientação a objetos já dão um gás
  • MySQL: Vamos trabalhar com a dobradinha mais conhecida da Web. Não usaremos o MySQL ao extremo mas iremos fazer um join ou outro
  • Ânimo: muitas vezes você irá errar. Podem ser erros básicos como não colocar um ponto-e-virgula/ no seu script, então não desanime e continue em frente

Ok, com os requisitos em mãos vamos por a mão na massa. A começar pela estruturação do nosso banco de dados.

O banco de dados

Vamos precisar basicamente de duas tabelas para organizar os produtos: categorias, produtos. Elas são descritas pelas seguintes queries:

CREATE TABLE `categoria` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `slug` VARCHAR(45) NOT NULL,
  `titulo` VARCHAR(100) NOT NULL,
  PRIMARY KEY (`id`)
);
 
CREATE TABLE `produto` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `categoria_id` INTEGER UNSIGNED NOT NULL,
  `slug` VARCHAR(45) NOT NULL,
  `titulo` VARCHAR(100) NOT NULL,
  `descricao` TEXT NOT NULL,
  `valor` FLOAT NOT NULL,
  `url` VARCHAR(32) NOT NULL,
  `imagem` CHAR(32) NOT NULL,
  PRIMARY KEY (`id`)
);

Usaremos os campos “slug” tanto de categoria quanto de produto para a url na loja virtual ficar mais fácil de enteder, é o que chamamos de URLs amigáveis. Repare também que temos “categoria_id” na tabela de produto, é nela que vamos basear a nossa organização, um produto deve ter uma categoria e uma categoria pode ter diversos produtos. Os campos de url e imagem da tabela de produtos conterá o endereço do arquivo físico (o arquivo que o usuário fará o download) e a imagem que aparecerá na loja virtual respectivamente. Eles receberão uma criptografia para a segurança de sua loja, usarei md5 como criptografia.

Muito bem, não vamos nos prender a criação de usuários no nosso sistema. Por quê?! Porque você realmete não precisa disso na sua loja. Se um usuário compra de sua loja ele terá os seus dados no PagSeguro, afinal, ele vai pagar por lá não é mesmo? Então para quê ter dados repetidos no seu sistema? Não vamos fazer também um sistema de login, tenho em mente que você é um programador experto e já sabe fazer isso de olhos fechados. Vamos colocar um sistema de login no nosso sistema sim, claro, mas com um usuário único e uma senha única. Isso para não perdermos o foco da loja virtual.

A outra tabela que iremos precisar é a tabela de compra, nela teremos a compra de cada usuário, assim poderemos reenviar um e-mail ao usuário com os links para onde ele pode efetuar o download dos produtos que ele comprou. Esta tabela também serve para sabermos que o produto foi enviado ao cliente, digo, a data de envio do e-mail. Essa tabela é regida pelo seguinte SQL.

CREATE TABLE `compra` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `email` VARCHAR(100),
  `produtos` TEXT NOT NULL,
  `transacao_id` VARCHAR(45),
  `status` VARCHAR(45) NOT NULL,
  `data_confirmacao` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
);

Veja que produtos é um campo do tipo do tipo TEXT, nele vamos gravar os ids contidos na tabela produto, separados por virgula. Os campos transacao_id, status e data_confirmacao serão completados ao receber o retorno do PagSeguro.

Com isso já temos as tabelas básicas necessárias para a criação de nossa loja virtual. Fique ligado para a próxima parte dessa série onde vamos montar uma loja virtual voltada para downloads.

  • Campo DataTransacao no retorno do PagSeguro
  • Palestra PagSeguro na Impacta
  • Verifique o retorno automático, sempre!
  • [PagSeguro] O campo status
  • O PagSeguro mudou a URL de retorno automático, e agora?

Tagged as: criatividade, dinheiro, ecommerce, joomla, loja virtual, magento, mysql, oscommerce, pagamento, pagseguro, php, talento, visie, wordpress
Comments
  • carlos:

    Olá, gostaria que me explicassem esta linha:

    $status = (in_array($StatusTransacao,array(`Completo`, `Aprovado`)) ? 2 : 1);

    pois preciso alterar ela para quando vier o stauts de aprovado, executar tudo igual como se fosse vir o status de completo. Pois preciso liberar o dowload do meu produto quando receber o status de aprovado.

    o meu problema é exatamente igual ao primeiro nesta lista

    http://groups.google.com.mx/group/listaphp/browse_thread/thread/e5c27a34d268168

    grato por qualquer luz.

    Reply May 2, 2009 at 1:03 pm
  • Silas:

    Olá, DGmike

    Esse tutorial é exatamente tudo o q eu estava procurando (olha q ja faz tempo q to procurando) vai ser uma mão na roda p nós que somos pequenos e estamos buscando um lugarzinho na grande rede…

    Estou ancioso pela continuidade…

    valeuu..

    Reply May 14, 2009 at 7:10 am
  • Demon:

    Bem eu estou com 1 duvida que eu reluto em acreditar que não seja ridicula.
    Porem como não achei a solução decidi expor aqui ela e saber mais sobre o assunto.

    Bem eu trabalho com o botaão de doação do pagseguro.

    Queria saber se existe um modo de eu salvar o que o USUARIO esta doando para quando a transação for aprovada eu automaticamente agradeça ou libere algum produto ao mesmo.

    O problema que a parte de valor fica fora do meu site e não sei como posso fazer para recuperar isso. Tal como usuario e senha do meu usuario.

    Alguem entendeu o que eu quiz dizer? kkkkkk

    Se alguem puder responder aguardo ansiosamente.

    att d…@hotmail.com

    Reply October 26, 2009 at 1:08 am
  • DGmike:

    @Demon,

    realmente não sei se o PagSeguro envia POST para botão de pagamento. Eu acredito que sim, mas não sei ao certo. Irei pesquisar e assim que tiver uma resposta posto aqui nos comentários mesmo ;D

    Reply October 26, 2009 at 6:25 am
  • jose Antonio:

    Estou aguardando atenciosamente a conclusao dessa loja, muito obrigado amigo.valeu…

    Reply November 1, 2009 at 3:14 am
  • jose antonio:

    Ola michael, tudo bem, agradeço de coração mesmo por todos os tópicos que vc tem passado, está me valendo muito e estou aprendendo mais a cada dia graças a voce. Tenho muito pouco conhecimento em php, muito pouco mesmo, mas aos poucos vou aprendendo. Tenho uma loja virtual e copiei a funçao de log que voce passou ao Retuko em outro topico. Porem não consigo fazer ela funcionar.Eu copiei o codigo e coloquei no bloco de notas,inseri meu token e depois salvei como log.php e coloco no meu servidor junto com os arquivos pagseguro.php e retorno.php, coloco a url de retorno no pagseguro certinho “http://www.meusite.com/ext/modules/payment/pagseguro/pagseguro.php” mas não acontece nada, como eu faço para gerar um log, se puder me ajudar eu agradeço, valeu amigo…t+

    Reply November 9, 2009 at 11:40 am
  • Diego:

    olá Mike, já consertei o problema, é que eu tinha suprimido uma única vírgula no final do loja.js, tinha mais uma… obrigado!

    Reply February 5, 2010 at 9:15 am
Leave a Comment
Click here to cancel reply.

Add Music To Your Comment

Clear All

Selected Songs (0): Allowed A Maximum Of 1

Categorias

  • Amigos  (16)
  • cases  (4)
  • Cotidiano  (73)
  • CSS  (20)
  • Design  (2)
  • Dia-a-dia  (33)
  • Diversão  (18)
  • eventos  (10)
  • extensions  (11)
  • flash  (4)
  • Games  (1)
  • html  (7)
  • icephp  (4)
  • Ilustração  (6)
  • Imagem  (8)
  • Inspiração  (5)
  • javascript  (36)
    • jQuery  (7)
    • yui  (2)
  • Não categorizado  (26)
  • Navegadores  (19)
    • Chrome  (6)
    • Firefox  (18)
    • Internet Explorer  (6)
  • pagseguro  (12)
  • php  (43)
    • PHP Conference  (3)
  • plugin  (3)
  • Programação  (46)
  • python  (5)
  • Semântica  (16)
  • sql  (9)
  • tableless  (18)
  • Tecnologia  (48)
  • Trabalho  (28)
  • Tutorial  (25)
  • Vetorial  (5)
  • video  (8)
  • video-tutorial  (5)
  • Windows  (4)
  • wordpress  (2)
  • xHTML  (23)

Tags

ajax artigo banco de dados biblioteca blog browser classe CSS data Design Dia-a-dia dinheiro evento eventos Firefox framework google html icephp internet Internet Explorer javascript jQuery loja mysql online opera pagseguro palestra php plugin Programação python retorno automático simples site solução sql tableless Tecnologia Tutorial twitter visie web wordpress

Arquivo

SlideSare

Últimos Posts

  • Vírgula em html5 e css3
  • Youtube e HTML5, agora ficou mais fácil
  • Novo emprego!
  • Até mais e obrigado pela salada
  • Api de teste do meadiciona.com

Tags

ajax artigo banco de dados biblioteca blog browser classe CSS data Design Dia-a-dia dinheiro evento eventos Firefox framework google html icephp internet Internet Explorer javascript jQuery loja mysql online opera pagseguro palestra php plugin Programação python retorno automático simples site solução sql tableless Tecnologia Tutorial twitter visie web wordpress

Conteúdo

  • Artigos
    • JavaScript (parte 1)
  • Códigos prontos
    • Bancos, bancos e mais bancos…
    • Classe sqlsimples e sql – PHP
    • PHP: Função __auloload()
  • Guia Rápido jQuery
  • PagSeguro
  • Quem é dgmike?
PagSeguro Powered by WordPress | “Blend” from Spectacu.la WP Themes Club