Ethereum 使用coinbase API购买ETH

Ethereum 使用coinbase API购买ETH,ethereum,coinbase-api,Ethereum,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

根据文档,我应该能够使用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
  }
}
{
“数据”:{
“id”:,
“状态”:“已创建”,
“付款方式”:{
“id”:,
“资源”:“付款方式”,
“资源路径”:
},
“交易”:空,
“用户参考”:,
“创建时间”:“2018-01-18T01:37:15Z”,
“更新时间”:“2018-01-18T01:37:16Z”,
“资源”:“购买”,
“资源路径”:,
“费用”:{
“金额”:“0.99”,
“货币”:“美元”
},
“金额”:{
“金额”:“0.00008968”,
“货币”:“BTC”
},
“总数”:{
“金额”:“2.02”,
“货币”:“美元”
},
“小计”:{
“金额”:“1.03”,
“货币”:“美元”
},
“承诺”:真的,
“付款时间”:“2018-01-18T01:37:14Z”,
“瞬间”:真的,
“需要完成步骤”:false
}
}
在网站上,我看到我现在有一些BTC(大约1美元的价值),但不是ETH


我是否需要使用缺少/未记录的参数?或者我的请求中有错误?

因此,Coinbase API似乎没有真正考虑
currency
字段(即使他们的API文档提到了这一点并解释了它的作用)

发生的情况是,您的交易将使用与作为Oauth过程一部分的用户授权的帐户相关联的任何货币进行。默认选择BTC;用户必须单击该下拉列表并选择其他内容

因此,“修复”是确保用户选择正确的帐户


真正的解决方法是Coinbase修复其API,并在您选择的货币未经授权时返回错误(而不是忽略该字段并在不告诉任何人的情况下使用授权货币)。

您是否尝试过
params.put(“金额”,“0.001 ETH”)?@AdamKipnis是个好主意,但不起作用:(