![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mcoil.corals.io/vendor/laravel/cashier/src/ |
<?php namespace Laravel\Cashier; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Contracts\Support\Jsonable; use JsonSerializable; use Laravel\Cashier\Exceptions\InvalidPaymentMethod; use LogicException; use Stripe\PaymentMethod as StripePaymentMethod; class PaymentMethod implements Arrayable, Jsonable, JsonSerializable { /** * The Stripe model instance. * * @var \Illuminate\Database\Eloquent\Model */ protected $owner; /** * The Stripe PaymentMethod instance. * * @var \Stripe\PaymentMethod */ protected $paymentMethod; /** * Create a new PaymentMethod instance. * * @param \Illuminate\Database\Eloquent\Model $owner * @param \Stripe\PaymentMethod $paymentMethod * @return void * * @throws \Laravel\Cashier\Exceptions\InvalidPaymentMethod */ public function __construct($owner, StripePaymentMethod $paymentMethod) { if (is_null($paymentMethod->customer)) { throw new LogicException('The payment method is not attached to a customer.'); } if ($owner->stripe_id !== $paymentMethod->customer) { throw InvalidPaymentMethod::invalidOwner($paymentMethod, $owner); } $this->owner = $owner; $this->paymentMethod = $paymentMethod; } /** * Delete the payment method. * * @return void */ public function delete() { $this->owner->deletePaymentMethod($this->paymentMethod); } /** * Get the Stripe model instance. * * @return \Illuminate\Database\Eloquent\Model */ public function owner() { return $this->owner; } /** * Get the Stripe PaymentMethod instance. * * @return \Stripe\PaymentMethod */ public function asStripePaymentMethod() { return $this->paymentMethod; } /** * Get the instance as an array. * * @return array */ public function toArray() { return $this->asStripePaymentMethod()->toArray(); } /** * Convert the object to its JSON representation. * * @param int $options * @return string */ public function toJson($options = 0) { return json_encode($this->jsonSerialize(), $options); } /** * Convert the object into something JSON serializable. * * @return array */ #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->toArray(); } /** * Dynamically get values from the Stripe object. * * @param string $key * @return mixed */ public function __get($key) { return $this->paymentMethod->{$key}; } }