Кто-нибудь заставил CryptoJS работать с Cybersource REST API v3 для создания отчетов для Signature? - PullRequest
0 голосов
/ 11 июня 2019

Невозможно сгенерировать правильный хэш HMAC 256 для заголовков Cybersource Signature

Я работал над этим пару дней, и я легко могу заставить его работать в .Net, используя предоставленный пример кода для генерацииправильная подпись HMAC.Однако я не могу заставить CryptoJS работать, я полагаю, это связано с тем фактом, что CryptoJS интерпретирует "\ n" как LRCF внутри и, таким образом, отключает шифрование.Обратите внимание, что я ограничен ECMA5 и ввел CryptoJS в качестве минимизированной функции.

var data = "host: api.cybersource.com \ ndate: Mon, 10 Jun 2019 20:41:05GMT \ n (цель-запроса): get / reports / v3 / report-downloads? OrganizationId = {OrgId} & reportDate = 2019-06-06 & reportName = PaymentBatchDetailReport \ nv-c-merchant-id: {MerchId} ";

var hash = CryptoJS.HmacSHA256 (data, "{SecretKey}");

var base64 = CryptoJS.enc.Base64.stringify (hash);

document.write (base64));

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 12 июня 2019

Убедитесь, что Base64 расшифровал ваш секретный ключ, прежде чем передавать его в CryptoJS.HmacSHA256.

Например var words = CryptoJS.enc.Base64.parse({SecretKey}); var hash = CryptoJS.HmacSHA256(data, words);

...