在 PHP 中为铁路 PNR API 生成 HMAC SHA1

Generate HMAC SHA1 for Rail PNR API in PHP

我正在尝试生成 HMAC SHA1 哈希以使用 Railway PNR API.

I am using PHP Framework Codeigniter. I used the helper given here.

Then I tried to generate the hash and compare it with the Hash Generator 铁路 PNR API 网站.

但是哈希值,即我生成的哈希值和我从 Rail PNR API 站点 获得的哈希值都是不一样。

然后我尝试使用在线工具生成相同的哈希值。但是生成的哈希值仍然与来自 API 站点的哈希值不同。

我的三个数据如下:

所以需要散列的数据是:1234567890json<<b>My Public Api Key</b>> 使用 <<b> 我的私人 Api 密钥</b>>

不知道是生成hash的方法不对还是我做的不对。我几乎完全遵循了 there 正确说明的每个步骤。

如果解决方案在 javascript 中可用,我没问题,但更优选 PHP

编辑:

我什至阅读了以下内容,但他们无能为力:

-- Trying to digitally sign via HMAC-SHA1 with PHP

-- OpenSSL HMAC-SHA1 digest does not match Crypto's

请帮帮我...

谢谢。

要在 API 中传递的值应该按字母顺序排列。就像我上面的例子一样,如果我们按字母顺序排列键,keys 将是:format, pbapisign(即 public键)pnr.

所以要散列的字符串将是 <b>'json'.'<My Public API Key>'.'1234567890'</b>.

现在生成哈希,基本上你可以使用任何PHP函数。我使用 hash_hmac() 函数生成散列。

现在它对我有用。希望这对使用铁路 PNR API.

的任何人有所帮助

谢谢。