Coinbase Pro post 下订单 php
Coinbase Pro post place order php
我正在尝试使用 php 通过 coinbase pro api 下订单。
只是从一开始就告诉你,当我使用 get 方法时,身份验证工作正常,所以那部分没问题。例如,我得到我的帐户、我的订单和所有相关的东西。
当我尝试使用 post(或其他 post 方法)下订单时出现问题,因为这是我尝试的第一个 post 方法。
所以这就是我正在尝试做的事情:
请注意,值仅供说明:
正在创建订单:
$_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;
}
如果 post 请求有问题,这里是签名:
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 方法?
另一个问题可能是一个了解 coinbase 费用的人。
我应该计算包含费用的大小,完成后 coibase 会收取费用,还是我应该只计算大小,让 coinbase 自己计算费用?
此致,
功能正常!在我发现我从 coinbase 收到的消息后,我发现我发送的大小不满足最小值!
我正在尝试使用 php 通过 coinbase pro api 下订单。 只是从一开始就告诉你,当我使用 get 方法时,身份验证工作正常,所以那部分没问题。例如,我得到我的帐户、我的订单和所有相关的东西。
当我尝试使用 post(或其他 post 方法)下订单时出现问题,因为这是我尝试的第一个 post 方法。
所以这就是我正在尝试做的事情:
请注意,值仅供说明:
正在创建订单:
$_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;
}
如果 post 请求有问题,这里是签名:
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 方法?
另一个问题可能是一个了解 coinbase 费用的人。 我应该计算包含费用的大小,完成后 coibase 会收取费用,还是我应该只计算大小,让 coinbase 自己计算费用?
此致,
功能正常!在我发现我从 coinbase 收到的消息后,我发现我发送的大小不满足最小值!