Coinbase API - API 请求中的签名有问题

Coinbase API - Having trouble with the signature in API requests

我在使用 API 通过电子邮件地址将钱从一个设置的帐户发送到另一个帐户时遇到问题,以进行 off-chain 交易。可能有一个简单的解决方案,但尽管在这里阅读了其他问题,但我还没有找到任何对我有用的方法,基本上每当我发出 API 汇款请求时,它都会出现错误 401,表示签名无效。

按照 developers page 上的说明,我正在向 API 发出 POST 请求,并使用 API 密钥对请求进行身份验证。除了 HMAC sha256 签名外,一切似乎都在工作。

例如,假设我的 API 密钥是 abc123def456ghi0 而 API 密钥是 123qwertyuiopasdfghjklzxcvbnm456。大纪元时间是12345678,方法当然是POST,我要发送比特币的邮箱是me@example.com,金额是0.00000015BTC和wallet/account ID 是 2bbf394c-193b-5b2a-9155-3b4732659ede.

我向 https://api.coinbase.com/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/transactions 发出 POST 请求并将 body 设置为 type=send&to=me@example.com&amount=0.00000015&currency=BTC

这很好用,我遇到的问题是 header 中的 sha256 签名。我能够将 CB-ACCESS-KEY 设置为 abc123def456ghi0 并将 CB-ACCESS-TIMESTAMP 设置为 12345678,并且我能够轻松创建 sha256 签名并使用我的密钥对其进行签名,我只是我想我在

中输入了错误的文字

现在我有一些变量:
时间戳:12345678
方法:POST
requestPath:/v2/accounts/1dcea380-77e6-5fd4-8a5b-28c41be39a57/transactions
body: type=send&to=me@example.com&amount=0.00000015&currency=BTC

在开发者页面上说要在消息中加入时间戳、方法、请求路径和body。我正在这样做并使用我的密钥对其进行签名,但我仍然收到错误消息。我只是一个业余爱好者,所以没有太多经验,这是我收到的消息:12345678POST/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/transactionstype=send&to=me@example.com&amount=0.00000015&currency=BTC 然后我用我的密钥签名 123qwertyuiopasdfghjklzxcvbnm456

一定有一些简单的东西我遗漏了,我知道所有的变量都被正确地加入了所以也许我有一个 / 在不应该的地方或者我可能需要改变一些东西,我只知道有一个简单的解决方案,所以如果有人能提供帮助,我们将不胜感激。

抱歉 - 原来我的 HMAC sha256 编码器也在编码为 base64。我已经解决了这个问题,现在可以正常使用了。