tplus-api
Version:
tplus api invoke
460 lines (430 loc) • 19.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _stringify = require("babel-runtime/core-js/json/stringify");
var _stringify2 = _interopRequireDefault(_stringify);
var _iterator = require("babel-runtime/core-js/symbol/iterator");
var _iterator2 = _interopRequireDefault(_iterator);
var _symbol = require("babel-runtime/core-js/symbol");
var _symbol2 = _interopRequireDefault(_symbol);
var _promise = require("babel-runtime/core-js/promise");
var _promise2 = _interopRequireDefault(_promise);
var _axios = require("axios");
var _axios2 = _interopRequireDefault(_axios);
var _User = require("../model/User");
var _User2 = _interopRequireDefault(_User);
var _isEmpty2 = require("lodash/isEmpty");
var _isEmpty3 = _interopRequireDefault(_isEmpty2);
var _trim2 = require("lodash/trim");
var _trim3 = _interopRequireDefault(_trim2);
var _querystring = require("querystring");
var _querystring2 = _interopRequireDefault(_querystring);
var _TplusApi = require("./TplusApi");
var _TplusApi2 = _interopRequireDefault(_TplusApi);
var _UIConfirm = require("../components/UIConfirm");
var _UIConfirm2 = _interopRequireDefault(_UIConfirm);
var _app = require("../const/app");
var _mutantsMicrofx = require("mutants-microfx");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function (resolve) {
resolve(value);
});
}
return new (P || (P = _promise2.default))(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());
});
};
var __generator = undefined && undefined.__generator || function (thisArg, body) {
var _ = { label: 0, sent: function sent() {
if (t[0] & 1) throw t[1];return t[1];
}, trys: [], ops: [] },
f,
y,
t,
g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof _symbol2.default === "function" && (g[_iterator2.default] = function () {
return this;
}), g;
function verb(n) {
return function (v) {
return step([n, v]);
};
}
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) {
try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:case 1:
t = op;break;
case 4:
_.label++;return { value: op[1], done: false };
case 5:
_.label++;y = op[1];op = [0];continue;
case 7:
op = _.ops.pop();_.trys.pop();continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;continue;
}
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
_.label = op[1];break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];t = op;break;
}
if (t && _.label < t[2]) {
_.label = t[2];_.ops.push(op);break;
}
if (t[2]) _.ops.pop();
_.trys.pop();continue;
}
op = body.call(thisArg, _);
} catch (e) {
op = [6, e];y = 0;
} finally {
f = t = 0;
}
}if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true };
}
};
var constant = _mutantsMicrofx.env.constant,
platform = _mutantsMicrofx.env.platform;
var QS = require('qs');
var LoginApi = /** @class */function () {
function LoginApi() {}
//用户登录验证 获取企业列表信息
LoginApi.authentication = function (_a) {
var username = _a.username,
password = _a.password;
return __awaiter(this, void 0, void 0, function () {
var ajax, param, response, result, errorInfo;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
ajax = _axios2.default.create({
baseURL: _app.ciaHost
});
param = {
'auth_username': username,
'password': password,
'needOrgLists': '1',
'client_id': _app.clientId,
'client_secret': _app.clientSecret
};
return [4 /*yield*/, ajax.post('/internal_api/client_authentication_with_userInfo', _querystring2.default.stringify(param))];
case 1:
response = _b.sent();
result = response.data;
errorInfo = '';
if (result.auth_result == 'true') {
return [2 /*return*/, result];
} else {
return [2 /*return*/, undefined];
}
return [2 /*return*/];
}
});
});
};
//用户修改密码操作
LoginApi.updatePwd = function (oldPassword, newPassword) {
return __awaiter(this, void 0, void 0, function () {
var user, access_token, appKey, passwordLevel, ajax, passwordInfo, param, response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
user = _User2.default.restore();
access_token = user.accessToken;
appKey = atob(_app.cspAk);
passwordLevel = 1;
ajax = _axios2.default.create({
baseURL: _app.ciaHost
});
passwordInfo = (0, _stringify2.default)({
oldPassword: oldPassword,
newPassword: newPassword,
passwordLevel: passwordLevel
});
param = {
appKey: appKey,
access_token: access_token,
passwordInfo: passwordInfo
};
return [4 /*yield*/, ajax.post('/api/v1/user/password', _querystring2.default.stringify(param))];
case 1:
response = _a.sent();
return [2 /*return*/, response.data];
}
});
});
};
LoginApi.authenticationByCode = function (code) {
return __awaiter(this, void 0, void 0, function () {
var ajax, param, response, d;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
ajax = _axios2.default.create({
baseURL: _app.ciaHost
});
if (!(platform === constant.platform.chanjet)) return [3 /*break*/, 2];
param = QS.stringify({
client_id: _app.clientId,
client_secret: _app.clientSecret,
auth_code: code
});
return [4 /*yield*/, ajax.post('/internal_api/codeForAccessTokenForClient', param)];
case 1:
response = _a.sent();
return [3 /*break*/, 4];
case 2:
if (!(platform === constant.platform.yonyou)) return [3 /*break*/, 4];
param = QS.stringify({
client_id: _app.clientId,
client_secret: _app.clientSecret,
// appKey: atob(cspAk),
// appSecret: atob(cspAS),
code: code
});
return [4 /*yield*/, ajax.post('/special_api/v1/user/getTokenByYonyouCode', param)];
case 3:
response = _a.sent();
_a.label = 4;
case 4:
d = response.data;
if (d.hasOwnProperty('error') && d.hasOwnProperty('error_description') && !(0, _isEmpty3.default)((0, _trim3.default)(d.error_description))) {
return [2 /*return*/, _promise2.default.reject(d.error_description)];
} else {
if ((0, _isEmpty3.default)((0, _trim3.default)(d.user_id)) || (0, _isEmpty3.default)((0, _trim3.default)(d.access_token))) {
return [2 /*return*/, _promise2.default.reject('获取用户信息错误')];
} else {
return [2 /*return*/, _promise2.default.resolve(d)];
}
}
return [2 /*return*/];
}
});
});
};
//获取云端的服务器地址
LoginApi.getTargetURL = function () {
return __awaiter(this, void 0, void 0, function () {
var ajax, resp;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
ajax = _axios2.default.create({
baseURL: _app.tplusWebAppApiHost
});
return [4 /*yield*/, ajax.post('/serverUrl')];
case 1:
resp = _a.sent();
return [2 /*return*/, resp.data];
}
});
});
};
//获取云端的服务器地址
LoginApi.getTargetURLByOrgID = function (targetOrgID) {
return __awaiter(this, void 0, void 0, function () {
var ajax, resp;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
ajax = _axios2.default.create({
baseURL: _app.tplusWebAppApiHost
});
return [4 /*yield*/, ajax.post('/serverUrl', { targetOrgID: targetOrgID })];
case 1:
resp = _a.sent();
return [2 /*return*/, resp.data];
}
});
});
};
//获取T+的token
LoginApi.checkTplusToken = function (orgId, serverUrl) {
return __awaiter(this, void 0, void 0, function () {
var checkThroughProxy, method, auth, clientName, desc, param, requestObj, user, ajax, url, user_req_id, resp;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
checkThroughProxy = false;
if (serverUrl.indexOf(_app.proxyServer) > -1) {
checkThroughProxy = true;
}
method = 'chanjet.EAP.GZQ.CSP.GetTPlusToken';
auth = _User2.default.restore();
clientName = window.localStorage.clientName || '';
desc = window.localStorage.desc || '';
//供循环调用时使用
if (!!clientName) window.localStorage.clientName = clientName;
if (!!desc) window.localStorage.desc = desc;
param = {
orgId: orgId,
cspUserId: auth.userId,
cspAppKey: atob(_app.cspAk),
cspAppSecret: '',
lastLoginedToken: '',
clientName: clientName,
desc: desc,
NoLogout: true
};
requestObj = {};
requestObj = QS.stringify({
'Apis': (0, _stringify2.default)({
'Args': param,
'Method': method
})
});
user = _User2.default.restore();
ajax = _axios2.default.create({ baseURL: serverUrl });
url = 'api/rest';
url = url + '?IsFree=1&methodName=' + method + '&userId=' + user.userId + '&orgId=' + orgId;
user_req_id = user.userId + "x" + new Date().getTime().toString(16);
url += '&user_req_id=' + user_req_id;
return [4 /*yield*/, ajax.post(url, requestObj, { headers: { checkThroughProxy: checkThroughProxy, checkOrgId: orgId } }).then(function (resp) {
return _promise2.default.resolve(resp);
}).catch(function (err) {
_UIConfirm2.default.show("未找到云企业(orgid:90015044950)对应的账套,请重新选择企业登录", function () {});
return _promise2.default.reject(err);
})];
case 1:
resp = _a.sent();
return [2 /*return*/, resp.data];
}
});
});
};
LoginApi.changeOrg = function (orgId) {
return __awaiter(this, void 0, void 0, function () {
var ajax, auth, user, resp;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
ajax = _axios2.default.create({
baseURL: _app.tplusWebAppApiHost
});
auth = _User2.default.restore();
user = _User2.default.restore();
return [4 /*yield*/, ajax.post('gettplusauthinfo', QS.stringify({ orgId: orgId, ciaUserId: auth.userId, ciaToken: user.accessToken, targetOrgID: orgId }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })];
case 1:
resp = _a.sent();
return [2 /*return*/, resp.data];
}
});
});
};
//获取云端的配置信息
LoginApi.getApiConfig = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, _axios2.default.get(_app.prodProxyHost + "?url=https://newretail-static-pro-bj.oss-cn-beijing.aliyuncs.com/fe_gateway/api_config.json")];
});
});
};
//获取T+的token
LoginApi.getTplusToken = function (_a) {
var _b = _a.clientName,
clientName = _b === void 0 ? window.localStorage.clientName || '' : _b,
_c = _a.desc,
desc = _c === void 0 ? window.localStorage.desc || '' : _c;
return __awaiter(this, void 0, void 0, function () {
var method, auth, param, resp;
return __generator(this, function (_d) {
switch (_d.label) {
case 0:
method = 'chanjet.EAP.GZQ.CSP.GetTPlusToken';
auth = _User2.default.restore();
//供循环调用时使用
if (!!clientName) window.localStorage.clientName = clientName;
if (!!desc) window.localStorage.desc = desc;
param = {
orgId: auth.orgId,
cspUserId: auth.userId,
cspAppKey: atob(_app.cspAk),
cspAppSecret: '',
lastLoginedToken: '',
clientName: clientName,
desc: desc
};
return [4 /*yield*/, (0, _TplusApi2.default)(param, method, false, true)];
case 1:
resp = _d.sent();
return [2 /*return*/, resp];
}
});
});
};
//获取jsTicket信息
LoginApi.getSignature = function () {
return __awaiter(this, void 0, void 0, function () {
var user, access_token, param, query, url, ajax;
return __generator(this, function (_a) {
user = _User2.default.restore();
access_token = user.accessToken;
param = {
appKey: atob(_app.cspAk),
access_token: access_token
};
query = QS.stringify(param);
url = "/api/v1/thirdplatform/getSignature?" + query;
ajax = _axios2.default.create({
baseURL: _app.ciaHost
});
return [2 /*return*/, new _promise2.default(function (res, rej) {
ajax.get(url).then(function (resp) {
var d = resp.data;
return res(d);
}).catch(function (err) {
return rej(err);
});
})];
});
});
};
//注销T+
LoginApi.logout = function () {
return __awaiter(this, void 0, void 0, function () {
var method, param, resp;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
method = 'chanjet.Authorization.Logout';
param = {};
return [4 /*yield*/, (0, _TplusApi2.default)(param, method, false, false)];
case 1:
resp = _a.sent();
return [2 /*return*/, resp];
}
});
});
};
return LoginApi;
}();
exports.default = LoginApi;
//# sourceMappingURL=LoginApi.js.map
//# sourceMappingURL=LoginApi.js.map