-1

考虑以下场景:在电子商务网站上,由于某种原因,一些用户在填写了所有必要的信息后未能完成订单(“仅”缺少付款)。

为了不丢失他们的习惯,该网站希望在 24 小时内向每个用户发送一封提醒电子邮件,其中包含他们的订单摘要和一个 PayPal 链接,以便他们完成交易。

  • 如何构建此链接?
  • 会有什么问题?
  • 该链接将如何处理?
4

1 回答 1

1

普通的电子邮件不是最安全的地方,所以我建议不要只放入其中: - PayPal 链接 - 完整的订单详细信息

但是您可以做的是存储有关会话的所有信息并通过“简单链接”将其检索到您的安全应用程序,然后可以生成一个新的 Paypal 交易页面:

<a href="https://yourapp.com/retrieve-transaction?id=ENCRYPTED_ID">...</a>

单击链接后,您需要要求用户登录。即使交易本身没有风险(需要独立支付),链接本身也会暴露交易内容;考虑药品或其他敏感或机密的购买。出于同样的原因,您不想将这些详细信息放入邮件中,您也不希望通过单击即可访问它们。

然后,您将通过登录创建一个有效会话,这将提供对帐户信息、订单历史记录等的访问权限。通过添加来自 ENCRYPTED_ID 的信息,您可以将来自“冻结”购买会话的所有信息注入会话。

现在,您拥有重新创建快速订购页面所需的一切,并带有 PayPal 链接。

最后,您应该在预设时间后和交易完成后提供链接失效,以防用户(或其他人)再次点击同一链接。

可能的工作流程

  • 您在第一个 Paypal 链接提案之前准备“冻结会话”
  • 如果付款成功,您将删除冻结的会话

  • 每隔一小时(比如说),您检查是否有超过 48 小时的未完成的冻结会话。这些已过期,您将其删除。

  • 如果有其他会话早于 24 小时但新于 48 小时,则没有“已发送邮件!” 标志,您发送带有该会话链接的电子邮件,并设置标志。

  • 在收到对该链接的点击时,您请求登录(并提醒如果该链接超过 24 小时,它将无法正常工作)。

  • 登录成功后,检查会话是否存在。
  • 如果没有,“抱歉,过期了 - 你想继续购物吗?”
  • 如果存在,则重新生成订单页面并返回列表的开头。没错,这样,如果您单击链接,不付款,然后离开,另一封电子邮件将发送给您——但您需要故意这样做。如果滥用的可能性(例如惹恼我知道密码的人)困扰您,请在冻结会话中添加一个计数器(“这是您第三次重新打开此订单。为避免潜在的滥用,我们不会发送你还有什么提醒”)。当然,除非你出售治疗粗心或短暂失忆症。
于 2012-11-14T08:22:25.303 回答