@des1re7/medusa-payment-tbank
Version:
T-Bank Payment Provider for Medusa Commerce
42 lines (32 loc) • 1.23 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = GenerateToken;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
/**
* Generate a token for Tinkoff requests.
*/
function GenerateToken(data, password) {
var crypto = require("crypto");
var keyValuePairs = [];
for (var key in data) {
if (data.hasOwnProperty(key) && (0, _typeof2["default"])(data[key]) !== 'object' && key.toLowerCase() !== "token") {
keyValuePairs.push((0, _defineProperty2["default"])({}, key, data[key]));
}
}
keyValuePairs.push({
Password: password
});
keyValuePairs.sort(function (a, b) {
return Object.keys(a)[0].localeCompare(Object.keys(b)[0]);
});
var concatenatedString = '';
for (var _i = 0, _keyValuePairs = keyValuePairs; _i < _keyValuePairs.length; _i++) {
var pair = _keyValuePairs[_i];
concatenatedString += Object.values(pair)[0];
}
return crypto.createHash("sha256").update(concatenatedString, 'utf8').digest("hex");
}