Я пытаюсь сгенерировать HMAC SHA1 Hash, чтобы использовать Железнодорожный PNR API.
я использую PHP Framework Codeigniter. Я использовал данный помощник Вот.
Затем я попытался сгенерировать хеш и сравнить его с Хеш-генератор дано в Rail PNR API сайт.
Но и хеш, то есть тот, который я сгенерировал, и тот, который я получаю из Rail PNR API сайт не то же самое.
Затем я попытался использовать онлайн-инструменты для генерации значения хеша для того же. Но все же генерируемый хеш не совпадает с тем, который исходит от сайта API.
Мои три данных следующие:
<My Public Api Key>
Таким образом, данные, которые должны быть хешированы: 1234567890json<My Public Api Key>
с использованием <My Private Api Key>
Я не знаю, если метод генерирования хэша неправильный или я делаю это неправильно. Я в значительной степени следовал за каждым шагом, который заявлен там правильно.
Я в порядке, если решение доступно в Javascript, но PHP является более предпочтительным.
РЕДАКТИРОВАТЬ:
Я даже прочитал следующее, но они не могли помочь:
— Попытка цифровой подписи через HMAC-SHA1 с PHP
— Дайджест OpenSSL HMAC-SHA1 не соответствует Crypto
Пожалуйста, помогите мне здесь …
Благодарю.
Значения, которые должны быть переданы в API, должны быть в алфавитном порядке. Как и в моем случае выше, если мы расположим ключи в алфавитном порядке ключи будет: формат, pbapisign (то есть открытый ключ) а также PNR.
Таким образом, строка для хеширования будет 'json'.'<My Public API Key>'.'1234567890'
,
Теперь для генерации хеша вы можете использовать любую функцию PHP. Я использую hash_hmac () функция для генерации хеша.
Теперь это работает для меня. Надеюсь, что это поможет любому, кто работает с Rail PNR API.
Благодарю.
Других решений пока нет …