| 1 |
<?php |
| 2 |
|
| 3 |
namespace Stripe; |
| 4 |
|
| 5 |
/** |
| 6 |
* Class ErrorObject. |
| 7 |
* |
| 8 |
* @property string $charge For card errors, the ID of the failed charge. |
| 9 |
* @property string $code For some errors that could be handled |
| 10 |
* programmatically, a short string indicating the error code reported. |
| 11 |
* @property string $decline_code For card errors resulting from a card issuer |
| 12 |
* decline, a short string indicating the card issuer's reason for the |
| 13 |
* decline if they provide one. |
| 14 |
* @property string $doc_url A URL to more information about the error code |
| 15 |
* reported. |
| 16 |
* @property string $message A human-readable message providing more details |
| 17 |
* about the error. For card errors, these messages can be shown to your |
| 18 |
* users. |
| 19 |
* @property string $param If the error is parameter-specific, the parameter |
| 20 |
* related to the error. For example, you can use this to display a message |
| 21 |
* near the correct form field. |
| 22 |
* @property PaymentIntent $payment_intent The PaymentIntent object for errors |
| 23 |
* returned on a request involving a PaymentIntent. |
| 24 |
* @property PaymentMethod $payment_method The PaymentMethod object for errors |
| 25 |
* returned on a request involving a PaymentMethod. |
| 26 |
* @property string $payment_method_type If the error is specific to the type |
| 27 |
* of payment method, the payment method type that had a problem. This |
| 28 |
* field is only populated for invoice-related errors. |
| 29 |
* @property SetupIntent $setup_intent The SetupIntent object for errors |
| 30 |
* returned on a request involving a SetupIntent. |
| 31 |
* @property StripeObject $source The source object for errors returned on a |
| 32 |
* request involving a source. |
| 33 |
* @property string $type The type of error returned. One of `api_error`, |
| 34 |
* `card_error`, `idempotency_error`, or `invalid_request_error`. |
| 35 |
*/ |
| 36 |
class ErrorObject extends StripeObject |
| 37 |
{ |
| 38 |
/** |
| 39 |
* Possible string representations of an error's code. |
| 40 |
* |
| 41 |
* @see https://stripe.com/docs/error-codes |
| 42 |
*/ |
| 43 |
const CODE_ACCOUNT_COUNTRY_INVALID_ADDRESS = 'account_country_invalid_address'; |
| 44 |
const CODE_ACCOUNT_ERROR_COUNTRY_CHANGE_REQUIRES_ADDITIONAL_STEPS = 'account_error_country_change_requires_additional_steps'; |
| 45 |
const CODE_ACCOUNT_INFORMATION_MISMATCH = 'account_information_mismatch'; |
| 46 |
const CODE_ACCOUNT_INVALID = 'account_invalid'; |
| 47 |
const CODE_ACCOUNT_NUMBER_INVALID = 'account_number_invalid'; |
| 48 |
const CODE_ACSS_DEBIT_SESSION_INCOMPLETE = 'acss_debit_session_incomplete'; |
| 49 |
const CODE_ALIPAY_UPGRADE_REQUIRED = 'alipay_upgrade_required'; |
| 50 |
const CODE_AMOUNT_TOO_LARGE = 'amount_too_large'; |
| 51 |
const CODE_AMOUNT_TOO_SMALL = 'amount_too_small'; |
| 52 |
const CODE_API_KEY_EXPIRED = 'api_key_expired'; |
| 53 |
const CODE_AUTHENTICATION_REQUIRED = 'authentication_required'; |
| 54 |
const CODE_BALANCE_INSUFFICIENT = 'balance_insufficient'; |
| 55 |
const CODE_BANK_ACCOUNT_BAD_ROUTING_NUMBERS = 'bank_account_bad_routing_numbers'; |
| 56 |
const CODE_BANK_ACCOUNT_DECLINED = 'bank_account_declined'; |
| 57 |
const CODE_BANK_ACCOUNT_EXISTS = 'bank_account_exists'; |
| 58 |
const CODE_BANK_ACCOUNT_UNUSABLE = 'bank_account_unusable'; |
| 59 |
const CODE_BANK_ACCOUNT_UNVERIFIED = 'bank_account_unverified'; |
| 60 |
const CODE_BANK_ACCOUNT_VERIFICATION_FAILED = 'bank_account_verification_failed'; |
| 61 |
const CODE_BILLING_INVALID_MANDATE = 'billing_invalid_mandate'; |
| 62 |
const CODE_BITCOIN_UPGRADE_REQUIRED = 'bitcoin_upgrade_required'; |
| 63 |
const CODE_CARD_DECLINE_RATE_LIMIT_EXCEEDED = 'card_decline_rate_limit_exceeded'; |
| 64 |
const CODE_CARD_DECLINED = 'card_declined'; |
| 65 |
const CODE_CARDHOLDER_PHONE_NUMBER_REQUIRED = 'cardholder_phone_number_required'; |
| 66 |
const CODE_CHARGE_ALREADY_CAPTURED = 'charge_already_captured'; |
| 67 |
const CODE_CHARGE_ALREADY_REFUNDED = 'charge_already_refunded'; |
| 68 |
const CODE_CHARGE_DISPUTED = 'charge_disputed'; |
| 69 |
const CODE_CHARGE_EXCEEDS_SOURCE_LIMIT = 'charge_exceeds_source_limit'; |
| 70 |
const CODE_CHARGE_EXPIRED_FOR_CAPTURE = 'charge_expired_for_capture'; |
| 71 |
const CODE_CHARGE_INVALID_PARAMETER = 'charge_invalid_parameter'; |
| 72 |
const CODE_CLEARING_CODE_UNSUPPORTED = 'clearing_code_unsupported'; |
| 73 |
const CODE_COUNTRY_CODE_INVALID = 'country_code_invalid'; |
| 74 |
const CODE_COUNTRY_UNSUPPORTED = 'country_unsupported'; |
| 75 |
const CODE_COUPON_EXPIRED = 'coupon_expired'; |
| 76 |
const CODE_CUSTOMER_MAX_PAYMENT_METHODS = 'customer_max_payment_methods'; |
| 77 |
const CODE_CUSTOMER_MAX_SUBSCRIPTIONS = 'customer_max_subscriptions'; |
| 78 |
const CODE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized'; |
| 79 |
const CODE_EMAIL_INVALID = 'email_invalid'; |
| 80 |
const CODE_EXPIRED_CARD = 'expired_card'; |
| 81 |
const CODE_IDEMPOTENCY_KEY_IN_USE = 'idempotency_key_in_use'; |
| 82 |
const CODE_INCORRECT_ADDRESS = 'incorrect_address'; |
| 83 |
const CODE_INCORRECT_CVC = 'incorrect_cvc'; |
| 84 |
const CODE_INCORRECT_NUMBER = 'incorrect_number'; |
| 85 |
const CODE_INCORRECT_ZIP = 'incorrect_zip'; |
| 86 |
const CODE_INSTANT_PAYOUTS_LIMIT_EXCEEDED = 'instant_payouts_limit_exceeded'; |
| 87 |
const CODE_INSTANT_PAYOUTS_UNSUPPORTED = 'instant_payouts_unsupported'; |
| 88 |
const CODE_INSUFFICIENT_FUNDS = 'insufficient_funds'; |
| 89 |
const CODE_INTENT_INVALID_STATE = 'intent_invalid_state'; |
| 90 |
const CODE_INTENT_VERIFICATION_METHOD_MISSING = 'intent_verification_method_missing'; |
| 91 |
const CODE_INVALID_CARD_TYPE = 'invalid_card_type'; |
| 92 |
const CODE_INVALID_CHARACTERS = 'invalid_characters'; |
| 93 |
const CODE_INVALID_CHARGE_AMOUNT = 'invalid_charge_amount'; |
| 94 |
const CODE_INVALID_CVC = 'invalid_cvc'; |
| 95 |
const CODE_INVALID_EXPIRY_MONTH = 'invalid_expiry_month'; |
| 96 |
const CODE_INVALID_EXPIRY_YEAR = 'invalid_expiry_year'; |
| 97 |
const CODE_INVALID_NUMBER = 'invalid_number'; |
| 98 |
const CODE_INVALID_SOURCE_USAGE = 'invalid_source_usage'; |
| 99 |
const CODE_INVOICE_NO_CUSTOMER_LINE_ITEMS = 'invoice_no_customer_line_items'; |
| 100 |
const CODE_INVOICE_NO_PAYMENT_METHOD_TYPES = 'invoice_no_payment_method_types'; |
| 101 |
const CODE_INVOICE_NO_SUBSCRIPTION_LINE_ITEMS = 'invoice_no_subscription_line_items'; |
| 102 |
const CODE_INVOICE_NOT_EDITABLE = 'invoice_not_editable'; |
| 103 |
const CODE_INVOICE_ON_BEHALF_OF_NOT_EDITABLE = 'invoice_on_behalf_of_not_editable'; |
| 104 |
const CODE_INVOICE_PAYMENT_INTENT_REQUIRES_ACTION = 'invoice_payment_intent_requires_action'; |
| 105 |
const CODE_INVOICE_UPCOMING_NONE = 'invoice_upcoming_none'; |
| 106 |
const CODE_LIVEMODE_MISMATCH = 'livemode_mismatch'; |
| 107 |
const CODE_LOCK_TIMEOUT = 'lock_timeout'; |
| 108 |
const CODE_MISSING = 'missing'; |
| 109 |
const CODE_NO_ACCOUNT = 'no_account'; |
| 110 |
const CODE_NOT_ALLOWED_ON_STANDARD_ACCOUNT = 'not_allowed_on_standard_account'; |
| 111 |
const CODE_OUT_OF_INVENTORY = 'out_of_inventory'; |
| 112 |
const CODE_PARAMETER_INVALID_EMPTY = 'parameter_invalid_empty'; |
| 113 |
const CODE_PARAMETER_INVALID_INTEGER = 'parameter_invalid_integer'; |
| 114 |
const CODE_PARAMETER_INVALID_STRING_BLANK = 'parameter_invalid_string_blank'; |
| 115 |
const CODE_PARAMETER_INVALID_STRING_EMPTY = 'parameter_invalid_string_empty'; |
| 116 |
const CODE_PARAMETER_MISSING = 'parameter_missing'; |
| 117 |
const CODE_PARAMETER_UNKNOWN = 'parameter_unknown'; |
| 118 |
const CODE_PARAMETERS_EXCLUSIVE = 'parameters_exclusive'; |
| 119 |
const CODE_PAYMENT_INTENT_ACTION_REQUIRED = 'payment_intent_action_required'; |
| 120 |
const CODE_PAYMENT_INTENT_AUTHENTICATION_FAILURE = 'payment_intent_authentication_failure'; |
| 121 |
const CODE_PAYMENT_INTENT_INCOMPATIBLE_PAYMENT_METHOD = 'payment_intent_incompatible_payment_method'; |
| 122 |
const CODE_PAYMENT_INTENT_INVALID_PARAMETER = 'payment_intent_invalid_parameter'; |
| 123 |
const CODE_PAYMENT_INTENT_KONBINI_REJECTED_CONFIRMATION_NUMBER = 'payment_intent_konbini_rejected_confirmation_number'; |
| 124 |
const CODE_PAYMENT_INTENT_MANDATE_INVALID = 'payment_intent_mandate_invalid'; |
| 125 |
const CODE_PAYMENT_INTENT_PAYMENT_ATTEMPT_EXPIRED = 'payment_intent_payment_attempt_expired'; |
| 126 |
const CODE_PAYMENT_INTENT_PAYMENT_ATTEMPT_FAILED = 'payment_intent_payment_attempt_failed'; |
| 127 |
const CODE_PAYMENT_INTENT_UNEXPECTED_STATE = 'payment_intent_unexpected_state'; |
| 128 |
const CODE_PAYMENT_METHOD_BANK_ACCOUNT_ALREADY_VERIFIED = 'payment_method_bank_account_already_verified'; |
| 129 |
const CODE_PAYMENT_METHOD_BANK_ACCOUNT_BLOCKED = 'payment_method_bank_account_blocked'; |
| 130 |
const CODE_PAYMENT_METHOD_BILLING_DETAILS_ADDRESS_MISSING = 'payment_method_billing_details_address_missing'; |
| 131 |
const CODE_PAYMENT_METHOD_CURRENCY_MISMATCH = 'payment_method_currency_mismatch'; |
| 132 |
const CODE_PAYMENT_METHOD_INVALID_PARAMETER = 'payment_method_invalid_parameter'; |
| 133 |
const CODE_PAYMENT_METHOD_INVALID_PARAMETER_TESTMODE = 'payment_method_invalid_parameter_testmode'; |
| 134 |
const CODE_PAYMENT_METHOD_MICRODEPOSIT_FAILED = 'payment_method_microdeposit_failed'; |
| 135 |
const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_AMOUNTS_INVALID = 'payment_method_microdeposit_verification_amounts_invalid'; |
| 136 |
const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_AMOUNTS_MISMATCH = 'payment_method_microdeposit_verification_amounts_mismatch'; |
| 137 |
const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_ATTEMPTS_EXCEEDED = 'payment_method_microdeposit_verification_attempts_exceeded'; |
| 138 |
const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_DESCRIPTOR_CODE_MISMATCH = 'payment_method_microdeposit_verification_descriptor_code_mismatch'; |
| 139 |
const CODE_PAYMENT_METHOD_MICRODEPOSIT_VERIFICATION_TIMEOUT = 'payment_method_microdeposit_verification_timeout'; |
| 140 |
const CODE_PAYMENT_METHOD_PROVIDER_DECLINE = 'payment_method_provider_decline'; |
| 141 |
const CODE_PAYMENT_METHOD_PROVIDER_TIMEOUT = 'payment_method_provider_timeout'; |
| 142 |
const CODE_PAYMENT_METHOD_UNACTIVATED = 'payment_method_unactivated'; |
| 143 |
const CODE_PAYMENT_METHOD_UNEXPECTED_STATE = 'payment_method_unexpected_state'; |
| 144 |
const CODE_PAYMENT_METHOD_UNSUPPORTED_TYPE = 'payment_method_unsupported_type'; |
| 145 |
const CODE_PAYOUTS_NOT_ALLOWED = 'payouts_not_allowed'; |
| 146 |
const CODE_PLATFORM_ACCOUNT_REQUIRED = 'platform_account_required'; |
| 147 |
const CODE_PLATFORM_API_KEY_EXPIRED = 'platform_api_key_expired'; |
| 148 |
const CODE_POSTAL_CODE_INVALID = 'postal_code_invalid'; |
| 149 |
const CODE_PROCESSING_ERROR = 'processing_error'; |
| 150 |
const CODE_PRODUCT_INACTIVE = 'product_inactive'; |
| 151 |
const CODE_RATE_LIMIT = 'rate_limit'; |
| 152 |
const CODE_REFER_TO_CUSTOMER = 'refer_to_customer'; |
| 153 |
const CODE_REFUND_DISPUTED_PAYMENT = 'refund_disputed_payment'; |
| 154 |
const CODE_RESOURCE_ALREADY_EXISTS = 'resource_already_exists'; |
| 155 |
const CODE_RESOURCE_MISSING = 'resource_missing'; |
| 156 |
const CODE_RETURN_INTENT_ALREADY_PROCESSED = 'return_intent_already_processed'; |
| 157 |
const CODE_ROUTING_NUMBER_INVALID = 'routing_number_invalid'; |
| 158 |
const CODE_SECRET_KEY_REQUIRED = 'secret_key_required'; |
| 159 |
const CODE_SEPA_UNSUPPORTED_ACCOUNT = 'sepa_unsupported_account'; |
| 160 |
const CODE_SETUP_ATTEMPT_FAILED = 'setup_attempt_failed'; |
| 161 |
const CODE_SETUP_INTENT_AUTHENTICATION_FAILURE = 'setup_intent_authentication_failure'; |
| 162 |
const CODE_SETUP_INTENT_INVALID_PARAMETER = 'setup_intent_invalid_parameter'; |
| 163 |
const CODE_SETUP_INTENT_SETUP_ATTEMPT_EXPIRED = 'setup_intent_setup_attempt_expired'; |
| 164 |
const CODE_SETUP_INTENT_UNEXPECTED_STATE = 'setup_intent_unexpected_state'; |
| 165 |
const CODE_SHIPPING_CALCULATION_FAILED = 'shipping_calculation_failed'; |
| 166 |
const CODE_SKU_INACTIVE = 'sku_inactive'; |
| 167 |
const CODE_STATE_UNSUPPORTED = 'state_unsupported'; |
| 168 |
const CODE_TAX_ID_INVALID = 'tax_id_invalid'; |
| 169 |
const CODE_TAXES_CALCULATION_FAILED = 'taxes_calculation_failed'; |
| 170 |
const CODE_TERMINAL_LOCATION_COUNTRY_UNSUPPORTED = 'terminal_location_country_unsupported'; |
| 171 |
const CODE_TESTMODE_CHARGES_ONLY = 'testmode_charges_only'; |
| 172 |
const CODE_TLS_VERSION_UNSUPPORTED = 'tls_version_unsupported'; |
| 173 |
const CODE_TOKEN_ALREADY_USED = 'token_already_used'; |
| 174 |
const CODE_TOKEN_IN_USE = 'token_in_use'; |
| 175 |
const CODE_TRANSFER_SOURCE_BALANCE_PARAMETERS_MISMATCH = 'transfer_source_balance_parameters_mismatch'; |
| 176 |
const CODE_TRANSFERS_NOT_ALLOWED = 'transfers_not_allowed'; |
| 177 |
const CODE_URL_INVALID = 'url_invalid'; |
| 178 |
|
| 179 |
/** |
| 180 |
* Refreshes this object using the provided values. |
| 181 |
* |
| 182 |
* @param array $values |
| 183 |
* @param null|array|string|Util\RequestOptions $opts |
| 184 |
* @param bool $partial defaults to false |
| 185 |
*/ |
| 186 |
public function refreshFrom($values, $opts, $partial = false) |
| 187 |
{ |
| 188 |
// Unlike most other API resources, the API will omit attributes in |
| 189 |
// error objects when they have a null value. We manually set default |
| 190 |
// values here to facilitate generic error handling. |
| 191 |
$values = \array_merge([ |
| 192 |
'charge' => null, |
| 193 |
'code' => null, |
| 194 |
'decline_code' => null, |
| 195 |
'doc_url' => null, |
| 196 |
'message' => null, |
| 197 |
'param' => null, |
| 198 |
'payment_intent' => null, |
| 199 |
'payment_method' => null, |
| 200 |
'setup_intent' => null, |
| 201 |
'source' => null, |
| 202 |
'type' => null, |
| 203 |
], $values); |
| 204 |
parent::refreshFrom($values, $opts, $partial); |
| 205 |
} |
| 206 |
} |
| 207 |
|