在 PHP 中使用 CURL 调用 JSON RPC 2.0 API - Changelly API

Posted

技术标签:

【中文标题】在 PHP 中使用 CURL 调用 JSON RPC 2.0 API - Changelly API【英文标题】:JSON RPC 2.0 API Call using CURL in PHP - Changelly API 【发布时间】:2017-09-19 09:55:19 【问题描述】:

我正在尝试使用以下代码调用 changelly API,但它返回“未经授权”作为响应。

如果有人可以帮助识别我在下面的代码中所犯的错误。

$API_URL = 'https://api.changelly.com';
$API_KEY = 'XXXXX';
$API_SECRET = 'XXXXX';

$message = array();
$message['jsonrpc'] = '2.0';
$message['method'] = 'getMinAmount';
$message['params'] = array('from' => 'BTC', 'to' => 'LTC');
$message['id'] ='12345';
$data = json_encode($message);
$sign = hash_hmac('SHA512', $data, $API_SECRET);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $API_URL);
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_GET, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json",'Authorization:api-key: '.$API_KEY.':sign: '.$sign));

$final_result = curl_exec($ch); 
curl_close($ch);
echo '<pre>';
print_r($final_result);

Changelly API 指南位于https://changelly.com/developers

谢谢

【问题讨论】:

我认为您需要在 HTTPHEADER 中设置 'Content-type': 'application/json' 而不是“Accept: application/json”。不确定! @RamaKrishna 这也无济于事。这与 JSON RPC 2.0 有关,所以我怀疑它是否与符号变量有关 【参考方案1】:

在您的代码中,您的标题集错误。

请查看此示例:https://github.com/changelly/changelly-examples/blob/master/php/example.php,希望对您有所帮助。

【讨论】:

以上是关于在 PHP 中使用 CURL 调用 JSON RPC 2.0 API - Changelly API的主要内容,如果未能解决你的问题,请参考以下文章

如何用php调用外部接口json数据

我如何在 php 中通过 cURL 发布 JSON 对象

Curl 和 PHP - 如何通过 curl 通过 PUT、POST、GET 传递 json

Curl和PHP - 如何通过PUT,POST,GET将json传递给curl

PHP免费API调用,使用(CURL)

实现php Curl 调用不同项目中方法