支付网关-Stripe-如何使用免费计划来处理订阅,并且在注册时不需要信用卡

我们开始在Redsmin上实现Stripe(我们的项目之一),我认为我们可能错过了一些东西。 下面是它的工作原理:

  1. 要使用我们的产品,用户必须选择一个计划(免费,s,m,xl,xxl ...),然后输入其登录名/密码,然后可以免费试用30天。 当用户提交表单时,我们的服务器将使用指定的计划并且不使用信用卡来调用Stripe create_customer(因为我们希望免费提供30天而无需使用信用卡),并且我们将返回的customer_idcustomer.subscription.updated更新为我们这一侧的用户模型 。

  2. 我们设置了一个Webhook来接收条纹事件,因此30天后,我们的Webhook应该会收到一个2562070208328500500224事件和一个charge.succeeded事件。对吗?

  3. 但是,由于我们没有在注册时为用户指定关联的卡,因此在另一个customer.subscription.updated事件和charge.succeeded事件发生后,我们应该很快收到,对吗? 然后,在我们这一边,我们停用用户帐户,并强制其转到我们的计划选择页面。

  4. 从那时起,用户可以选择免费计划或我们的高级计划之一:

  5. #Scenario 1如果用户选择了免费计划,我们只是在我们这边重新激活其帐户,而没有做任何其他事情,因为我们在stripe上配置了免费计划,费用为0 $。 我们是否通过免费计划实施了正确的流程? 有更好的方法吗?

  6. #方案2如果用户选择了一个高级计划,我们会将其重定向到信用卡表格,然后将其发送到Stripe,并使用临时卡令牌更新Stripe客户帐户。 接下来我们该怎么做?

    • 我们应该等待条纹发送事件给我们吗? 如果是这样,发生什么情况? customer.subscription.updatedcharge.succeededobject.status的值是多少?
    • 我们应该直接在我们这边重新激活用户帐户并等待条纹确认吗? 如果是这样,我们应该等待什么事件名称和数据?

1个解决方案
38 votes

在第2部分中,您将执行以下操作:

我们设置了一个Webhook来接收条带事件,因此30天后,我们的Webhook应该会收到一个带有object.status == active的customer.subscription.updated事件,对吗?

您可能还考虑实施customer.subscription.updated网络挂钩,该网络挂钩将在客户试用期结束前三天发送,并允许您向客户发送通知以更新其付款信息。

这样,如果用户确实决定去更新他们的付款信息,Stripe将能够在客户试用期结束后立即付款,并且他们将能够继续使用您的服务而不会受到干扰。

#Scenario 1如果用户选择免费计划,我们只是在我们这一边重新激活其帐户,而没有做任何其他事情,因为我们在stripe上配置了免费计划,费用为0 $。 我们是否通过免费计划实施了正确的流程? 有更好的方法吗?

据我所知,这是使用Stripe实施免费计划的最佳方式,我可能会确保除非需要,否则不会向客户发送任何发票。 我怀疑如果使用免费计划的用户会期望在每个计费周期收到发票。

#Scenario 2如果用户选择了高级计划,我们会将其重定向到信用卡表格,然后将其发送到Stripe,并使用临时卡令牌更新Stripe客户帐户。 接下来我们该怎么做?:

  • 我们是否应该等待Stripe向我们发送事件,如果是,那是什么事件? customer.subscription.updated? 收费成功? 那么object.status的值是什么?
  • 我们应该直接在我们这边重新激活用户帐户并等待条纹确认吗? 如果是这样,我们应该等待什么事件名称和数据?

一旦用户选择了计划并更新了他们的付款信息,我将立即激活他们的帐户,前提是对Stripe的订阅更新的响应是成功的。

只要您从Stripe仪表板配置了订阅首选项,您就应该能够让Stripe处理付款失败时的处理方式。 只需确保实现customer.subscription.updated Webhook,因为这将是Stripe发送给您的Webhook(如果Stripe将订阅标记为未付费或已取消),从而允许您相应地更新自己的记录。

Mike answered 2019-10-09T19:25:22Z
translate from https://stackoverflow.com:/questions/19467287/stripe-how-to-handle-subscription-with-a-free-plan-and-no-credit-card-required