[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: PayPalRequest.php
<?php namespace Srmklive\PayPal\Traits; use RuntimeException; trait PayPalRequest { use PayPalHttpClient; use PayPalAPI; use PayPalExperienceContext; /** * PayPal API mode to be used. * * @var string */ public $mode; /** * PayPal access token. * * @var string */ protected $access_token; /** * PayPal API configuration. * * @var array */ private $config; /** * Default currency for PayPal. * * @var string */ protected $currency; /** * Additional options for PayPal API request. * * @var array */ protected $options; /** * Set limit to total records per API call. * * @var int */ protected $page_size = 20; /** * Set the current page for list resources API calls. * * @var bool */ protected $current_page = 1; /** * Toggle whether totals for list resources are returned after every API call. * * @var string */ protected string $show_totals; /** * Set PayPal API Credentials. * * @param array $credentials * * @throws \RuntimeException|\Exception */ public function setApiCredentials(array $credentials): void { if (empty($credentials)) { $this->throwConfigurationException(); } // Setting Default PayPal Mode If not set $this->setApiEnvironment($credentials); // Set API configuration for the PayPal provider $this->setApiProviderConfiguration($credentials); // Set default currency. $this->setCurrency($credentials['currency']); // Set Http Client configuration. $this->setHttpClientConfiguration(); } /** * Function to set currency. * * @param string $currency * * @throws \RuntimeException * * @return \Srmklive\PayPal\Services\PayPal */ public function setCurrency(string $currency = 'USD'): \Srmklive\PayPal\Services\PayPal { $allowedCurrencies = ['AUD', 'BRL', 'CAD', 'CZK', 'DKK', 'EUR', 'HKD', 'HUF', 'ILS', 'INR', 'JPY', 'MYR', 'MXN', 'NOK', 'NZD', 'PHP', 'PLN', 'GBP', 'SGD', 'SEK', 'CHF', 'TWD', 'THB', 'USD', 'RUB', 'CNY']; // Check if provided currency is valid. if (!in_array($currency, $allowedCurrencies, true)) { throw new RuntimeException('Currency is not supported by PayPal.'); } $this->currency = $currency; return $this; } /** * Return the set currency. */ public function getCurrency(): string { return $this->currency; } /** * Function to add request header. * * @param string $key * @param string $value * * @return \Srmklive\PayPal\Services\PayPal */ public function setRequestHeader(string $key, string $value): \Srmklive\PayPal\Services\PayPal { $this->options['headers'][$key] = $value; return $this; } /** * Function to add multiple request headers. * * @param array $headers * * @return \Srmklive\PayPal\Services\PayPal */ public function setRequestHeaders(array $headers): \Srmklive\PayPal\Services\PayPal { foreach ($headers as $key=>$value) { $this->setRequestHeader($key, $value); } return $this; } /** * Return request options header. * * @param string $key * * @throws \RuntimeException * * @return string */ public function getRequestHeader(string $key): string { if (isset($this->options['headers'][$key])) { return $this->options['headers'][$key]; } throw new RuntimeException('Options header is not set.'); } /** * Function To Set PayPal API Configuration. * * @param array $config * * @throws \Exception */ private function setConfig(array $config): void { $api_config = empty($config) && function_exists('config') && !empty(config('paypal')) ? config('paypal') : $config; // Set Api Credentials $this->setApiCredentials($api_config); } /** * Set API environment to be used by PayPal. * * @param array $credentials */ private function setApiEnvironment(array $credentials): void { $this->mode = 'live'; if (!empty($credentials['mode'])) { $this->setValidApiEnvironment($credentials['mode']); } else { $this->throwConfigurationException(); } } /** * Validate & set the environment to be used by PayPal. * * @param string $mode */ private function setValidApiEnvironment(string $mode): void { $this->mode = !in_array($mode, ['sandbox', 'live']) ? 'live' : $mode; } /** * Set configuration details for the provider. * * @param array $credentials * * @throws \Exception */ private function setApiProviderConfiguration(array $credentials): void { // Setting PayPal API Credentials if (empty($credentials[$this->mode])) { $this->throwConfigurationException(); } $config_params = ['client_id', 'client_secret']; foreach ($config_params as $item) { if (empty($credentials[$this->mode][$item])) { throw new RuntimeException("{$item} missing from the provided configuration. Please add your application {$item}."); } } collect($credentials[$this->mode])->map(function ($value, $key) { $this->config[$key] = $value; }); $this->paymentAction = $credentials['payment_action']; $this->locale = $credentials['locale']; $this->setRequestHeader('Accept-Language', $this->locale); $this->validateSSL = $credentials['validate_ssl']; $this->setOptions($credentials); } /** * @throws RuntimeException */ private function throwConfigurationException() { throw new RuntimeException('Invalid configuration provided. Please provide valid configuration for PayPal API. You can also refer to the documentation at https://srmklive.github.io/laravel-paypal/docs.html to setup correct configuration.'); } /** * @throws RuntimeException */ private function throwInvalidEvidenceFileException() { throw new RuntimeException('Invalid evidence file type provided. 1. The party can upload up to 50 MB of files per request. 2. Individual files must be smaller than 10 MB. 3. The supported file formats are JPG, JPEG, GIF, PNG, and PDF. '); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.73 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002