我正在尝试使用php向coinbase pro api下订单。 从一开始就告诉您的是,当我使用get方法时,身份验证工作正常,因此这一部分很好。例如,我得到我的帐户我的订单以及所有相关的东西。
当我尝试使用邮寄(或其他邮寄方式)下订单时出现问题,因为这是我尝试的第一种邮寄方式。
这就是我想要做的:
请注意,这些值仅供参考:
创建订单:
$_eur = $_eur - ($_eur*$this->Eurfee); //Eur is i get the amount i have and subtract the fee of 0.15% for terms an purposes lets say i have 100
$_order = array(
'product_id' => 'LTC-EUR',
'side' => $side, //buy
'price' => $this->lowPrice, //112.2
'size' => $_eur / $this->lowPrice
);
现在发送请求;
$request = '/orders';
$this->__sendRequest($request, $_order, 'POST', true);
这是发送请求功能:
private function __sendRequest($request, $body='', $method='GET', $auth=false)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->endpoint.$request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (strcasecmp($method, 'POST') === 0)
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
}
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
if ($auth) {
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "CB-ACCESS-KEY: " . $this->key;
$headers[] = "CB-ACCESS-SIGN: " . $this->__signature($request, $body, $method);
$headers[] = "CB-ACCESS-TIMESTAMP: " . $this->timestamp;
$headers[] = "CB-ACCESS-PASSPHRASE: " . $this->passphrase;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
$output = curl_exec($ch);
$output = json_decode($output);
if(curl_getinfo($ch, CURLINFO_HTTP_CODE) !== 200) {
return $output;
}
curl_close($ch);
return $output;
}
如果邮寄请求可能有问题,请在此处签名:
private function __signature($request_path='', $body='', $method='GET') {
$body = is_array($body) ? json_encode($body) : $body;
$what = $this->timestamp.$method.$request_path.$body;
return base64_encode(hash_hmac("sha256", $what, base64_decode($this->secret), true));
}
当我发送请求时,输出为 null ,当然不会下订单。有人可以帮我吗。我认为我可能在使用post方法时在做错事了。
还有一个问题可能是了解币库费用。 我应该计算包含费用的大小,完成后coibase还是会收取费用,还是我应该自己计算大小并让coinbase自行计算费用?
此致
答案 0 :(得分:0)
该功能正常工作!我发现从硬币库中收到的消息后,我发送的大小数量不满足最小值!