簡體   English   中英

使用coinbase API購買ETH

[英]Buying ETH using coinbase API

根據文檔,我應該能夠使用coinbase API購買ETH(參見購買訂單 )。

現在,看起來我正在獲得BTC。

private static void placeNonCommitBuy(String paymentMethod) {
    if (sAccountID != null) {
        String url = String.format("https://api.coinbase.com/v2/accounts/%s/buys", sAccountID);

        try {
            JSONObject params = new JSONObject();
            params.put("amount", "0.001");
            params.put("currency", "ETH");
            params.put("payment_method", paymentMethod);
            params.put("agree_btc_amount_varies", true);
            params.put("commit", false);
            params.put("quote", true);

            doPost(url, params, sJustPrint);
        } catch (JSONException ex) {
            Assert.fail();
        }
    }
}

我得到了確認:

{
  "data": {
    "id": <...snip...>,
    "status": "created",
    "payment_method": {
      "id": <...snip...>,
      "resource": "payment_method",
      "resource_path": <...snip...>
    },
    "transaction": null,
    "user_reference": <...snip...>,
    "created_at": "2018-01-18T01:37:15Z",
    "updated_at": "2018-01-18T01:37:16Z",
    "resource": "buy",
    "resource_path": <...snip...>,
    "fee": {
      "amount": "0.99",
      "currency": "USD"
    },
    "amount": {
      "amount": "0.00008968",
      "currency": "BTC"
    },
    "total": {
      "amount": "2.02",
      "currency": "USD"
    },
    "subtotal": {
      "amount": "1.03",
      "currency": "USD"
    },
    "committed": true,
    "payout_at": "2018-01-18T01:37:14Z",
    "instant": true,
    "requires_completion_step": false
  }
}

在網站上,我看到我現在有一些BTC(價值約1美元),但不是ETH。

我需要使用缺失/無證的params嗎? 或者我的請求中有錯誤?

因此,看起來Coinbase API實際上沒有考慮currency字段(即使他們的API文檔提到並解釋它的作用)。

發生的事情是,您的交易將使用與用戶授權的帳戶關聯的任何貨幣作為Oauth流程的一部分進行。 默認選擇BTC; 用戶必須單擊該下拉列表並選擇其他內容。

所以“修復”是為了確保用戶選擇正確的帳戶。

真正的解決方案是,如果您選擇的貨幣未經授權,Coinbase會修復其API並返回錯誤(而不是忽略該字段並使用授權貨幣而不告訴任何人)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM