예제 #1
0
 private function doRealRequest($url, array $options)
 {
     $request = new FormRequest(Request::METHOD_POST);
     $request->fromUrl($url);
     $request->setFields($options);
     $response = new Response();
     $client = new FileGetContents();
     $client->send($request, $response);
     return $response->getContent();
 }
예제 #2
0
 /**
  * @param $method
  * @param null $params
  * @param $route
  * @param null $headers
  * @return mixed
  */
 private function makeRequest($method, $params = null, $route, $headers = null)
 {
     $request = new FormRequest($method, $route, $this->apiSettings['api_endpoint']);
     if ($params) {
         $request->setFields($params);
     }
     if ($headers) {
         $request->setHeaders($headers);
     }
     return $this->sendRequest($request);
 }
예제 #3
0
 /**
  * Fetch from the API
  * @param string $endpoint Fetch from the endpoint
  * @param array $params Any parameters
  * @return \stdClass|\stdClass[]
  */
 public static function fetch($endpoint, array $params = [])
 {
     $client = self::getClient();
     $browser = new Browser($client);
     $method = Request::METHOD_GET;
     foreach (self::$postEndpoints as $check) {
         if (preg_match("/^{$check}\$/", $endpoint)) {
             $method = Request::METHOD_POST;
         }
     }
     $request = new FormRequest($method, $endpoint, self::BASE_URL);
     $request->setFields($params);
     $response = new Response();
     $listener = new JsonListener();
     $browser->addListener($listener);
     $response = $browser->send($request, $response);
     return $response->getContent();
 }
예제 #4
0
 public function doSendRequest(array $options)
 {
     $request = new FormRequest(Request::METHOD_POST);
     $request->fromUrl(static::HTTP_AccessPoint_Send);
     $request->setFields(array('json' => json_encode($options)));
     $response = new Response();
     $client = new FileGetContents();
     $client->send($request, $response);
     $json = $response->getContent();
     $status = json_decode($json, true);
     if (!isset($status[static::Error_Code])) {
         throw new InvalidResponseException('JSON response does not contain response code');
     }
     $normalized_status = $status;
     $normalized_status[self::NORMALIZED_MESSAGE] = $status[self::Error_Message];
     $normalized_status[self::NORMALIZED_CODE] = $status[self::Error_Code];
     return $normalized_status;
 }
예제 #5
0
 /**
  * Require: AMT, PAYMENTACTION, REFERENCEID
  *
  * @param array $fields
  *
  * @return array
  */
 public function doReferenceTransaction(array $fields)
 {
     $request = new FormRequest();
     $request->setFields($fields);
     $request->setField('METHOD', 'DoReferenceTransaction');
     $this->addVersionField($request);
     $this->addAuthorizeFields($request);
     return $this->doRequest($request);
 }
 public function testSetFields()
 {
     $request = new FormRequest();
     $request->setFields(array('foo' => 'bar'));
     $this->assertEquals(array('foo' => 'bar'), $request->getFields());
 }
예제 #7
0
 /**
  * @param User $user
  */
 private function refreshToken($user)
 {
     $req = new FormRequest(Request::METHOD_POST, "/" . $this->tenant . "/oauth2/token", "https://login.windows.net");
     $req->setFields(array("client_id" => $this->clientId, "client_secret" => $this->clientSecret, "grant_type" => "refresh_token", "refresh_token" => $user->getAzureRenewAccessToken(), "resource" => "https://graph.windows.net"));
     $res = new Response();
     $client = new Curl();
     $client->setTimeout(20000);
     $client->send($req, $res);
     if ($res->getStatusCode() == 200) {
         $data = json_decode($res->getContent());
         $user->setAzureAccessToken($data->access_token);
         $user->setAzureRenewAccessToken($data->refresh_token);
         $this->users->updateUser($user);
         $this->accessToken = $data->access_token;
     } else {
         $this->token->getToken()->setAuthenticated(false);
         throw new AccountExpiredException("Link with Office 365 has expired");
     }
 }
예제 #8
0
    /**
     * @param array $fields
     *
     * @return array
     */
    public function doCredit(array $fields)
    {
        $request = new FormRequest();
        $request->setFields($fields);
        $request->setField('TRXTYPE', self::TRXTYPE_CREDIT);

        $this->addOptions($request);

        $result = $this->doRequest($request);
        $result['TRXTYPE'] = self::TRXTYPE_CREDIT;

        return $result;
    }
예제 #9
0
 /**
  * Require: token
  *
  * @param array $fields
  *
  * @return array
  */
 protected function doFunction_getTransactionDetails(array $fields)
 {
     if (!isset($fields['token'])) {
         throw new RuntimeException('The token must be set.');
     }
     $request = new FormRequest();
     $request->setFields($fields);
     $request->setField('function', 'GetTransactionDetail');
     $this->addVersionField($request);
     $this->addAuthorizeFields($request);
     return $this->doRequest($request);
 }