Coinbase API-签名无效



我试图使用Coinbase的API,但我得到了无效的签名。所以我可能真的签错了,或者我遗漏了什么。请帮帮我。

$API_KEY = "-------";
$API_SECRET = "------";   
$USER_ID = "------",
$timestamp = time();
$method = "POST";
$path = '/v2/accounts/'.$USER_ID.'/addresses';
$message = $timestamp . $method . $path ;
$signature = hash_hmac('SHA256', $message, $API_SECRET);
$version = '2017-11-11';
$headers = array(
'CB-ACCESS-SIGN: ' . $signature,
'CB-ACCESS-TIMESTAMP: ' . $timestamp,
'CB-ACCESS-KEY: ' . $API_KEY,
'CB-VERSION: ' . $version
); 
$body = array(
'name: New receive address'
); 
$api_url = "https://api.coinbase.com/v2/accounts/'.$USER_ID.'/addresses";
$curl = curl_init($api_url);
curl_setopt($curl,CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl,CURLOPT_POSTFIELDS, $body);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
if(!curl_exec($curl)){
die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
}
curl_close($curl);

结果api:

{"errors":[{"id":"authentication_error","message":"invalid signature"}]}

我目前正在做这件事,刚刚(在Elixir中(做对了。我认为有两个问题:

  • 请确保您的签名是小写的。医生没有提到这一点
  • 您正在发出POST请求,并且需要将主体参数连接为prehash中的字符串(在此上下文中为$message(以生成签名。在进行此IMHO之前,您应该在Wallet端点上通过一个简单的GET请求来尝试此操作

最新更新