Exemplo n.º 1
0
 protected function getPath(Request $request)
 {
     $path = $this->path . DIRECTORY_SEPARATOR . strtolower($request->getMethod()) . DIRECTORY_SEPARATOR . $request->getHost() . DIRECTORY_SEPARATOR;
     if ($request->getPath() !== '/') {
         $rpath = $request->getPath();
         $rpath = substr($rpath, 0, 1) === '/' ? substr($rpath, 1) : $rpath;
         $rpath = substr($rpath, -1, 1) === '/' ? substr($rpath, 0, -1) : $rpath;
         $path .= str_replace("/", "_", $rpath) . DIRECTORY_SEPARATOR;
     }
     return $path;
 }
Exemplo n.º 2
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;
 }
Exemplo n.º 3
0
 public function testSettingUrlOverridesHostHeaders()
 {
     $r = new Request('GET', 'http://test.com/test');
     $r->setUrl('https://baz.com/bar');
     $this->assertEquals('baz.com', $r->getHost());
     $this->assertEquals('baz.com', $r->getHeader('Host'));
     $this->assertEquals('/bar', $r->getPath());
     $this->assertEquals('https', $r->getScheme());
 }