php - PHP 中的模拟 [echo "symbol=LTC%2FBTC&side=BUY"| openssl dgst -sha256 -hmac "SECRETKEY"]

标签 php openssl hmac hmacsha256

我在 Currensy-Rest-api 中编写发送 webhook 的代码:
https://currency.com/ru/general-rest-api-information

为此,我需要形成签名 HMAC sha256,以我拥有的货币为例

[echo "symbol=LTC%2FBTC&side=BUY" | openssl dgst -sha256 -hmac "SECRETKEY"]

我可以使用:

$signature = hash_hmac('sha256', $raw, $signkey);

像模拟
我真的尝试过,但 API 给了我答案:{"code":-1025,"msg":"无效的 API key 、IP 或操作权限"} ):

最佳答案

正如文档所说:所有查询字符串都必须签名。请注意 urlencode 的需要。 此 PHP 示例给出与文档相同的结果:

<?php
$raw = "symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559";
$signkey = "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j";
$signature = hash_hmac('sha256', $raw, $signkey, false);
echo $signature; //ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50

关于php - PHP 中的模拟 [echo "symbol=LTC%2FBTC&side=BUY"| openssl dgst -sha256 -hmac "SECRETKEY"],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73937098/

相关文章:

c++ - OpenSSL SSL_read 故障

使用 1===1 但在 1===0 时不出现 PHP 语法错误

php - 在我的网站中显示 mysql 字段时,如何删除 # 分隔符

javascript - 当你转义数字时会发生什么?

javascript - 如何获得 Wistia 视频 facebook 点赞数

java - Java SecretKeySpec 的 C# 等价物是什么

c++ - 我如何从 Boost.ASIO 获得 SSL*?

ssl - 如何将 OpenSSL 与 WinSock 一起使用?

asp-classic - 经典 ASP VBScript 中的 HMAC 算法 (SHA256)

java - 如何使用 PEM 私钥通过 HMAC 对 PHP 中的数据进行签名