我们开始在Redsmin上实现Stripe (我们的项目之一),我认为我们可能错过了一些东西。下面是它的工作原理:
要使用我们的产品,用户必须选择一个计划(免费,s,m,xl,xxl ...),然后输入其登录名/密码,然后可以免费试用30天。当用户提交表单时,我们的服务器将使用指定的计划并且不使用信用卡来调用Stripe create_customer(因为我们希望免费提供30天且不需要信用卡),并且我们会使用返回的
customer_id
和来更新用户模型subscription_id
。我们设置了一个Webhook来接收条纹事件,因此30天后,我们的Webhook应该会收到一个
customer.subscription.updated
带有的事件object.status == active
。我对吗?但是,由于我们没有在注册时为用户指定关联的卡,因此我们应该在发生其他
customer.subscription.updated
事件后迅速收到通知object.status == unpaid
吗?然后,在我们这边,我们停用用户帐户,并强制其转到我们的计划选择页面。从那时起,用户可以选择免费计划或我们的高级计划之一:
#Scenario 1如果用户选择免费计划,我们只是在我们这边重新激活其帐户,而没有做任何其他事情,因为我们在stripe上将免费计划配置为费用为0 $。我们是否通过免费计划实施了正确的流程?有更好的方法吗?
#Scenario 2如果用户选择了高级计划,我们会将其重定向到信用卡表格,然后将其发送到Stripe,并使用临时卡令牌更新Stripe客户帐户。接下来我们该怎么做?:
- 我们应该等待条纹发送事件给我们吗?如果是这样,发生什么事件?
customer.subscription.updated
?charge.succeeded
?的值是object.status
多少? - 我们应该直接在我们这边重新激活用户帐户并等待条纹确认吗?如果是这样,我们应该等待什么事件名称和数据?
- 我们应该等待条纹发送事件给我们吗?如果是这样,发生什么事件?