![]() 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/cartforge.co/vendor/braintree/braintree_php/lib/Braintree/ |
<?php namespace Braintree; /** * Braintree Subscription module * * // phpcs:ignore * For more detailed information on Subscriptions, see {@link https://developer.paypal.com/braintree/docs/reference/response/subscription our developer docs} */ class Subscription extends Base { const ACTIVE = 'Active'; const CANCELED = 'Canceled'; const EXPIRED = 'Expired'; const PAST_DUE = 'Past Due'; const PENDING = 'Pending'; // Subscription Sources const API = 'api'; const CONTROL_PANEL = 'control_panel'; const RECURRING = 'recurring'; /** * Creates an instance from given attributes * * @param array $attributes response object attributes * * @return Subscription */ public static function factory($attributes) { $instance = new self(); $instance->_initialize($attributes); return $instance; } protected function _initialize($attributes) { $this->_attributes = $attributes; $addOnArray = []; if (isset($attributes['addOns'])) { foreach ($attributes['addOns'] as $addOn) { $addOnArray[] = AddOn::factory($addOn); } } $this->_attributes['addOns'] = $addOnArray; $discountArray = []; if (isset($attributes['discounts'])) { foreach ($attributes['discounts'] as $discount) { $discountArray[] = Discount::factory($discount); } } $this->_attributes['discounts'] = $discountArray; if (isset($attributes['descriptor'])) { $this->_set('descriptor', new Descriptor($attributes['descriptor'])); } if (isset($attributes['description'])) { $this->_set('description', $attributes['description']); } $statusHistory = []; if (isset($attributes['statusHistory'])) { foreach ($attributes['statusHistory'] as $history) { $statusHistory[] = new Subscription\StatusDetails($history); } } $this->_attributes['statusHistory'] = $statusHistory; $transactionArray = []; if (isset($attributes['transactions'])) { foreach ($attributes['transactions'] as $transaction) { $transactionArray[] = Transaction::factory($transaction); } } $this->_attributes['transactions'] = $transactionArray; } // phpcs:ignore PEAR.Commenting.FunctionComment.Missing public function __toString() { $excludedAttributes = ['statusHistory']; $displayAttributes = []; foreach ($this->_attributes as $key => $val) { if (!in_array($key, $excludedAttributes)) { $displayAttributes[$key] = $val; } } return __CLASS__ . '[' . Util::attributesToString($displayAttributes) . ']'; } /** * Static methods redirecting to gateway class * * @param array $attributes containing request params * * @see SubscriptionGateway::create() * * @return Result\Successful|Result\Error */ public static function create($attributes) { return Configuration::gateway()->subscription()->create($attributes); } /* * Static methods redirecting to gateway class * * @param string $id of the subscription to find * * @see SubscriptionGateway::find() * * @return Subscription|Exception\NotFound */ public static function find($id) { return Configuration::gateway()->subscription()->find($id); } /* * Static methods redirecting to gateway class * * @param mixed $query of search fields * * @see SubscriptionGateway::search() * * @return ResourceCollection of Subscription objects */ public static function search($query) { return Configuration::gateway()->subscription()->search($query); } /* * Static methods redirecting to gateway class * * @param mixed $query of search fields * @param array $ids to be fetched * * @see SubscriptionGateway::fetch() * * @return ResourceCollection of Subscription objects */ public static function fetch($query, $ids) { return Configuration::gateway()->subscription()->fetch($query, $ids); } /* * Static methods redirecting to gateway class * * @param string $subscriptionId the ID of the subscription to be updated * @param mixed $attributes * * @see SubscriptionGateway::update() * * @return Subscription|Exception\NotFound */ public static function update($subscriptionId, $attributes) { return Configuration::gateway()->subscription()->update($subscriptionId, $attributes); } /* * Static methods redirecting to gateway class * * @param string $subscriptionId the ID of the subscription with a charge being retried * @param string $amount optional * @param bool $submitForSettlement defaults to false unless specified true * * @see SubscriptionGateway::retryCharge() * * @return Transaction */ public static function retryCharge($subscriptionId, $amount = null, $submitForSettlement = false) { return Configuration::gateway()->subscription()->retryCharge($subscriptionId, $amount, $submitForSettlement); } /* * Static methods redirecting to gateway class * * @param string $subscriptionId to be canceled * * @see SubscriptionGateway::cancel() * * @return Subscription|Exception\NotFound */ public static function cancel($subscriptionId) { return Configuration::gateway()->subscription()->cancel($subscriptionId); } }