%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/Cashier.php |
<?php namespace Laravel\Cashier; use Money\Currencies\ISOCurrencies; use Money\Currency; use Money\Formatter\IntlMoneyFormatter; use Money\Money; use NumberFormatter; class Cashier { /** * The Cashier library version. * * @var string */ const VERSION = '12.15.0'; /** * The Stripe API version. * * @var string */ const STRIPE_VERSION = '2020-03-02'; /** * The custom currency formatter. * * @var callable */ protected static $formatCurrencyUsing; /** * Indicates if Cashier migrations will be run. * * @var bool */ public static $runsMigrations = true; /** * Indicates if Cashier routes will be registered. * * @var bool */ public static $registersRoutes = true; /** * Indicates if Cashier will mark past due subscriptions as inactive. * * @var bool */ public static $deactivatePastDue = true; /** * The subscription model class name. * * @var string */ public static $subscriptionModel = Subscription::class; /** * The subscription item model class name. * * @var string */ public static $subscriptionItemModel = SubscriptionItem::class; /** * Get the customer instance by Stripe ID. * * @param string $stripeId * @return \Laravel\Cashier\Billable|null */ public static function findBillable($stripeId) { if ($stripeId === null) { return; } $model = config('cashier.model'); return (new $model)->where('stripe_id', $stripeId)->first(); } /** * Get the default Stripe API options. * * @param array $options * @return array */ public static function stripeOptions(array $options = []) { return array_merge([ 'api_key' => config('cashier.secret'), 'stripe_version' => static::STRIPE_VERSION, ], $options); } /** * Set the custom currency formatter. * * @param callable $callback * @return void */ public static function formatCurrencyUsing(callable $callback) { static::$formatCurrencyUsing = $callback; } /** * Format the given amount into a displayable currency. * * @param int $amount * @param string|null $currency * @param string|null $locale * @return string */ public static function formatAmount($amount, $currency = null, $locale = null) { if (static::$formatCurrencyUsing) { return call_user_func(static::$formatCurrencyUsing, $amount, $currency); } $money = new Money($amount, new Currency(strtoupper($currency ?? config('cashier.currency')))); $locale = $locale ?? config('cashier.currency_locale'); $numberFormatter = new NumberFormatter($locale, NumberFormatter::CURRENCY); $moneyFormatter = new IntlMoneyFormatter($numberFormatter, new ISOCurrencies()); return $moneyFormatter->format($money); } /** * Configure Cashier to not register its migrations. * * @return static */ public static function ignoreMigrations() { static::$runsMigrations = false; return new static; } /** * Configure Cashier to not register its routes. * * @return static */ public static function ignoreRoutes() { static::$registersRoutes = false; return new static; } /** * Configure Cashier to maintain past due subscriptions as active. * * @return static */ public static function keepPastDueSubscriptionsActive() { static::$deactivatePastDue = false; return new static; } /** * Set the subscription model class name. * * @param string $subscriptionModel * @return void */ public static function useSubscriptionModel($subscriptionModel) { static::$subscriptionModel = $subscriptionModel; } /** * Set the subscription item model class name. * * @param string $subscriptionItemModel * @return void */ public static function useSubscriptionItemModel($subscriptionItemModel) { static::$subscriptionItemModel = $subscriptionItemModel; } }