Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ZioNN

Carrinho de Compras - manter dados quando muda de HTTP p/ HTTPS

Recommended Posts

Estou montando um e-Commerce do zero, linha a linha, e empaquei nessa parte.

 

O que eu preciso é persistir os dados do carrinho de compras (id_produto, qtd_produto) quando saio do HTTP e entro no HTTPS e vice-versa, quando saio do HTTPS e volto pro HTTP.

Estou usando a locaweb como host, então já sabem: O domínio MUDA quando se vai de um ambiente pro outro (http://www.seudominio.com.br e https://ssl123.locaweb.com.br/seudominio).

 

Em HTTP, comecei armazenando tudo num array em Session, aí pra mudar de ambiente joguei num form, campo hidden, uma string contendo todos os valores do array.

Quando entra no HTTPS, leio o form que foi enviado por post, dou um split na variável recebida e reconstruo o carrinho. Até aí funciona td bem.

 

Porém se o usuário, nesse momento, resolver que quer comprar mais um item e clicar no menu superior (algum departamento da loja), ele volta ao ambiente HTTP e aí perde-se tudo, porque a Session HTTP já expirou quando mudei pra HTTPS, e nesse caso, não dá pra enviar um form via post pra cada link que o usuário clicar.

 

Outra solução seria utilizar cookies, mas cookies podem ser bloqueados pelo navegador.

 

Qual a melhor solução pra isso? O que fazem submarino, americanas, shoptime?

 

Em tempo: fiz diversas buscas na net e aqui mesmo no forum antes de postar essa dúvida.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode gravar em um BD temporário os registros de cada sessão dos usuários... depois q ele for embora, ou finalizar a compre.. você mata esses registros..

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode gravar em um BD temporário os registros de cada sessão dos usuários... depois q ele for embora, ou finalizar a compre.. você mata esses registros..

 

Abraços...

Obrigado pela resposta! Avançando na questão

 

Como seria essa tabela temporária? Qual o identificador que eu usaria para o usuário?

De que forma excluo os regsitros se o usuário abandonar o site no meio da operação ou se sua sessão expirar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo.. você tem tudo em Sessions, certo ??

 

Entao você cria uma tabela só pra gravar esses dados... ai quando o cara sair da página, ou encerrar a sessão, você apaga esses registros..

 

você pode utilizar o AJAX para chamar a função ASP que apague os dados no evento "onUnload()" da bosy das páginas.. e quando o cara clicar em "Encerrar Sessão" tb... ou você coloca a chamada da função que faz isso no Global.asa... na expiração da Session..

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo.. você tem tudo em Sessions, certo ??

 

Entao você cria uma tabela só pra gravar esses dados... ai quando o cara sair da página, ou encerrar a sessão, você apaga esses registros..

 

você pode utilizar o AJAX para chamar a função ASP que apague os dados no evento "onUnload()" da bosy das páginas.. e quando o cara clicar em "Encerrar Sessão" tb... ou você coloca a chamada da função que faz isso no Global.asa... na expiração da Session..

 

Abraços...

beleza, entendi o lance de destruir os dados, mas ainda não saquei como vou relacionar os registros temporários ao usuário, sendo que a SessionId dele muda quando ele muda de ambiente. O que eu devo utilizar para que o sistema saiba que é o mesmo usuário, principalmente quando saímos do HTTPS e vamos para o HTTP?

Compartilhar este post


Link para o post
Compartilhar em outros sites

grave uma chave na tabela(uma sequencia de letras e numeros aleatorios). Passe esse mesmo valor pela querystring no https e realize a consulta no https por esse parametro

Compartilhar este post


Link para o post
Compartilhar em outros sites

grave uma chave na tabela(uma sequencia de letras e numeros aleatorios). Passe esse mesmo valor pela querystring no https e realize a consulta no https por esse parametro

Olá Jonathan, obrigado pela resposta

 

Desta forma, em qualquer link do site eu teria que acrescentar esse, digamos assim, userId, para poder identificá-lo no banco de dados?

 

Pergunto porque, como disse anteriormente, preciso manter o carrinho tanto de HTTP pra HTTPS quanto o inverso, e neste último caso não dá pra prever de onde e para onde o usuário vai.

 

Esta seria a melhor maneira?

 

No submarino não vejo esse recurso sendo utilizado, nem na Americanas.com parece ter algo semelhante. Aliás, tem muita coisa na querystring deles que não dá nem pra imaginar o que seja.

 

Em ambos os portais, eu fiz um teste: Fui adicionando produtos ao carrinho e seguindo o processo de compra até a tela de login, onde o ambiente muda pra https. Fiz uma vez com a configuração default de privacidade do Internet explorer, que não bloqueia todo tipo de cookies e depois fiz o mesmo teste com a nível máximo de segurança, onde nenhum tipo de cookie é aceito. Em ambos os casos, quando os cookies foram completamente desabilitados, ao voltar do https para o http, o carrinho se esvaziou sozinho.

 

Eu penso que tanto Submarino quanto Americanas utilizam cookies gravados na máquina do usuário para transportar os dados do carrinho por todo o site.

 

Estou certo, ou pode ser que seja algum outro recurso?

 

Será que eles gravam os dados do carrinho nos cookies, ou só gravam o SessionID do usuário que irá bater com o SessionID no banco de dados do carrinho?

 

Complicado isso hein!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.