Пример #1
0
 /**
  * @param Url $uri
  * @param array $params
  * @param string $method
  *
  * @return string
  */
 public function getSignature(Url $uri, array $params, $method = 'POST')
 {
     parse_str($uri->getQuery(), $queryStringData);
     foreach (array_merge($queryStringData, $params) as $key => $value) {
         $signatureData[rawurlencode($key)] = rawurlencode($value);
     }
     ksort($signatureData);
     // determine base uri
     $baseUri = $uri->getScheme() . '://' . $uri->getAuthority();
     if ('/' === $uri->getPath()->getUriComponent()) {
         $baseUri .= '/';
     } else {
         $baseUri .= $uri->getPath()->getUriComponent();
     }
     $baseString = strtoupper($method) . '&';
     $baseString .= rawurlencode($baseUri) . '&';
     $baseString .= rawurlencode($this->buildSignatureDataString($signatureData));
     return base64_encode($this->hash($baseString));
 }
Пример #2
0
 /**
  * Replaces "/{apiVersion}" to configured proper api version, or remove version from URI if it's have not configured
  *
  * @param Url $uri
  *
  * @return Url
  */
 protected function injectApiVersionToUri(Url $uri)
 {
     $uri->setPath(str_replace('/{apiVersion}', $this->getApiVersionString(), '/' . urldecode($uri->getPath())));
     return $uri;
 }