Пример #1
0
 public function signer(Request $request)
 {
     $query = $request->getQuery();
     $query->merge($this->defaults);
     $newQuery = $query->toArray();
     if (str_contains(strtolower($request->getPath()), 'orders')) {
         $newQuery['MarketplaceId.Id.1'] = $newQuery['MarketplaceId'];
         unset($newQuery['MarketplaceId']);
     }
     ksort($newQuery, SORT_NATURAL);
     $query->replace($newQuery);
     $canonicalizedString = implode("\n", [$request->getMethod(), $request->getHost(), $request->getPath(), (string) $request->getQuery()]);
     $signature = base64_encode(hash_hmac('sha256', $canonicalizedString, env('MWS_SECRET_KEY'), true));
     $request->getQuery()->set('Signature', $signature);
     return $request;
 }
Пример #2
0
 /**
  * @param Request $request
  * @param callable|null $next
  * @return mixed
  *
  * @throws InvalidArgumentException
  */
 public function __invoke(Request $request, callable $next = null)
 {
     if (!$this->checkModel($next)) {
         throw new InvalidArgumentException('Model ' . get_class($next) . ' is not right for this method');
     }
     $query = $request->getQuery();
     $query->add('function', $this->getUriFunction());
     return $next($request);
 }
Пример #3
0
 /**
  * @param Request $request
  * @return BaseResponse
  *
  * @throws RemoteCallException
  */
 public function __invoke(Request $request)
 {
     try {
         $query = $request->getQuery();
         $this->addParamsToUri($query);
         $client = new Client();
         return $this->getApiResponse($client->send($request));
     } catch (\Exception $e) {
         throw new RemoteCallException($e->getMessage());
     }
 }
 public function testKeepSignature()
 {
     $request = new Request('GET', '/endpoint?token=originalValue');
     $transaction = new Transaction(new Client(), $request);
     $event = new BeforeEvent($transaction);
     $subscriber = new UrlSignature();
     $subscriber->setSignatureGenerator(function () {
         return ['token' => 'tokenValue'];
     });
     $subscriber->onBefore($event);
     $this->assertEquals('originalValue', $request->getQuery()->get('token'));
 }
Пример #5
0
 /**
  * @param BaseMethod $method
  * @param BaseModel $model
  * @return BaseResponse
  * @throws InvalidArgumentException
  */
 public function makeRequest(BaseMethod $method, BaseModel $model)
 {
     try {
         $request = new Request('GET', $this->_apiUrl);
         $query = $request->getQuery();
         $query->set('user', $this->_username);
         $query->set('pass', $this->_password);
         $query->set('source', $this->_source);
         return $method($request, $model);
     } catch (\InvalidArgumentException $e) {
         throw new InvalidArgumentException($e->getMessage());
     }
 }
Пример #6
0
 public function testGETWithQueryString()
 {
     $request = new Request('GET', 'example.local?foo=bar');
     $curl = $this->curlFormatter->format($request);
     $this->assertEquals("curl 'http://example.local?foo=bar'", $curl);
     $request = new Request('GET', 'example.local');
     $request->getQuery()->set('foo', 'bar');
     $curl = $this->curlFormatter->format($request);
     $this->assertEquals("curl 'http://example.local?foo=bar'", $curl);
     //Guzzle internally uses PostBody, when data is added to GET request
     $body = new PostBody();
     $body->setField('foo', 'bar');
     $body->setField('hello', 'world');
     $request = new Request('GET', 'example.local', [], $body);
     $curl = $this->curlFormatter->format($request);
     $this->assertEquals("curl 'http://example.local' -G  -d 'foo=bar&hello=world'", $curl);
 }
Пример #7
0
 public function testQueryCanChange()
 {
     $r = new Request('GET', 'http://www.foo.com?baz=bar');
     $r->setQuery(new Query(['foo' => 'bar']));
     $this->assertEquals('foo=bar', $r->getQuery());
 }
 /**
  * @param Request $request
  */
 private function authenticateGetRequest(Request $request)
 {
     $request->getQuery()->add('key', $this->apiKey);
 }
 /**
  * @param Request $request
  */
 private function authenticateGetRequest(Request $request)
 {
     $request->addHeader('Accept', 'text/plain');
     $request->addHeader('X-Mashape-Key', 'WQPyWPhhhXmshABhby8Qv8XHOOajp1TNBbzjsnvVbtyHARmpw8');
     $request->getQuery()->add('app_key', $this->apiKey);
 }
 private function expectedSuccessfulAccessTokenRequest()
 {
     $request = new Request('GET', 'https://graph.facebook.com/v2.5/oauth/access_token');
     $query = $request->getQuery();
     $query->set('client_id', '1234');
     $query->set('redirect_uri', 'http://localhost/facebook/login');
     $query->set('client_secret', 'secret');
     $query->set('code', 'correct-code');
     return $request;
 }