@martcarrefour/robokassa
Version:
Robokassa Node.JS integration (Note: Original repository is now actively maintained)
28 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.calculateReceivingSignatureValue = exports.buildExpectedReceivingSignatureString = void 0;
const calculateHash_1 = require("./calculateHash");
const buildExpectedReceivingSignatureString = ({ password2, response, }) => {
const userParameters = Object.entries(response).filter(([key]) => key?.toLowerCase().startsWith('shp_'));
const signatureUserParams = userParameters.map(([key, value]) => `${key}=${value?.toString() ?? ''}`) ??
[];
// Порядок параметров важен, сортируем по алфавиту
signatureUserParams.sort((a, b) => a.localeCompare(b));
const signatureValues = [
response.OutSum,
response.InvId,
password2,
...signatureUserParams,
].filter((value) => value !== undefined);
return signatureValues.join(':');
};
exports.buildExpectedReceivingSignatureString = buildExpectedReceivingSignatureString;
const calculateReceivingSignatureValue = ({ hashAlgorithm, password2, response, }) => {
const expectedString = (0, exports.buildExpectedReceivingSignatureString)({
password2,
response,
});
return (0, calculateHash_1.calculateHash)(hashAlgorithm, expectedString);
};
exports.calculateReceivingSignatureValue = calculateReceivingSignatureValue;
//# sourceMappingURL=calculateReceivingSignatureValue.js.map