首页 > 解决方案 > 是否能够回滚 Stripe 更新

问题描述

我被要求增加 Stripe 中所有计划的数量。所以我在 ruby​​ 中编写了以下脚本来删除旧计划并创建具有不同数量的相同 id 的新计划:

    for stripe_plan in Stripe::Plan.list

      new_amount = (stripe_plan.amount*1.1).floor

      Stripe::Plan.delete(stripe_plan.id)

      new_stripe_plan = Stripe::Plan.create(
        nickname: stripe_plan.nickname,
        amount: new_amount,
        interval: stripe_plan.interval,
        currency: stripe_plan.currency,
        product: stripe_plan.product
      )

问题是如果一个失败(很可能不会),它可能会导致一些计划被更新而另一些则没有,这是不一致的。

问题是:是否有任何事务方法可以在失败时回滚 Stripe 创建、更新、删除?

如果这不是stackoverflow的问题,请发表评论,我将删除它。

标签: ruby-on-railsrubystripe-payments

解决方案


与其修改现有计划的价格,不如创建具有更新成本的新计划,然后将它们分配给适当的用户。如果出现问题,这将允许您简单地检查是否有任何用户使用旧计划。


推荐阅读