Example #1
1
File: Api.php Project: payum/payum
 /**
  * @param array $fields
  *
  * @return string
  */
 public function notifyValidate(array $fields)
 {
     $fields['cmd'] = self::CMD_NOTIFY_VALIDATE;
     $headers = array('Content-Type' => 'application/x-www-form-urlencoded');
     $request = $this->messageFactory->createRequest('POST', $this->getIpnEndpoint(), $headers, http_build_query($fields));
     $response = $this->client->send($request);
     if (false == ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300)) {
         throw HttpException::factory($request, $response);
     }
     $result = $response->getBody()->getContents();
     return self::NOTIFY_VERIFIED === $result ? self::NOTIFY_VERIFIED : self::NOTIFY_INVALID;
 }
Example #2
1
File: Api.php Project: payum/payum
 /**
  * @param array $fields
  *
  * @throws HttpException
  *
  * @return array
  */
 protected function doRequest(array $fields)
 {
     $headers = array('Content-Type' => 'application/x-www-form-urlencoded');
     $request = $this->messageFactory->createRequest('POST', $this->getApiEndpoint(), $headers, http_build_query($fields));
     $response = $this->client->send($request);
     if (false == ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300)) {
         throw HttpException::factory($request, $response);
     }
     $result = [];
     parse_str($response->getBody()->getContents(), $result);
     foreach ($result as &$value) {
         $value = urldecode($value);
     }
     return $result;
 }
Example #3
0
 /**
  * @param array $fields
  *
  * @return array
  */
 protected function doRequest($method, array $fields)
 {
     $headers = [];
     $request = $this->messageFactory->createRequest($method, $this->getApiEndpoint(), $headers, http_build_query($fields));
     $response = $this->client->send($request);
     if (false == ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300)) {
         throw HttpException::factory($request, $response);
     }
     return $response;
 }
Example #4
0
 /**
  * Perform HTTP request to REST endpoint
  *
  * @param string $action
  * @param array  $params
  * @param string $method
  * @return array
  */
 public function requestApi($action = '', $params = array(), $method = 'POST')
 {
     $headers = [];
     $request = new Request($method, $this->getApiEndpoint($action), $headers, http_build_query($params));
     $options = ['Authorization' => $this->getPrivateKey() . ':'];
     $response = $this->client->send($request, $options);
     $content = $response->getBody();
     $type = $response->getHeaderLine('Content-Type');
     if (false == ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300)) {
         $content = ['error' => $response->getReasonPhrase()];
     }
     if ('application/json' === $type) {
         $content = json_decode($content, true);
     } elseif (false !== strpos(strtolower($type), 'text/csv') && !isset($content['error'])) {
         return $content;
     }
     return ['header' => ['status' => $response->getStatusCode(), 'reason' => $response->getReasonPhrase()], 'body' => $content];
 }
Example #5
0
 /**
  * @param array  $fields
  *
  * @return \Psr\Http\Message\ResponseInterface
  * @throws \Payum\Core\Exception\Http\HttpException
  */
 protected function doRequest(array $fields)
 {
     $headers = ['Content-Type' => 'application/x-www-form-urlencoded'];
     $request = new Request('POST', $this->getApiEndpoint(), $headers, http_build_query($fields));
     $response = $this->client->send($request);
     if (false == ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300)) {
         throw HttpException::factory($request, $response);
     }
     // Check response
     $result = $response->getBody()->getContents();
     return $result;
 }
Example #6
0
 /**
  * @param array $fields
  *
  * @return array
  */
 protected function doRequest(array $fields)
 {
     $headers = array('Content-Type' => 'application/x-www-form-urlencoded');
     $request = new Request('POST', $this->getApiEndpoint(), $headers, http_build_query($fields));
     $response = $this->client->send($request);
     if (false == ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300)) {
         throw HttpException::factory($request, $response);
     }
     $result = json_decode($response->getBody()->getContents());
     if (null === $result) {
         throw new LogicException("Response content is not valid json: \n\n{$response->getBody()->getContents()}");
     }
     return $result;
 }