![]() 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 Token Request */ namespace Corals\Modules\Payment\PayPal\Message; /** * PayPal REST Token Request * * With each API call, you’ll need to set request headers, including * an OAuth 2.0 access token. Get an access token by using the OAuth * 2.0 client_credentials token grant type with your clientId:secret * as your Basic Auth credentials. * * @link https://developer.paypal.com/docs/integration/direct/make-your-first-call/ * @link https://developer.paypal.com/docs/api/#authentication--headers */ class RestTokenRequest extends AbstractRestRequest { public function getData() { return array('grant_type' => 'client_credentials'); } protected function getEndpoint() { return parent::getEndpoint() . '/oauth2/token'; } /** * @param mixed $data * @return \Corals\Modules\Payment\Common\Message\ResponseInterface|RestResponse * @throws \Psr\Http\Client\Exception\NetworkException * @throws \Psr\Http\Client\Exception\RequestException */ public function sendData($data) { $body = $data ? http_build_query($data, '', '&') : null; $httpResponse = $this->httpClient->request( $this->getHttpMethod(), $this->getEndpoint(), array( 'Accept' => 'application/json', 'Authorization' => 'Basic ' . base64_encode("{$this->getClientId()}:{$this->getSecret()}"), ), $body ); // Empty response body should be parsed also as and empty array $body = (string)$httpResponse->getBody()->getContents(); $jsonToArrayResponse = !empty($body) ? json_decode($body, true) : array(); return $this->response = new RestResponse($this, $jsonToArrayResponse, $httpResponse->getStatusCode()); } }