Viewing file: PaymentMethod.php (2.55 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Laravel\Cashier;
use Illuminate\Contracts\Support\Arrayable; use Illuminate\Contracts\Support\Jsonable; use JsonSerializable; use Laravel\Cashier\Exceptions\InvalidPaymentMethod; 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 ($owner->stripe_id !== $paymentMethod->customer) { throw InvalidPaymentMethod::invalidOwner($paymentMethod, $owner); }
$this->owner = $owner; $this->paymentMethod = $paymentMethod; }
/** * Delete the payment method. * * @return \Stripe\PaymentMethod */ public function delete() { return $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}; } }
|