我正在开发一个电子商务网站。用户需要能够在登录之前将产品添加到购物车,即应该要求用户仅在结帐时登录。
- >我知道这可以通过设置会话ID并将其用于数据库中的购物车表来完成。
我的问题是:
我们可以使用用户的ip而不是使用cookie变量吗? ip将在购物车表中使用。购物车清理政策等将与第一种情况相同。
如果是,那么可能存在的挑战是什么?像共享计算机。 如果没有,为什么?
答案 0 :(得分:0)
IP不是一个有用的标识符,办公室中的许多人都会共享它,而在移动网络上,通常有数千个电话都映射到同一个IP。即使是单个用户也可能会在许多不同的IP中反弹,因为他们会切换无线网络,但会继续使用您的网站。
在处理共享计算机时,您可能会过于担心。将Cookie设置为在合理的时间(可能是几小时)后过期,以避免永久地在浏览器中留下足迹。如果人们真的担心他们总是可以使用隐私浏览。
如果您想了解亚马逊如何做这类事情,请打开检查员并观察网络流量,查看分配的Cookie以及持续时间。
所以简短的回答是使用一个会话,并计算出你希望它持续多久的时间限制。如果没有登录,我通常将这些设置为48小时,如果登录则为两周,但这实际上取决于您的市场。
我强烈建议您评估现成的商务软件包,例如PHP的Magento或Ruby的Spree,然后再遇到编写自己的电子商务平台的麻烦彻底的。这通常比你在开始时预期的要大得多,并且在处理钱时存在无数的安全问题。
答案 1 :(得分:0)
你已经说过了,但你可以创建一个随机的“令牌”#39;可用于识别客户。有几种方法可以维持状态。使用该令牌,最常见的是使用cookie。否则,在您的网站链接中,您必须附加令牌。但是 - 在结帐过程中,您不需要使用表单按钮完成所有操作的链接,尤其是因为您需要填写结算,运送等表单。
因此,对于结帐流程,请考虑在隐藏的表单字段中传递令牌,然后在最重要的步骤中避免使用Cookie。您还可以在订单记录表中使用该令牌来关联购物车项目。令牌必须具有随机字符串,但它也可以包含有用的数据,如日期和时间。