typed-wx-api
Version:
Typed Wechat API
47 lines • 1.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WxJsCrypto = void 0;
const crypto_1 = __importDefault(require("crypto"));
/**
* @internal
*/
class WxJsCrypto {
static createNonceStr() {
return Math.random().toString(36).substr(2, 15);
}
static createTimestamp() {
return new Date().getTime() / 1000 + '';
}
/*
* 排序查询字符串
*/
static raw(args) {
let keys = Object.keys(args);
keys = keys.sort();
const newArgs = {};
keys.forEach(function (key) {
newArgs[key.toLowerCase()] = args[key];
});
let string = '';
for (let k in newArgs) {
string += '&' + k + '=' + newArgs[k];
}
return string.substr(1);
}
/*
* 签名算法
*
* @param {Object} ret 需要签名的对象,注:需要先排序好
*/
static sign(ret) {
const string = WxJsCrypto.raw(ret);
const shaSum = crypto_1.default.createHash('sha1');
shaSum.update(string);
return shaSum.digest('hex');
}
}
exports.WxJsCrypto = WxJsCrypto;
//# sourceMappingURL=crypto_js.js.map