PHP中Iconomi API中的身份验证
我正在开发一个PHP脚本来使用Iconomi API,但是我在身份验证方面遇到了问题 根据,您必须创建签名并将其附加到标题中。但是,curl_exec函数返回false,这意味着它失败了 以下是说明: 创建请求 所有REST请求必须包含以下标头:PHP中Iconomi API中的身份验证,php,curl,php-curl,Php,Curl,Php Curl,我正在开发一个PHP脚本来使用Iconomi API,但是我在身份验证方面遇到了问题 根据,您必须创建签名并将其附加到标题中。但是,curl_exec函数返回false,这意味着它失败了 以下是说明: 创建请求 所有REST请求必须包含以下标头: ICN-API-KEY—API密钥作为字符串 ICN-SIGN—base64编码签名(请参阅为消息签名) ICN-TIMESTAMP—请求的时间戳(以毫秒为单位) 在邮件上签名 通过使用>预灰化字符串时间戳+方法+请求路径+正文(其中+表示字符串串
- ICN-API-KEY—API密钥作为字符串
- ICN-SIGN—base64编码签名(请参阅为消息签名)
- ICN-TIMESTAMP—请求的时间戳(以毫秒为单位)
- 时间戳值与ICN-timestamp头相同
- 正文是请求正文字符串,如果没有请求正文(通常用于GET请求),则省略
- 方法必须始终为大写
function call_iconomi_api()
{
$url = 'https://api.iconomi.com';
$api_key = get_field('iconomi_api_key', 'option');
$api_secret = get_field('iconomi_api_secret', 'option');
$timestamp = round(microtime(true) * 1000);
$request_path = '/v1/assets';
$message = $timestamp . 'GET' . $request_path;
$signature = base64_encode(hash_hmac('sha512', $message, $api_secret));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url . $request_path);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'ICN-API-KEY: ' . $api_key,
'ICN-SIGN: ' . $signature,
'ICN-TIMESTAMP: ' . $timestamp
));
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
您是否验证了那些
get\u field
调用返回了您最初期望的正确值?您是否在这些地方使用了静态值进行测试?密码是否已被base64解码?@CBroe,是的,$api_key和$api_secret变量以字符串形式返回正确的值(例如:1920258c97f89e708db1a442389f5359e3ac919a6c6893d10ad1387275bbcae0)