【问题标题】:Subscription model workflow question: how to handle payments订阅模型工作流程问题:如何处理付款
【发布时间】:2019-10-04 01:21:23
【问题描述】:

我觉得我在应用订阅的工作流程中遗漏了一些东西。

我有一个应用,它允许通过按月付费订阅来访问视频。这是通过带有 Stripe 的 Laravel Cashier 设置的。

用户应该能够注册、订阅和进行首次付款,并立即能够访问付费专区的内容。

我的理解是,我最快可以在隔夜/第二天处理定期付款。这意味着如果付款失败,用户可以在长达 24 小时内免费访问付费内容。

即使只是进行授权检查也不会锁定资金,因此理论上有人可能会在付款过程之前超出其余额。

其他人如何处理这个问题?我错过了什么?

【问题讨论】:

  • 典型订阅模式提供试用(Netflix)。如果在试用结束时付款不成功,则订阅结束。 Netflix 可能会在试用期实际结束前几个小时开始处理付款。
  • @adam - 我希望有办法绕过免费试用。我们不想一开始就提供免费试用。

标签: php laravel laravel-cashier


【解决方案1】:

您可以使用 Stripe 设置webhook,当付款处理完毕时,您会收到通知。您可以等到 Stripe 通知您后再授予他们访问权限。

【讨论】:

  • 我们目前只发送一次付款,当它成功返回时,将定期付款设置为下个月开始。工作流程只是感觉很混乱。有了 Laravel 和 Cashier,我会认为有一个更清洁的解决方案,因此重新审视我们的选择
  • @TH1981,我之前用 Stripe 建立了一个系统,客户输入他们的信用卡信息等,然后我发送给 Stripe 以获取 token 并设置了一个 Stripe Customer并为他们创建一个Subsription。然后,只要支付订阅费用,Stripe 就会发送webhook 回调。您可以在授予访问权限之前等待确认。
【解决方案2】:

首先,您的支付服务提供商是什么,或者您为客户提供哪些支付方式?
但基本上你有两个选择:

1) 在付款进入您的帐户之前,请勿授予您的用户访问权限
我认为这不是一个好的选择,也不是 100% 安全的。

2) 以合法的方式处理取消
我的意思是他们在您的商店购买订阅。所以你的商店条件(你希望得到并展示给你的客户)应该涵盖所有的支付部分。也许想想Factoring


问题是客户可以取消信用卡付款、借记卡付款 (sepa),并且可以退出 PayPal 帐户的定期付款等等...

在结帐过程中,您不能依赖付款提供商的成功消息。大多数支付服务提供商都有一个服务器到服务器的消息传递系统来更新您交易的变化。例如贝宝有Instant Payment Notification

您需要一个带有 cronjobs 的计划系统来检查您的支付提供商 API 的取消情况,在需要定期付款时发送付款提醒电子邮件(或自动执行定期付款),在通知期结束后延长订阅服务期(年复一年或基于付款计划的一段时间)......以及许多其他内容。

基本上,付款从来都不是 100% 安全的(甚至是美元钞票)!

【讨论】:

  • 如前所述,我们将 Laravel Cashier 与 Stripe 结合使用。我不担心取消 - 这种情况会发生并且可以处理,就像过期且未更新的卡一样。组织内部担心该应用程序将被利用导致有人注册、下载大量付费专区内容并在付款流程之前取消。至少如果他们提出退款,他们必须付出更多的努力?
  • stackoverflow.com/q/56338792/8631622 请调查这个问题。我做了我能做的一切。但我无法解决这个问题@Thomas Baier
猜你喜欢
  • 2011-12-19
  • 2020-08-09
  • 2017-12-17
  • 2016-06-24
  • 1970-01-01
  • 2011-02-09
  • 1970-01-01
  • 2015-07-25
  • 2019-03-06
相关资源
最近更新 更多