%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/vendor/laravel/cashier/src/ |
Upload File : |
<?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};
}
}