Commit de29e016 by 宋毅

tj

parent b342d76e
const system = require("../system"); const system = require("../system");
const settings = require("../../config/settings"); const settings = require("../../config/settings");
const DocBase = require("./doc.base");
const uuidv4 = require('uuid/v4'); const uuidv4 = require('uuid/v4');
const md5 = require("MD5"); const md5 = require("MD5");
class APIBase { class APIBase {
...@@ -54,7 +53,7 @@ class APIBase { ...@@ -54,7 +53,7 @@ class APIBase {
} }
//-----------------------新的模式------------------开始 //-----------------------新的模式------------------开始
async doexecMethod(gname, methodname, pobj, query, req) { async doexecMetho(gname, methodname, pobj, query, req) {
req.requestId = this.getUUID(); req.requestId = this.getUUID();
try { try {
// //验证accesskey或验签 // //验证accesskey或验签
......
...@@ -15,42 +15,6 @@ class APIBase extends DocBase { ...@@ -15,42 +15,6 @@ class APIBase extends DocBase {
return u; return u;
} }
/** /**
* 验证签名
* @param {*} params 要验证的参数
* @param {*} app_key 应用的校验key
*/
async verifySign(params, app_key) {
if (!params) {
return system.getResult(null, "请求参数为空");
}
if (!params.sign) {
return system.getResult(null, "请求参数sign为空");
}
if (!params.times_tamp) {
return system.getResult(null, "请求参数times_tamp为空");
}
var signArr = [];
var keys = Object.keys(params).sort();
if (keys.length == 0) {
return system.getResult(null, "请求参数信息为空");
}
for (let k = 0; k < keys.length; k++) {
const tKey = keys[k];
if (tKey != "sign" && params[tKey]) {
signArr.push(tKey + "=" + params[tKey]);
}
}
if (signArr.length == 0) {
return system.getResult(null, "请求参数组装签名参数信息为空");
}
var resultSignStr = signArr.join("&") + "&key=" + app_key;
var resultTmpSign = md5(resultSignStr).toUpperCase();
if (params.sign != resultTmpSign) {
return system.getResult(null, "签名验证失败");
}
return system.getResultSuccess();
}
/**
* 白名单验证 * 白名单验证
* @param {*} gname 组名 * @param {*} gname 组名
* @param {*} methodname 方法名 * @param {*} methodname 方法名
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
class EnterpriseQueryAPI extends APIBase { class EnterpriseQueryAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.enterSve = system.getObject("service.enterprise.enterpriseSve"); this.enterSve = system.getObject("service.enterprise.enterpriseSve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
class IcAPI extends APIBase { class IcAPI extends WEBBase {
constructor() { constructor() {
super(); super();
// this.utilsProductSve = system.getObject("service.utilsSve.utilsProductSve"); // this.utilsProductSve = system.getObject("service.utilsSve.utilsProductSve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
class LicenseQueryAPI extends APIBase { class LicenseQueryAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.liecseSve = system.getObject("service.licenses.licenseSve"); this.liecseSve = system.getObject("service.licenses.licenseSve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
const logCtl = system.getObject("service.common.oplogSve"); const logCtl = system.getObject("service.common.oplogSve");
class opLog extends APIBase { class opLog extends WEBBase {
constructor() { constructor() {
super(); super();
} }
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
class PatentQueryAPI extends APIBase { class PatentQueryAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.patentSve = system.getObject("service.patent.patentycSve"); this.patentSve = system.getObject("service.patent.patentycSve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
class PolicyAPI extends APIBase { class PolicyAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.policySve = system.getObject("service.policy.policySve"); this.policySve = system.getObject("service.policy.policySve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
class ProductAPI extends APIBase { class ProductAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.utilsProductSve = system.getObject("service.utilsSve.utilsProductSve"); this.utilsProductSve = system.getObject("service.utilsSve.utilsProductSve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
class TmQueryAPI extends APIBase { class TmQueryAPI extends WEBBase {
constructor() { constructor() {
super(); super();
// this.tmqueryApi = system.getObject("api.trademark.tmqueryApi"); // this.tmqueryApi = system.getObject("api.trademark.tmqueryApi");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
class TmToolsAPI extends APIBase { class TmToolsAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.toolSve = system.getObject("service.trademark.toolSve"); this.toolSve = system.getObject("service.trademark.toolSve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
class TmTransactionAPI extends APIBase { class TmTransactionAPI extends WEBBase {
constructor() { constructor() {
super(); super();
} }
......
const system = require("../../../system"); const system = require("../../../system");
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
var moment = require('moment') var moment = require('moment')
class TradetransferAPI extends APIBase { class TradetransferAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.aliclient = system.getObject("util.aliyunClient"); this.aliclient = system.getObject("util.aliyunClient");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
class PaymentAPI extends APIBase { class PaymentAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.execlient = system.getObject("util.execClient"); this.execlient = system.getObject("util.execClient");
...@@ -42,6 +42,6 @@ class PaymentAPI extends APIBase { ...@@ -42,6 +42,6 @@ class PaymentAPI extends APIBase {
return await this.restPostUrl(pobj, url); return await this.restPostUrl(pobj, url);
// return opResult; // return opResult;
} }
} }
module.exports = PaymentAPI; module.exports = PaymentAPI;
\ No newline at end of file
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
class AccessAuthAPI extends APIBase { class AccessAuthAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.utilsAuthSve = system.getObject("service.utilsSve.utilsAuthSve"); this.utilsAuthSve = system.getObject("service.utilsSve.utilsAuthSve");
...@@ -96,9 +96,6 @@ class AccessAuthAPI extends APIBase { ...@@ -96,9 +96,6 @@ class AccessAuthAPI extends APIBase {
* action_process 执行的流程 * action_process 执行的流程
*/ */
async getAppTokenByAppKey(pobj, qobj, req) { async getAppTokenByAppKey(pobj, qobj, req) {
console.log("=========================测试蜂擎推送数据:", JSON.stringify(pobj));
var token = this.getUUID(); var token = this.getUUID();
pobj.actionBody.reqType = "appkey"; pobj.actionBody.reqType = "appkey";
var opResult = await this.utilsAuthSve.getReqTokenByHosts(pobj.actionBody, token); var opResult = await this.utilsAuthSve.getReqTokenByHosts(pobj.actionBody, token);
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
class IcbcOrderNotify extends APIBase { class IcbcOrderNotify extends WEBBase {
constructor() { constructor() {
super(); super();
this.utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve"); this.utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
class ProductAPI extends APIBase { class ProductAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.utilsOpOrderSve = system.getObject("service.utilsSve.utilsOpOrderSve"); this.utilsOpOrderSve = system.getObject("service.utilsSve.utilsOpOrderSve");
......
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
class ProductAPI extends APIBase { class ProductAPI extends WEBBase {
constructor() { constructor() {
super(); super();
this.utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve"); this.utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve");
......
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class Ic extends APIBase {
constructor() {
super();
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionProcess) {
return system.getResult(null, "actionProcess参数不能为空");
}
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = await this.opActionProcess(pobj,pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
return result;
}
async opActionProcess(pobj,action_process, action_type, action_body, req) {
var opResult = null;
switch (action_type) {
case "deliveryInfo"://办理公司表单数据
break;
case "deliveryStatus"://办理公司状态
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = Ic;
\ No newline at end of file
var APIBase = require("../../api.base"); var APIBase = require("../../api.base");
var system = require("../../../system"); var system = require("../../../system");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
/** class Need extends APIBase {
* 接收远程推送的商标数据api
*/
class ReceiveDataAPI extends APIBase {
constructor() { constructor() {
super(); super();
this.ordertmproductSve = system.getObject("service.dborder.ordertmproductSve");
this.customerinfoSve = system.getObject("service.dborder.customerinfoSve");
this.customercontactsSve = system.getObject("service.dborder.customercontactsSve");
this.trademarkSve = system.getObject("service.dbtrademark.trademarkSve");
this.zcApiUrl = settings.reqZcApi();
this.pushFqbossDataUrl = settings.pushFqbossDataUrl();
this.pushlogSve = system.getObject("service.common.pushlogSve");
} }
/** /**
* 接口跳转-POST请求 * 接口跳转-POST请求
* action_process 执行的流程 * action_process 执行的流程
...@@ -28,29 +19,19 @@ class ReceiveDataAPI extends APIBase { ...@@ -28,29 +19,19 @@ class ReceiveDataAPI extends APIBase {
if (!pobj.actionType) { if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空"); return system.getResult(null, "actionType参数不能为空");
} }
var result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, pobj, req); var result = await this.opActionProcess(pobj, pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
return result; return result;
} }
async opActionProcess(action_process, action_type, action_body, pobj, req) { async opActionProcess(pobj, action_process, action_type, action_body, req) {
// var logParam = {
// appid: req.app.id,
// appkey: req.app.uappKey,
// requestId: req.requestId || "",
// op: "/igirl-channel/zhichan/igirl-channel/app/base/api/impl/action/receiveData.js/opActionProcess",
// content: "参数信息:" + JSON.stringify(action_body),
// clientIp: pobj.clientIp,
// optitle: "接收推送过来的数据处理=>action_type=" + action_type,
// };
var opResult = null; var opResult = null;
switch (action_type) { switch (action_type) {
case "close"://关闭需求
break;
default: default:
opResult = system.getResult(null, "action_type参数错误"); opResult = system.getResult(null, "action_type参数错误");
break; break;
} }
logParam.resultInfo = JSON.stringify(opResult);
this.logCtl.info(logParam);
return opResult; return opResult;
} }
} }
module.exports = ReceiveDataAPI; module.exports = Need;
\ No newline at end of file \ No newline at end of file
var APIBase = require("../../api.base"); var WEBBase = require("../../web.base");
var system = require("../../../system"); var system = require("../../../system");
var settings = require("../../../../config/settings"); var settings = require("../../../../config/settings");
class PaymentAPI extends APIBase { class PaymentAPI extends WEBBase {
constructor() { constructor() {
super(); super();
// this.execlient = system.getObject("util.execClient"); // this.execlient = system.getObject("util.execClient");
......
const system = require("../system");
const settings = require("../../config/settings");
const uuidv4 = require('uuid/v4');
const md5 = require("MD5");
class WEBBase {
constructor() {
this.restClient = system.getObject("util.restClient");
this.cacheManager = system.getObject("db.common.cacheManager");
this.logCtl = system.getObject("service.common.oplogSve");
this.toolSve = system.getObject("service.trademark.toolSve");
this.exTime = 6 * 3600;//缓存过期时间,6小时
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
//-----------------------新的模式------------------开始
async doexecMethod(gname, methodname, pobj, query, req) {
req.requestId = this.getUUID();
try {
// //验证accesskey或验签
// var isPassResult = await this.checkAcck(gname, methodname, pobj, query, req);
// if (isPassResult.status != 0) {
// isPassResult.requestId = "";
// return isPassResult;
// }
var rtn = await this[methodname](pobj, query, req);
this.logCtl.createDb({
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId,
op: req.classname + "/" + methodname,
content: JSON.stringify(pobj),
resultInfo: JSON.stringify(rtn),
clientIp: req.clientIp,
agent: req.uagent,
opTitle: "api服务提供方appKey:" + settings.appKey,
});
rtn.requestId = req.requestId;
return rtn;
} catch (e) {
console.log(e.stack, "api调用出现异常,请联系管理员..........")
this.logCtl.createDb({
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId,
op: req.classname + "/" + methodname,
content: JSON.stringify(pobj),
resultInfo: JSON.stringify(e.stack),
clientIp: req.clientIp,
agent: req.uagent,
opTitle: "api调用出现异常,请联系管理员error,appKey:" + settings.appKey,
});
this.logCtl.error({
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId,
op: req.classname + "/" + methodname,
content: e.stack,
clientIp: pobj.clientIp,
agent: req.uagent,
optitle: "api调用出现异常,请联系管理员",
});
var rtnerror = system.getResultFail(-200, "出现异常,error:" + e.stack);
rtnerror.requestId = req.requestId;
return rtnerror;
}
}
//-----------------------新的模式------------------结束
async restPostUrl(pobj, url) {
var rtn = await this.restClient.execPost(pobj, url);
if (!rtn || !rtn.stdout) {
return system.getResult(null, "restPost data is empty");
}
var result = JSON.parse(rtn.stdout);
return result;
}
}
module.exports = WEBBase;
...@@ -5,7 +5,8 @@ const logCtl = system.getObject("service.common.oplogSve"); ...@@ -5,7 +5,8 @@ const logCtl = system.getObject("service.common.oplogSve");
const utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve"); const utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve");
module.exports = function (app) { module.exports = function (app) {
//-----------------------新的模式------------------开始 //-----------------------新的模式---------web---------开始
app.use('/tlpay/notify', async function (req, res) { app.use('/tlpay/notify', async function (req, res) {
try { try {
var client_ip = system.get_client_ip(req); var client_ip = system.get_client_ip(req);
...@@ -143,7 +144,7 @@ module.exports = function (app) { ...@@ -143,7 +144,7 @@ module.exports = function (app) {
var p = null; var p = null;
var invokeObj = system.getObject("api." + classPath); var invokeObj = system.getObject("api." + classPath);
if (invokeObj["doexecMethod"]) { if (invokeObj["doexecMethod"]) {
p = invokeObj["doexecMethod"].apply(invokeObj, params); req p = invokeObj["doexecMethod"].apply(invokeObj, params);
} }
p.then(r => { p.then(r => {
res.end(JSON.stringify(r)); res.end(JSON.stringify(r));
...@@ -176,5 +177,63 @@ module.exports = function (app) { ...@@ -176,5 +177,63 @@ module.exports = function (app) {
}); });
}); });
//-----------------------新的模式------------------结束 //-----------------------新的模式---------web---------结束
//-----------------------新的模式---------api---------开始
app.get('/api/:gname/:qname/:method', function (req, res) {
var classPath = req.params["qname"];
var methodName = req.params["method"];
var gname = req.params["gname"];
classPath = gname + "." + classPath;
var tClientIp = system.get_client_ip(req);
req.clientIp = tClientIp; req
req.uagent = req.headers["user-agent"];
req.classname = classPath;
var params = [];
params.push(gname);
params.push(methodName);
params.push(req.body);
params.push(req.query);
params.push(req);
var p = null;
var invokeObj = system.getObject("api." + classPath);
if (invokeObj["doexecMethod"]) {
p = invokeObj["doexecMethod"].apply(invokeObj, params);
}
p.then(r => {
res.end(JSON.stringify(r));
});
});
app.post('/api/:gname/:qname/:method', function (req, res) {
var classPath = req.params["qname"];
var methodName = req.params["method"];
var gname = req.params["gname"];
var params = [];
classPath = gname + "." + classPath;
var tClientIp = system.get_client_ip(req);
req.clientIp = tClientIp;
req.uagent = req.headers["user-agent"];
req.classname = classPath;
params.push(gname);
params.push(methodName);
params.push(req.body);
params.push(req.query);
params.push(req);
var p = null;
var invokeObj = system.getObject("api." + classPath);
if (invokeObj["doexecMethod"]) {
p = invokeObj["doexecMethod"].apply(invokeObj, params);
}
p.then(r => {
res.end(JSON.stringify(r));
});
});
//-----------------------新的模式---------api---------结束
}; };
1.获取请求token
1.获取请求token
[/web/auth/accessAuth/getAppTokenByAppKey]
请求方式:POST
参数格式 JSON
HTTP请求方式 POST
{
"actionType":"getAppTokenByAppKey",//固定写法就行
"actionBody":{
"appkey": "2019090811", //Y string appkey
"secret": "f99d413b767f09b5dff0b3610366cc46"//Y string 密钥
}
}
返回结果
{
"status": 0,
"msg": "success",
"data": {
"token": "40d64e586551405c9bcafab87266bc04" //token用于其他接口请求时,放在请求头中
},
"requestId": "2016c54abe7249a2a1195d236b333f79"
}
2.查看需求方案列表信息
地址:[/#/comapnylist?needNo=XXX&userId=jfklajflsjfs&nickName=松XXX&mobile=15010929368&orgName=汉唐集团]
请求方式:GET
请求头中需要有token(token值从接口1中获取)
参数说明:
参数说明:
needNo//需求号
userId//用户唯一码
nickName//用户名称
mobile//用户手机号
orgName//公司名称
3.推送公司表单材料
地址:[/api/opreceive/ic/springBoard]
请求方式:POST
请求头中需要有token(token值从接口1中获取)
{
"actionType": "deliveryInfo", // 办理公司表单数据
"actionBody": {
"serviceNo":"xxxxxxxxx",// Y 你那边订单号
.
.//为你那边的数据
.
}
}
返回结果
{
"status": 0,//0成功,否则失败
"msg": "success",
"data": null,
"requestId": "2016c54abe7249a2a1195d236b333f79"
}
4.推送公司状态
地址:[/api/opreceive/ic/springBoard]
请求方式:POST
请求头中需要有token(token值从接口1中获取)
{
"actionType": "deliveryStatus", // 办理公司状态
"actionBody": {
"serviceNo":"xxxxxxxxx",// Y 你那边订单号
.
.//为你那边的数据
.
}
}
返回结果
{
"status": 0,//0成功,否则失败
"msg": "success",
"data": null,
"requestId": "2016c54abe7249a2a1195d236b333f79"
}
4.关闭需求接口
地址:[/api/opreceive/need/springBoard]
请求方式:POST
请求头中需要有token(token值从接口1中获取)
{
"actionType": "close", // 关闭需求
"actionBody": {
"needNo":"xxxxxxxxx"//需求号
}
}
返回结果
{
"status": 0,//0成功,否则失败
"msg": "success",
"data": null,
"requestId": "2016c54abe7249a2a1195d236b333f79"
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment