@martcarrefour/robokassa
Version:
Robokassa Node.JS integration (Note: Original repository is now actively maintained)
31 lines • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.calculateSendingSignatureValue = exports.buildSendingSignatureString = void 0;
const calculateHash_1 = require("./calculateHash");
const buildSendingSignatureString = ({ merchantLogin, password1, order, }) => {
const signatureUserParams = Object.entries(order.userParameters ?? {}).map(([key, value]) => `${key}=${value?.toString() ?? ''}`) ?? [];
// Порядок параметров важен, сортируем по алфавиту
signatureUserParams.sort((a, b) => a.localeCompare(b));
const signatureValues = [
merchantLogin,
order.outSum,
order.invId,
order.outSumCurrency,
order.userIp,
order.receipt ? JSON.stringify(order.receipt) : undefined,
password1,
...signatureUserParams,
];
return signatureValues.filter((value) => value !== undefined).join(':');
};
exports.buildSendingSignatureString = buildSendingSignatureString;
const calculateSendingSignatureValue = ({ hashAlgorithm, merchantLogin, password1, order, }) => {
const signatureString = (0, exports.buildSendingSignatureString)({
merchantLogin,
password1,
order,
});
return (0, calculateHash_1.calculateHash)(hashAlgorithm, signatureString);
};
exports.calculateSendingSignatureValue = calculateSendingSignatureValue;
//# sourceMappingURL=calculateSendingSignatureValue.js.map