0

次の方法を考えると

  def change_plan_to(plan_id)
    new_plan = Plan.find plan_id
    stripe_customer = Stripe::Customer.retrieve(stripe_customer_token)
    stripe_customer.update_subscription(plan: new_plan.slug)
    self.plan = new_plan
    self.active = true
    save
  rescue Stripe::InvalidRequestError => e
    logger.error "[STRIPE] #{ e }"
    errors.add :base, "Unable to change your plan!"
    false
  end

具体的には、行番号 4 ~ 6 です。4 が成功した場合にのみ 4 と 5 が発生するようにしたいのですが、Stripe はそれを if でラップする機能を返しません。エラーの場合は、Stripe::InvalidRequestError をスローします。

これを処理する最良の方法は何ですか? 必要に応じて有効期限切れのアクティブ状態を管理するために、Stripe Webhook コールバックを起動して忘れて許可しますか?

もう 1 つのシナリオは、合格しない場合、4 行目以降ですべてのコードが停止することです。これが救助の仕組みですか?

4

1 に答える 1