请问我按照文档走下来总是鉴权错误,不知道错在哪里,还请大家帮我看看,谢谢
<?php
define("WAY", "TextTranslate");
define("PLACE", "gz");
define("URL", "https://tmt.api.qcloud.com/v2/index.php");
define("SEC_ID", "XX");
define("SEC_KEY", "XX");
//翻译入口
function translate($sourceText, $source, $target)
{
$tm=time();
$nc=rand(10000,99999);
$args = array(
'Action'=>WAY,
'Nonce'=>$nc,
'Region'=>PLACE,
'SecretId'=>SEC_ID,
'Timestamp'=>$tm,
'sourceText' => $sourceText,
'source' => $source,
'target' => $target
);
$args['Signature'] = buildSign($tm,$nc);
$url=URL.'?';
foreach ($args as $key=>$value)
{
$url.=$key.'='.urlencode($value).'&';
}
$url=substr($url,0,strlen($url)-1);
$ret = doCurlGetRequest($url);
$ret = json_decode($ret, true);
echo var_dump($ret);
}
//生成签名串
function buildSign($time,$nonce)
{
$pars = array(
'Action'=>WAY,
'SecretId'=>SEC_ID,
'Timestamp'=>$time,
'Nonce'=>$nonce,
'Region'=>PLACE
);
ksort($pars);
$reqStr='';
foreach ($pars as $key => $value)
{
$reqStr.=$key.'='.$value.'&';
}
$reqStr = substr($reqStr,0,strlen($reqStr)-1);
$srcStr ='GETtmt.api.qcloud.com/v2/index.php?'.$reqStr;
$signStr = base64_encode(hash_hmac('sha1', $srcStr, SEC_KEY, true));
return $signStr;
}
相似问题