![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/Corals/modules/Payment/PayPal/Message/ |
<?php /** * PayPal REST Authorize Response */ namespace Corals\Modules\Payment\PayPal\Message; use Corals\Modules\Payment\Common\Message\RedirectResponseInterface; /** * PayPal REST Authorize Response */ class RestAuthorizeResponse extends RestResponse implements RedirectResponseInterface { public function isSuccessful() { return empty($this->data['error']) && $this->getCode() == 201; } public function isRedirect() { return $this->getRedirectUrl() !== null; } public function getRedirectUrl() { if (isset($this->data['links']) && is_array($this->data['links'])) { foreach ($this->data['links'] as $key => $value) { if ($value['rel'] == 'approval_url') { return $value['href']; } } } return null; } /** * Get the URL to complete (execute) the purchase or agreement. * * The URL is embedded in the links section of the purchase or create * subscription request response. * * @return string */ public function getCompleteUrl() { if (isset($this->data['links']) && is_array($this->data['links'])) { foreach ($this->data['links'] as $key => $value) { if ($value['rel'] == 'execute') { return $value['href']; } } } return null; } public function getTransactionReference() { // The transaction reference for a paypal purchase request or for a // paypal create subscription request ends up in the execute URL // in the links section of the response. $completeUrl = $this->getCompleteUrl(); if (empty($completeUrl)) { return parent::getTransactionReference(); } $urlParts = explode('/', $completeUrl); // The last element of the URL should be "execute" $execute = end($urlParts); if (!in_array($execute, array('execute', 'agreement-execute'))) { return parent::getTransactionReference(); } // The penultimate element should be the transaction reference return prev($urlParts); } /** * Get the required redirect method (either GET or POST). * * @return string */ public function getRedirectMethod() { return 'GET'; } /** * Gets the redirect form data array, if the redirect method is POST. * * @return null */ public function getRedirectData() { return null; } }