付款流程失败后,继续使用电子邮件中的单个链接支付购物车

时间:2012-11-14 08:13:58

标签: php paypal

考虑一下这种情况:在电子商务网站上,由于某种原因,一些用户在填写所有必要信息(“仅”支付缺失)后未能完成订单。

为了不丢失自定义,网站希望在24小时内向每个用户发送提醒电子邮件,其中包含订单摘要和PayPal链接,以便他们完成交易。< / p>

  • 如何构建此链接?
  • 可能会有什么问题?
  • 如何处理此链接?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

然后,您将从登录中创建一个有效的会话,这将允许访问帐户信息,订单历史记录等。通过添加ENCRYPTED_ID中的信息,您可以向会话注入“冻结”购买会话中的所有信息。

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

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

可能的工作流程

  • 您在第一个Paypal链接提案
  • 之前准备了“冻结会话”
  • 如果付款通过,则删除冻结会话

  • 每小时(比方说),您检查是否有超过48小时的未完成冻结会话。这些已过期并删除它们。

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

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

  • 成功登录后,请检查会话是否存在。
  • 如果没有,“抱歉已经过期了 - 你想继续购物吗?”
  • 如果存在,请重新生成订单页面并返回列表的开头。是的,这样一来,如果你点击链接,不支付,然后离开,另外一封电子邮件将发送给你 - 但你需要故意这样做。如果滥用的可能性(例如烦恼某人其密码是我知道的)困扰你,请在冻结会话中添加一个计数器(“这是您第三次重新打开此订单。为避免可能的滥用,我们不会再向你发送提醒“)。当然,除非你出于无思维或暂时失忆的治疗方法。