node-easywechat
Version:
EasyWechat SDK for Node.js (NOT OFFICIAL)
65 lines (64 loc) • 2.06 kB
JavaScript
const PrivateKey_1 = require("../Core/Support/PrivateKey");
const PublicKey_1 = require("../Core/Support/PublicKey");
class Merchant {
constructor(mchId, privateKey, certificate, secretKey, v2SecretKey = null, platformCerts = []) {
this.mchId = mchId;
this.secretKey = secretKey;
this.v2SecretKey = v2SecretKey;
this.platformCerts = {};
if (!(privateKey instanceof PrivateKey_1.PrivateKey)) {
this.privateKey = new PrivateKey_1.PrivateKey(privateKey);
}
else {
this.privateKey = privateKey;
}
if (!(certificate instanceof PublicKey_1.PublicKey)) {
this.certificate = new PublicKey_1.PublicKey(certificate);
}
else {
this.certificate = certificate;
}
this.platformCerts = this.normalizePlatformCerts(platformCerts);
}
/**
* 统一规范化平台证书
* @param platformCerts 平台证书列表
* @returns
*/
normalizePlatformCerts(platformCerts) {
let certs = {};
let isArray = Array.isArray(platformCerts);
for (let key in platformCerts) {
let publicKey = platformCerts[key];
if (typeof publicKey === 'string') {
publicKey = new PublicKey_1.PublicKey(publicKey);
}
if (!(publicKey instanceof PublicKey_1.PublicKey)) {
throw new Error('Invalid platform certficate.');
}
certs[isArray ? publicKey.getSerialNo() : key] = publicKey;
}
return certs;
}
getMerchantId() {
return this.mchId;
}
getPrivateKey() {
return this.privateKey;
}
getSecretKey() {
return this.secretKey;
}
getV2SecretKey() {
return this.v2SecretKey;
}
getCertificate() {
return this.certificate;
}
getPlatformCert(serial) {
var _a;
return (_a = this.platformCerts[serial]) !== null && _a !== void 0 ? _a : null;
}
}
module.exports = Merchant;
;