2017-08-26 56 views
2

在条纹的API文档尝试对客户创建订阅描述如下当返回值:条纹订阅 - 创建即使第一计费尝试失败

新创建认购对象,如果调用成功。如果客户没有信用卡或尝试收费失败,则此呼叫会返回错误(除非指定的计划是免费的或有试用期)。

由此,我假设如果第一次尝试收费失败(并返回错误),这意味着订阅尚未创建?

我希望能够为尚未添加任何结算来源的客户创建订阅,并且只要他们添加结算来源,第一笔付款就会得到处理。有没有办法做到这一点?

回答

0

由此,我假设如果第一次尝试收费失败(并返回错误),这意味着订阅尚未创建?

是的,这是正确的。

我希望能够为尚未添加任何结算来源的客户创建订阅,并且只要他们添加结算来源,第一笔付款就会得到处理。有没有办法做到这一点?

您可以创建一个计划为$ 0的订阅,或创建一个试用trial_end创建一个'免费'的订阅。

“只要他们添加一个结算来源,第一笔付款就会得到处理。” - 你需要创建逻辑来自己处理这个问题。当用户添加付款来源时,您可以更新自己的订阅,结束试用版(trial_end=now),或将其移至付费计划。

https://stripe.com/docs/api#update_subscription

+0

谢谢,我正在考虑类似于这个方法。问题在于,它首先否定了很多使用订阅的便利。当需要续订订阅时,如果由于某种原因计费失败,Stripe将在几天内(或任何指定的时间表)自动重试 - 并且如果更新账单信息将立即重试。为什么不能在订阅首次创建时执行此操作?这对我来说没有多大意义。 – abagshaw

+0

@abagshaw如果你想使用重试逻辑:一种解决方案可能是创建一个5分钟的试用版(使用'trial_end')。无论客户是否拥有有效的信用卡,它都将启动。当超级短期试用期到期时,它将尝试按照您的指示进行计费,失败和重试。 – duck

+0

这几乎是我在找的东西,但不幸的是我的理解是,如果客户在5天后添加一张卡,然后第一张发票成功收取,下一个发票日期将不会向前移动5天,它会在发票首次创建之前保留一个月(或者我设定的任何间隔)。所以我将不得不手动将下一个发票日期向前冲击,以达到目的。我已经将你的答案标记为已接受,因为它与我想要的一样接近。 – abagshaw