%PDF- %PDF-
Direktori : /home/forge/api-takeaseat.eco-n-tech.co.uk/vendor/laravel/cashier/src/ |
Current File : //home/forge/api-takeaseat.eco-n-tech.co.uk/vendor/laravel/cashier/src/PaymentMethod.php |
<?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->removePaymentMethod($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 */ public function jsonSerialize() { return $this->toArray(); } /** * Dynamically get values from the Stripe PaymentMethod. * * @param string $key * @return mixed */ public function __get($key) { return $this->paymentMethod->{$key}; } }