【问题标题】:Bitmex API (PHP), cancel one order doesn't workBitmex API (PHP),取消一个订单不起作用
【发布时间】:2018-10-02 12:35:46
【问题描述】:

我正在使用 PHP。当我尝试通过 API 取消一个有效订单时出现错误:

"error" => array:2 [▼
   "message" => "orderIDs or clOrdIDs must be sent."
   "name" => "ValidationError"
]

我把 orderID 作为数组(这是我的 lib 方法):

public function cancelOrder($orderID) {
   $symbol = self::SYMBOL;
   $data['method'] = "DELETE";
   $data['function'] = "order";
   $data['params'] = array(
      "orderID" => $orderID, // ['r5ff364da-4243-8ee3-7853-6fb0f9f7e44d']
   );
   return $this->authQuery($data);
}

我做错了什么? https://www.bitmex.com/api/explorer/#!/Order/Order_cancel

类似问题:bitmex api php, cancel 1 order not working

【问题讨论】:

  • 我的意思是我从未使用过 API,但它说 orderIDs 或 clOrdIDs must be sent,而你没有发送它们中的任何一个 - 你的代码只是发送 orderID单数。
  • orderIDs -->或
  • 对,你发送的是orderID,这两个都不是
  • Hm.. API 文档说:必须提供 orderID 或 clOrdID。我可以发送 1 个 id 或 id 数组。我发送了 1 个 id,有什么问题?)我看不懂

标签: php api bitmex


【解决方案1】:

聚会迟到了,但我想我会回答,因为我终于弄明白了,并想象它对尝试将 Bitmex API 与 PHP 一起使用的其他人很有用(特别是如果您使用的是 bitmex-api-php 包装器) kstka 的 github)。

首先,将订单id号放入一个数组中,哪怕只有一个:

public function cancelOrder($orderId) {
    $orderArr = array($orderId);
    $symbol = self::SYMBOL;
    $data['method'] = "DELETE";
    $data['function'] = "order";
    $data['params'] = array(
      'orderID' => $orderArr,
    );
    return $this->authQuery($data);
}

然后你需要确保你的参数是 json 编码的,但仅限于 DELETE

if($method == "GET" || $method == "POST" || $method == "PUT") {
    $params = http_build_query($data['params']);
} elseif($method == "DELETE") {
    $params = json_encode($data['params']);
}

然后,最重要的是,您需要确保 CURL 标头是 json 编码的:

if($data['method'] == "DELETE") {
    curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, "DELETE");
    curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);
    $headers[] = 'X-HTTP-Method-Override: DELETE';
    $headers[] = 'Content-Type: application/json';
 }

你应该笑着离开。我花了很长时间才弄明白!

【讨论】:

  • 就是这样!我在标题中缺少 json 以进行删除。谢谢分享。
猜你喜欢
  • 2023-03-23
  • 2021-01-19
  • 1970-01-01
  • 2019-03-21
  • 2014-06-05
  • 1970-01-01
  • 2022-01-11
  • 2020-05-27
  • 1970-01-01
相关资源
最近更新 更多