UNPKG

@des1re7/medusa-payment-tbank

Version:

T-Bank Payment Provider for Medusa Commerce

42 lines (32 loc) 1.23 kB
"use strict"; 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"); }