ruby-on-rails - 是否能够回滚 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的问题,请发表评论,我将删除它。
解决方案
与其修改现有计划的价格,不如创建具有更新成本的新计划,然后将它们分配给适当的用户。如果出现问题,这将允许您简单地检查是否有任何用户使用旧计划。
推荐阅读
- svg - 将纹理应用于 SVG 中的图像
- hyperledger-fabric - 将 Org 动态添加到现有的 Hyperledger 网络
- php - 如何使用 PHP 和 SQL 插入 JSON 代码?
- nativescript - 错误:找不到应用程序入口点文件
- spring - Spring Boot 2.1.2:如何将值从 application.properties 传递到 log4j2.xml?
- javascript - ReactJS 秒表,如何处理本地存储数据
- r - 我需要帮助从数据框中删除空行和带有空格的行
- python - 用beautifulsoup4 缺失单元格进行表格刮擦
- java - Java中是否有任何内置函数可以从提取的数据中删除不需要的数据
- java - 使用 Google 地图 api 的演示 android 应用程序崩溃