Я использовал для этой цели 3 пакета.
import AesJs from 'aes-js';
import { Buffer } from 'buffer';
import queryString, { stringify } from 'query-string';
и решил эту проблему
// Генерация байтового шифрования в режиме AES, ECB с easypaisa HashKey
Шаг 1
const aes = new AesJs.ModeOfOperation.ecb(AesJs.utils.utf8.toBytes(HASH_KEY));
вы можете сгенерировать ключ ha sh из учетной записи продавца.
Шаг 2
pkcs5Pad
function pkcs5Pad(text: string, blockSize: number): string {
const pad = blockSize - (text.length % blockSize);
return text + String.fromCharCode(pad).repeat(pad);
}
convertObjectToString
function convertObjectToString(obj: any): string {
let data = '';
Object.keys(obj)
.sort()
.forEach((key) => {
data += `${key}=${obj[key]}` + '&';
});
return data.slice(0, data.length - 1);
}
Шаг 3
// Генерация HashMapReq
const hasMapReq = Buffer.from(aes.encrypt(Buffer.from(
pkcs5Pad(convertObjectToString(requestBody), 16))))
.toString(
'base64',
);
добавьте свой hashReq в тело запроса и наслаждайтесь.