Coinbase — php curl sendmoney — неверная ошибка подписи

Я пытаюсь использовать coinbase api для отправки и получения денег и собираюсь использовать его в игре, запустив приведенный ниже код для отправки денег ошибка неверной подписи, не уверен, где я не прав. Я попытался получить данные учетной записи, которая работает нормально, и я могу получить данные учетной записи.

<?php
$API_VERSION = '2016-02-01';
$curl = curl_init();
$timestamp = json_decode(file_get_contents("https://api.coinbase.com/v2/time"), true)["data"]["epoch"];

$req = "/v2/accounts/:account_id/transactions";
$url = "https://api.coinbase.com".$req;
$cle = "xxxxxxx";
$secret = "xxxxxxxx";
$params=['type'=>'send', 'to'=>'xxxxxxxxxx', 'amount'=>0.0001, 'currency'=>'BTC'];

curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_USERAGENT, 'local server',
CURLOPT_POSTFIELDS => json_encode($params),
CURLOPT_HTTPHEADER => array(
"CB-VERSION:" . $API_VERSION,
"CB-ACCESS-SIGN:" . hash_hmac('sha256', $timestamp."GET".$req, $secret),
"CB-ACCESS-KEY:" . $cle,
"CB-ACCESS-TIMESTAMP:" . $timestamp,
'Content-Type: application/json'
),
CURLOPT_SSL_VERIFYPEER => false
));

$rep = curl_exec($curl);
curl_close($curl);

print_r($rep);
?>

1

Решение

в $req URL, вам нужно заменить :account_id с действительным идентификатором счета, таким как 3c04e35e-8e5a-5ff1-9155-00675db4ac02,

Самое главное, поскольку это почтовый запрос, подпись OAuth должна включать в подпись полезную нагрузку (данные POST).

hash_hmac('sha256', $timestamp."POST".$req.json_encode($params), $secret),
0

Другие решения

Когда я столкнулся с этой ошибкой, она стала идентификатором счета, который отличается для каждого из ваших валютных счетов. Потратил слишком много времени, пытаясь выяснить, что не так с моей подписью … В любом случае, я бы определенно попробовал это, так как GET работал для меня, но каждый другой тип запроса заканчивался ошибкой неверной подписи.

0

По вопросам рекламы [email protected]