【问题标题】:Laravel E-Commerce How to allow users to upload file after payment is receivedLaravel 电子商务如何允许用户在收到付款后上传文件
【发布时间】:2019-06-08 12:36:55
【问题描述】:

我正在创建一个网站,允许用户在付款后上传文件: 例如:9.99 美元的基本计划或 20.99 美元的企业计划

当用户选择计划时,系统会提示他们上传文件。

我正在寻找有关执行此操作的最佳方法的方向,关于插件的任何建议,或执行此类操作的最佳过程。

我将使用stripe的API,你认为最好的工作流程是什么,我已经知道如何在laravel中使用stripes API,我关心的是如何让用户付费,然后只允许用户上传一次已收到付款。

数据库表应该是什么样的? 对于用户来说,这个过程应该是什么样的。

我在想 1.用户创建账户 2.用户确认电子邮件然后被重定向到选择计划页面,用户选择计划 3.用户付款,然后被重定向到上传页面。 4.用户上传文件。

有什么想法,或者更好的解决方案?

这不是典型的电子商务网站,其中包含一大堆产品,您可以在其中选择一些东西然后付款。

本网站将要求用户付款以允许他们将一个文件上传到平台。

任何具有尽可能详细信息的方向都将不胜感激。

我当然是在 laravel 上构建这个系统。

【问题讨论】:

  • 注册后总是做吗?如果是这样,你的建议是一个很好的。用户只需要在邮件验证后重定向到付款。

标签: php laravel e-commerce


【解决方案1】:

老实说,你的计划是可靠的。

  1. 有一个地方可以管理他们的文件,以防付款没有立即获得批准。
  2. 取决于您的订阅方式,即每月、每年或一次性订阅,您可能需要存储某种在一段时间内有效的令牌。在验证付款后创建此令牌。
  3. 对于您的文件上传表,我建议使用Morph relationships。这将允许您拥有一个用于许多不同文件上传的表格,因为您将有 2 列 itemable_typeitemable_id 类型是您的模型,id 是您的记录 id。要获取这些列,请将其添加到您的迁移中 $table->morphs('itemable'); Laravel 将为您制作它们。

  4. 为您的文件上传使用一个 trait 是一个好主意,您可以在任何需要的地方调用它并用一行传递参数,或者使用一些复杂的逻辑调用它。

【讨论】:

  • stripe 是否提供某种唯一的一种 id 或令牌或任何我可以保存在数据库中的东西,所以我可以将它与单个文件上传匹配,将它与该特定文件配对,我想将其用作安全措施,以确保在允许用户上传之前收到付款
  • 老实说,你可以看看他们的递归账单文档,否则构建你自己的只需要一个 ID、用户 ID、日期和结束日期
猜你喜欢
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
相关资源
最近更新 更多