コード例 #1
0
ファイル: RpcAcsRequest.php プロジェクト: wenpeng/aliyun-core
 /**
  * @param iSigner    $iSigner
  * @param Credential $credential
  * @param            $domain
  *
  * @return string
  */
 public function composeUrl($iSigner, $credential, $domain)
 {
     $apiParams = parent::getQueryParameters();
     $apiParams["RegionId"] = $this->getRegionId();
     $apiParams["AccessKeyId"] = $credential->getAccessKeyId();
     $apiParams["Format"] = $this->getAcceptFormat();
     $apiParams["SignatureMethod"] = $iSigner->getSignatureMethod();
     $apiParams["SignatureVersion"] = $iSigner->getSignatureVersion();
     $apiParams["SignatureNonce"] = uniqid();
     date_default_timezone_set("GMT");
     $apiParams["Timestamp"] = date($this->dateTimeFormat);
     $apiParams["Action"] = $this->getActionName();
     $apiParams["Version"] = $this->getVersion();
     $apiParams["Signature"] = $this->computeSignature($apiParams, $credential->getAccessSecret(), $iSigner);
     $requestUrl = $this->getProtocol() . "://" . $domain . "/?";
     foreach ($apiParams as $apiParamKey => $apiParamValue) {
         $requestUrl .= "{$apiParamKey}=" . urlencode($apiParamValue) . "&";
     }
     return substr($requestUrl, 0, -1);
 }