credential == null) { return PPCredentialManager::getInstance()->getCredentialObject(); } return $this->credential; } /** * Get Request ID * * @return string */ public function getrequestId() { if ($this->requestId == null) { $this->requestId = $this->generateRequestId(); } return $this->requestId; } /** * Construct * * @param \PayPal\Auth\OAuthTokenCredential $credential * @param string|null $requestId */ public function __construct($credential = null, $requestId = null) { $this->requestId = $requestId; $this->credential = $credential; } /** * Sets Config * * @param array $config SDK configuration parameters */ public function setConfig(array $config) { PPConfigManager::getInstance()->addConfigs($config); } /** * Gets Configurations * * @return array */ public function getConfig() { return PPConfigManager::getInstance()->getConfigHashmap(); } /** * Gets a specific configuration from key * * @param $searchKey */ public function get($searchKey) { PPConfigManager::getInstance()->get($searchKey); } /** * Generates a unique per request id that * can be used to set the PayPal-Request-Id header * that is used for idempotency * * @return string */ private function generateRequestId() { static $pid = -1; static $addr = -1; if ($pid == -1) { $pid = getmypid(); } if ($addr == -1) { if (array_key_exists('SERVER_ADDR', $_SERVER)) { $addr = ip2long($_SERVER['SERVER_ADDR']); } else { $addr = php_uname('n'); } } return $addr . $pid . $_SERVER['REQUEST_TIME'] . mt_rand(0, 0xffff); } }