For context, I'm trying to determine what attributes of the returned Charge object I should look at to determine if the charge were successful, or failed. As I understand it, the API will always return a `4XX` error in the event the charge failed. Wether it's due to an expired card, insufficient funds, fraud detection, etc... the API will return an HTTP 4XX, and a body that includes information about the error, and a `charge_id`. If we then fetch that Charge, we'd see its `status: "failed"`, yes?
If the above is true, does that means I can rely on seeing those HTTP status values to determine failure? In practice, this means `rescue Stripe::StripeError` when using the `stripe` Ruby gem. Otherwise, we'll get an HTTP 200, and no resulting exception will be raised. Is the LACK of an exception enough to know that the Charge was successful? Should I also be looking at the Charge's `status` attribute? Or some other attributes? Are there other ways for a previously "successful" charge to become "failed?"
Thank you.