OpenSSL::HMAC.hexdigest
в Ruby выводит шестнадцатеричную строку, и это то, что вы кодируете с помощью base64.В вашем PHP-коде параметр true
для hash_hmac
позволяет выводить необработанные двоичные данные.Без этого это был бы шестнадцатеричный код, который, я думаю, привел бы к тому же, что и Ruby.
Так что вам нужно либо удалить параметр true
в коде PHP, чтобы закодировать шестнадцатеричное представление вPHP или используйте OpenSSL::HMAC.digest
в Ruby для кодирования необработанных двоичных данных в Ruby.
Также у вас есть ключ trim()
в PHP, но нет .strip
в Ruby, но я неНе думаю, что это проблема.