20261008
This commit is contained in:
+171
@@ -0,0 +1,171 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const CryptoJS = require("crypto-js");
|
||||
const request = require("request");
|
||||
var AuthorizationType;
|
||||
(function (AuthorizationType) {
|
||||
AuthorizationType[AuthorizationType["OPEN-FORM-PARAM"] = 0] = "OPEN-FORM-PARAM";
|
||||
AuthorizationType[AuthorizationType["OPEN-BODY-SIG"] = 1] = "OPEN-BODY-SIG";
|
||||
AuthorizationType[AuthorizationType["OPEN-ACCESS-TOKEN"] = 2] = "OPEN-ACCESS-TOKEN";
|
||||
})(AuthorizationType || (AuthorizationType = {}));
|
||||
/**
|
||||
* Open SDK for Node.JS
|
||||
*/
|
||||
class OpenSdk {
|
||||
/**
|
||||
* @class
|
||||
* @param {OpenSdkConfig} config 初始化 SDK 配置
|
||||
*/
|
||||
constructor(config) {
|
||||
if (!config.appId) {
|
||||
throw Error('config.appId is required');
|
||||
}
|
||||
if (!config.appKey) {
|
||||
throw Error('config.appKey is required');
|
||||
}
|
||||
this.config = config;
|
||||
}
|
||||
/**
|
||||
* 生成请求字符串
|
||||
* @param {QueryParams} params 请求参数
|
||||
* @return {string} 请求字符串
|
||||
*/
|
||||
generateSignature(params) {
|
||||
if (!AuthorizationType[params.authorization]) {
|
||||
params.authorization = AuthorizationType['OPEN-BODY-SIG'];
|
||||
}
|
||||
let content = JSON.stringify(params.content);
|
||||
if (params.authorization === AuthorizationType['OPEN-FORM-PARAM']) {
|
||||
let contentHash = CryptoJS.SHA256(content).toString();
|
||||
let signStr = this.config.appId + params.timestamp + params.nonce + contentHash;
|
||||
let signature = CryptoJS.HmacSHA256(signStr, this.config.appKey);
|
||||
let signatureStr = CryptoJS.enc.Base64.stringify(signature);
|
||||
let signatureEncode = encodeURIComponent(signatureStr);
|
||||
let str = `?authorization=${params.authorization}&appId=${this.config.appId}×tamp=${params.timestamp}&nonce=${params.nonce}&content=${content}&signature=${signatureEncode}`;
|
||||
return str;
|
||||
}
|
||||
if (params.authorization === AuthorizationType['OPEN-BODY-SIG']) {
|
||||
let contentHash = CryptoJS.SHA256(content).toString();
|
||||
let signStr = this.config.appId + params.timestamp + params.nonce + contentHash;
|
||||
let signature = CryptoJS.HmacSHA256(signStr, this.config.appKey);
|
||||
let signatureStr = CryptoJS.enc.Base64.stringify(signature);
|
||||
return signatureStr;
|
||||
}
|
||||
if (params.authorization === AuthorizationType['OPEN-ACCESS-TOKEN']) {
|
||||
let signStr = this.config.appId + params.timestamp + params.nonce + this.config.appKey;
|
||||
let signatureStr = CryptoJS.SHA256(signStr).toString();
|
||||
return signatureStr;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 发送请求
|
||||
* @param {QueryParams} params 请求参数
|
||||
* @return {Promise<OpenSdkCommonResult | string>} 请求执行结果
|
||||
*/
|
||||
exec(params) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (!params.queryUrl) {
|
||||
throw Error('params.queryUrl is required');
|
||||
}
|
||||
if (!params.nonce) {
|
||||
throw Error('params.nonce is required');
|
||||
}
|
||||
if (!params.timestamp) {
|
||||
throw Error('params.timestamp is required');
|
||||
}
|
||||
const str = this.generateSignature(params);
|
||||
const config = this.config;
|
||||
if (params.authorization === AuthorizationType['OPEN-FORM-PARAM']) {
|
||||
const Url = params.queryUrl + encodeURIComponent(str);
|
||||
return new Promise((resolve, reject) => {
|
||||
request(Url, (error, _response, body) => {
|
||||
if (!error) {
|
||||
if (typeof (body) === 'object') {
|
||||
resolve(JSON.parse(body));
|
||||
}
|
||||
else {
|
||||
resolve(body);
|
||||
}
|
||||
}
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
if (params.authorization === AuthorizationType['OPEN-BODY-SIG']) {
|
||||
const Url = params.queryUrl;
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: Url,
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Authorization": `OPEN-BODY-SIG AppId="${config.appId}", Timestamp="${params.timestamp}", Nonce="${params.nonce}", Signature="${str}"`,
|
||||
},
|
||||
body: JSON.stringify(params.content),
|
||||
}, (error, _response, body) => {
|
||||
if (!error) {
|
||||
if (typeof (body) === 'object') {
|
||||
resolve(JSON.parse(body));
|
||||
}
|
||||
else {
|
||||
resolve(body);
|
||||
}
|
||||
}
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
if (params.authorization === AuthorizationType['OPEN-ACCESS-TOKEN']) {
|
||||
const Url = params.queryUrl;
|
||||
const token = yield new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: 'https://test-api-open.chinaums.com/v1/token/access',
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
appId: config.appId,
|
||||
timestamp: params.timestamp,
|
||||
nonce: params.nonce,
|
||||
signMethod: 'SHA256',
|
||||
Signature: str
|
||||
})
|
||||
}, (error, _response, body) => {
|
||||
if (!error) {
|
||||
resolve(JSON.parse(body).accessToken);
|
||||
}
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: Url,
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Authorization": `OPEN-ACCESS-TOKEN AccessToken="${token}"`,
|
||||
},
|
||||
body: JSON.stringify(params.content),
|
||||
}, (error, _response, body) => {
|
||||
if (!error) {
|
||||
if (typeof (body) === 'object') {
|
||||
resolve(JSON.parse(body));
|
||||
}
|
||||
else {
|
||||
resolve(body);
|
||||
}
|
||||
}
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.default = OpenSdk;
|
||||
//# sourceMappingURL=base.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"base.js","sourceRoot":"","sources":["base.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user