ApiOperations
6 years ago
Checkout
6 years ago
Error
6 years ago
HttpClient
6 years ago
Issuing
6 years ago
Radar
6 years ago
Reporting
6 years ago
Sigma
6 years ago
Terminal
6 years ago
Util
6 years ago
Account.php
6 years ago
AccountLink.php
6 years ago
AlipayAccount.php
6 years ago
ApiRequestor.php
6 years ago
ApiResource.php
6 years ago
ApiResponse.php
6 years ago
ApplePayDomain.php
6 years ago
ApplicationFee.php
6 years ago
ApplicationFeeRefund.php
6 years ago
Balance.php
6 years ago
BalanceTransaction.php
6 years ago
BankAccount.php
6 years ago
BitcoinReceiver.php
6 years ago
BitcoinTransaction.php
6 years ago
Capability.php
6 years ago
Card.php
6 years ago
Charge.php
6 years ago
Collection.php
6 years ago
CountrySpec.php
6 years ago
Coupon.php
6 years ago
CreditNote.php
6 years ago
Customer.php
6 years ago
CustomerBalanceTransaction.php
6 years ago
Discount.php
6 years ago
Dispute.php
6 years ago
EphemeralKey.php
6 years ago
Event.php
6 years ago
ExchangeRate.php
6 years ago
File.php
6 years ago
FileLink.php
6 years ago
FileUpload.php
6 years ago
Invoice.php
6 years ago
InvoiceItem.php
6 years ago
InvoiceLineItem.php
6 years ago
IssuerFraudRecord.php
6 years ago
LoginLink.php
6 years ago
OAuth.php
6 years ago
Order.php
6 years ago
OrderItem.php
6 years ago
OrderReturn.php
6 years ago
PaymentIntent.php
6 years ago
PaymentMethod.php
6 years ago
Payout.php
6 years ago
Person.php
6 years ago
Plan.php
6 years ago
Product.php
6 years ago
Recipient.php
6 years ago
RecipientTransfer.php
6 years ago
Refund.php
6 years ago
RequestTelemetry.php
6 years ago
Review.php
6 years ago
SKU.php
6 years ago
SetupIntent.php
6 years ago
SingletonApiResource.php
6 years ago
Source.php
6 years ago
SourceTransaction.php
6 years ago
Stripe.php
6 years ago
StripeObject.php
6 years ago
Subscription.php
6 years ago
SubscriptionItem.php
6 years ago
SubscriptionSchedule.php
6 years ago
TaxId.php
6 years ago
TaxRate.php
6 years ago
ThreeDSecure.php
6 years ago
Token.php
6 years ago
Topup.php
6 years ago
Transfer.php
6 years ago
TransferReversal.php
6 years ago
UsageRecord.php
6 years ago
UsageRecordSummary.php
6 years ago
Webhook.php
6 years ago
WebhookEndpoint.php
6 years ago
WebhookSignature.php
6 years ago
Charge.php
207 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Stripe; |
| 4 | |
| 5 | /** |
| 6 | * Class Charge |
| 7 | * |
| 8 | * @property string $id |
| 9 | * @property string $object |
| 10 | * @property int $amount |
| 11 | * @property int $amount_refunded |
| 12 | * @property string $application |
| 13 | * @property string $application_fee |
| 14 | * @property int $application_fee_amount |
| 15 | * @property string $balance_transaction |
| 16 | * @property mixed $billing_details |
| 17 | * @property bool $captured |
| 18 | * @property int $created |
| 19 | * @property string $currency |
| 20 | * @property string $customer |
| 21 | * @property string $description |
| 22 | * @property string $destination |
| 23 | * @property string $dispute |
| 24 | * @property string $failure_code |
| 25 | * @property string $failure_message |
| 26 | * @property mixed $fraud_details |
| 27 | * @property string $invoice |
| 28 | * @property bool $livemode |
| 29 | * @property StripeObject $metadata |
| 30 | * @property string $on_behalf_of |
| 31 | * @property string $order |
| 32 | * @property mixed $outcome |
| 33 | * @property bool $paid |
| 34 | * @property string $payment_intent |
| 35 | * @property string $payment_method |
| 36 | * @property mixed $payment_method_details |
| 37 | * @property string $receipt_email |
| 38 | * @property string $receipt_number |
| 39 | * @property string $receipt_url |
| 40 | * @property bool $refunded |
| 41 | * @property Collection $refunds |
| 42 | * @property string $review |
| 43 | * @property mixed $shipping |
| 44 | * @property mixed $source |
| 45 | * @property string $source_transfer |
| 46 | * @property string $statement_descriptor |
| 47 | * @property string $status |
| 48 | * @property string $transfer |
| 49 | * @property mixed $transfer_data |
| 50 | * @property string $transfer_group |
| 51 | * |
| 52 | * @package Stripe |
| 53 | */ |
| 54 | class Charge extends ApiResource |
| 55 | { |
| 56 | const OBJECT_NAME = "charge"; |
| 57 | |
| 58 | use ApiOperations\All; |
| 59 | use ApiOperations\Create; |
| 60 | use ApiOperations\Retrieve; |
| 61 | use ApiOperations\Update; |
| 62 | |
| 63 | /** |
| 64 | * Possible string representations of decline codes. |
| 65 | * These strings are applicable to the decline_code property of the \Stripe\Error\Card exception. |
| 66 | * @link https://stripe.com/docs/declines/codes |
| 67 | */ |
| 68 | const DECLINED_APPROVE_WITH_ID = 'approve_with_id'; |
| 69 | const DECLINED_CALL_ISSUER = 'call_issuer'; |
| 70 | const DECLINED_CARD_NOT_SUPPORTED = 'card_not_supported'; |
| 71 | const DECLINED_CARD_VELOCITY_EXCEEDED = 'card_velocity_exceeded'; |
| 72 | const DECLINED_CURRENCY_NOT_SUPPORTED = 'currency_not_supported'; |
| 73 | const DECLINED_DO_NOT_HONOR = 'do_not_honor'; |
| 74 | const DECLINED_DO_NOT_TRY_AGAIN = 'do_not_try_again'; |
| 75 | const DECLINED_DUPLICATED_TRANSACTION = 'duplicate_transaction'; |
| 76 | const DECLINED_EXPIRED_CARD = 'expired_card'; |
| 77 | const DECLINED_FRAUDULENT = 'fraudulent'; |
| 78 | const DECLINED_GENERIC_DECLINE = 'generic_decline'; |
| 79 | const DECLINED_INCORRECT_NUMBER = 'incorrect_number'; |
| 80 | const DECLINED_INCORRECT_CVC = 'incorrect_cvc'; |
| 81 | const DECLINED_INCORRECT_PIN = 'incorrect_pin'; |
| 82 | const DECLINED_INCORRECT_ZIP = 'incorrect_zip'; |
| 83 | const DECLINED_INSUFFICIENT_FUNDS = 'insufficient_funds'; |
| 84 | const DECLINED_INVALID_ACCOUNT = 'invalid_account'; |
| 85 | const DECLINED_INVALID_AMOUNT = 'invalid_amount'; |
| 86 | const DECLINED_INVALID_CVC = 'invalid_cvc'; |
| 87 | const DECLINED_INVALID_EXPIRY_YEAR = 'invalid_expiry_year'; |
| 88 | const DECLINED_INVALID_NUMBER = 'invalid_number'; |
| 89 | const DECLINED_INVALID_PIN = 'invalid_pin'; |
| 90 | const DECLINED_ISSUER_NOT_AVAILABLE = 'issuer_not_available'; |
| 91 | const DECLINED_LOST_CARD = 'lost_card'; |
| 92 | const DECLINED_MERCHANT_BLACKLIST = 'merchant_blacklist'; |
| 93 | const DECLINED_NEW_ACCOUNT_INFORMATION_AVAILABLE = 'new_account_information_available'; |
| 94 | const DECLINED_NO_ACTION_TAKEN = 'no_action_taken'; |
| 95 | const DECLINED_NOT_PERMITTED = 'not_permitted'; |
| 96 | const DECLINED_PICKUP_CARD = 'pickup_card'; |
| 97 | const DECLINED_PIN_TRY_EXCEEDED = 'pin_try_exceeded'; |
| 98 | const DECLINED_PROCESSING_ERROR = 'processing_error'; |
| 99 | const DECLINED_REENTER_TRANSACTION = 'reenter_transaction'; |
| 100 | const DECLINED_RESTRICTED_CARD = 'restricted_card'; |
| 101 | const DECLINED_REVOCATION_OF_ALL_AUTHORIZATIONS = 'revocation_of_all_authorizations'; |
| 102 | const DECLINED_REVOCATION_OF_AUTHORIZATION = 'revocation_of_authorization'; |
| 103 | const DECLINED_SECURITY_VIOLATION = 'security_violation'; |
| 104 | const DECLINED_SERVICE_NOT_ALLOWED = 'service_not_allowed'; |
| 105 | const DECLINED_STOLEN_CARD = 'stolen_card'; |
| 106 | const DECLINED_STOP_PAYMENT_ORDER = 'stop_payment_order'; |
| 107 | const DECLINED_TESTMODE_DECLINE = 'testmode_decline'; |
| 108 | const DECLINED_TRANSACTION_NOT_ALLOWED = 'transaction_not_allowed'; |
| 109 | const DECLINED_TRY_AGAIN_LATER = 'try_again_later'; |
| 110 | const DECLINED_WITHDRAWAL_COUNT_LIMIT_EXCEEDED = 'withdrawal_count_limit_exceeded'; |
| 111 | |
| 112 | /** |
| 113 | * Possible string representations of the status of the charge. |
| 114 | * @link https://stripe.com/docs/api/charges/object#charge_object-status |
| 115 | */ |
| 116 | const STATUS_FAILED = 'failed'; |
| 117 | const STATUS_PENDING = 'pending'; |
| 118 | const STATUS_SUCCEEDED = 'succeeded'; |
| 119 | |
| 120 | /** |
| 121 | * @param array|null $params |
| 122 | * @param array|string|null $options |
| 123 | * |
| 124 | * @return Charge The refunded charge. |
| 125 | */ |
| 126 | public function refund($params = null, $options = null) |
| 127 | { |
| 128 | $url = $this->instanceUrl() . '/refund'; |
| 129 | list($response, $opts) = $this->_request('post', $url, $params, $options); |
| 130 | $this->refreshFrom($response, $opts); |
| 131 | return $this; |
| 132 | } |
| 133 | |
| 134 | /** |
| 135 | * @param array|null $params |
| 136 | * @param array|string|null $options |
| 137 | * |
| 138 | * @return Charge The captured charge. |
| 139 | */ |
| 140 | public function capture($params = null, $options = null) |
| 141 | { |
| 142 | $url = $this->instanceUrl() . '/capture'; |
| 143 | list($response, $opts) = $this->_request('post', $url, $params, $options); |
| 144 | $this->refreshFrom($response, $opts); |
| 145 | return $this; |
| 146 | } |
| 147 | |
| 148 | /** |
| 149 | * @param array|null $params |
| 150 | * @param array|string|null $options |
| 151 | * |
| 152 | * @deprecated Use the `save` method on the Dispute object |
| 153 | * |
| 154 | * @return array The updated dispute. |
| 155 | */ |
| 156 | public function updateDispute($params = null, $options = null) |
| 157 | { |
| 158 | $url = $this->instanceUrl() . '/dispute'; |
| 159 | list($response, $opts) = $this->_request('post', $url, $params, $options); |
| 160 | $this->refreshFrom(['dispute' => $response], $opts, true); |
| 161 | return $this->dispute; |
| 162 | } |
| 163 | |
| 164 | /** |
| 165 | * @param array|string|null $options |
| 166 | * |
| 167 | * @deprecated Use the `close` method on the Dispute object |
| 168 | * |
| 169 | * @return Charge The updated charge. |
| 170 | */ |
| 171 | public function closeDispute($options = null) |
| 172 | { |
| 173 | $url = $this->instanceUrl() . '/dispute/close'; |
| 174 | list($response, $opts) = $this->_request('post', $url, null, $options); |
| 175 | $this->refreshFrom($response, $opts); |
| 176 | return $this; |
| 177 | } |
| 178 | |
| 179 | /** |
| 180 | * @param array|string|null $opts |
| 181 | * |
| 182 | * @return Charge The updated charge. |
| 183 | */ |
| 184 | public function markAsFraudulent($opts = null) |
| 185 | { |
| 186 | $params = ['fraud_details' => ['user_report' => 'fraudulent']]; |
| 187 | $url = $this->instanceUrl(); |
| 188 | list($response, $opts) = $this->_request('post', $url, $params, $opts); |
| 189 | $this->refreshFrom($response, $opts); |
| 190 | return $this; |
| 191 | } |
| 192 | |
| 193 | /** |
| 194 | * @param array|string|null $opts |
| 195 | * |
| 196 | * @return Charge The updated charge. |
| 197 | */ |
| 198 | public function markAsSafe($opts = null) |
| 199 | { |
| 200 | $params = ['fraud_details' => ['user_report' => 'safe']]; |
| 201 | $url = $this->instanceUrl(); |
| 202 | list($response, $opts) = $this->_request('post', $url, $params, $opts); |
| 203 | $this->refreshFrom($response, $opts); |
| 204 | return $this; |
| 205 | } |
| 206 | } |
| 207 |