Commit 3e7d9833 by 兰国旗

Merge branch 'center-channel' of gitlab.gongsibao.com:jiangyong/zhichan into center-channel

parents fd0f3869 85aee723
......@@ -19,19 +19,20 @@ class Consultation extends APIBase {
}
getResultSuccess(requestId) {
return {
"requestId": requestId,
"success": true,
"errorMsg": "",
"errorCode": "ok"
}
"status": 0,
"msg": "success",
"data":null,
"requestId": requestId
};
}
getResultFail(errmsg) {
var self = this;
return {
"status":-1,
"msg": errmsg,
"requestId": self.getUUID(),
"success": false,
"errorMsg": errmsg,
"errorCode": "ok"
"data":null,
"bizmsg":"empty"
};
}
......@@ -50,6 +51,12 @@ class Consultation extends APIBase {
if (!pobj.consultType) {
return self.getResultFail("consultType不能为空");
}
if (pobj.consultType=="ICP") {
pobj.consultType="5";
}
if (pobj.consultType=="EDI") {
pobj.consultType="7";
}
pobj.type = pobj.consultType;
pobj.mobile = pobj.phone;
pobj.action_type = "submitIcpNeed";
......@@ -157,6 +164,108 @@ class Consultation extends APIBase {
case "34":
pobj.area = "海南";
break;
case "BEIJING":
pobj.area = "北京";
break;
case "SHANGHAI":
pobj.area = "上海";
break;
case "FUJIAN":
pobj.area = "福建";
break;
case "GUANGXI":
pobj.area = "广西";
break;
case "GUANGDONG":
pobj.area = "广东";
break;
case "ANHUI":
pobj.area = "安徽";
break;
case "HENAN":
pobj.area = "河南";
break;
case "HUBEI":
pobj.area = "湖北";
break;
case "ZHEJIANG":
pobj.area = "浙江";
break;
case "JIANGSU":
pobj.area = "江苏";
break;
case "SHANDONG":
pobj.area = "山东";
break;
case "SHANGXI_SHAN":
pobj.area = "陕西";
break;
case "NINGXIA":
pobj.area = "宁夏";
break;
case "GANSU":
pobj.area = "甘肃";
break;
case "XINJIANG":
pobj.area = "新疆";
break;
case "QINGHAI":
pobj.area = "青海";
break;
case "TIANJIN":
pobj.area = "天津";
break;
case "CHONGQING":
pobj.area = "重庆";
break;
case "HEBEI":
pobj.area = "河北";
break;
case "SHANXI_JIN":
pobj.area = "山西";
break;
case "LIAONING":
pobj.area = "辽宁";
break;
case "JINLIN":
pobj.area = "吉林";
break;
case "HEILONGJIANG":
pobj.area = "黑龙江";
break;
case "JIANGXI":
pobj.area = "江西";
break;
case "HUNAN":
pobj.area = "湖南";
break;
case "SICHUAN":
pobj.area = "四川";
break;
case "GUIZHOU":
pobj.area = "贵州";
break;
case "YUNNAN":
pobj.area = "云南";
break;
case "NEIMENGGU":
pobj.area = "内蒙古";
break;
case "XIZANG":
pobj.area = "西藏";
break;
case "HANWAIZI":
pobj.area = "含外资";
break;
case "QUANWAIZI":
pobj.area = "全外资";
break;
case "XIANGGANG":
pobj.area = "香港";
break;
case "HAINAN":
pobj.area = "海南";
break;
default:
pobj.area = "";
break;
......
......@@ -19,19 +19,20 @@ class Feedback extends APIBase {
}
getResultSuccess(requestId) {
return {
"requestId": requestId,
"success": true,
"errorMsg": "",
"errorCode": "ok"
}
"status": 0,
"msg": "success",
"data":null,
"requestId": requestId
};
}
getResultFail(errmsg) {
var self = this;
return {
"status":-1,
"msg": errmsg,
"requestId": self.getUUID(),
"success": false,
"errorMsg": errmsg,
"errorCode": "ok"
"data":null,
"bizmsg":"empty"
};
}
......
......@@ -19,19 +19,20 @@ class Order extends APIBase {
}
getResultSuccess(requestId) {
return {
"requestId": requestId,
"success": true,
"errorMsg": "",
"errorCode": "ok"
}
"status": 0,
"msg": "success",
"data":null,
"requestId": requestId
};
}
getResultFail(errmsg) {
var self = this;
return {
"status":-1,
"msg": errmsg,
"requestId": self.getUUID(),
"success": false,
"errorMsg": errmsg,
"errorCode": "ok"
"data":null,
"bizmsg":"empty"
};
}
......@@ -57,6 +58,13 @@ class Order extends APIBase {
}
if (pobj.isDirectBuy==1 && !pobj.consultType) {
return self.getResultFail("直接下单consultType不能为空");
}else{
if (pobj.consultType=="ICP") {
pobj.consultType="5";
}
if (pobj.consultType=="EDI") {
pobj.consultType="7";
}
}
pobj.action_type = "icpOrderStatus";
var param = {
......
......@@ -141,7 +141,7 @@ class NameAPI extends WEBBase {
if (result.status != 0) {
return result;
}
const tmpData = result.data ? result.data.companyName : [];
const tmpData = result.data ? result.data.companyName ? result.data.companyName : result.data : [];
return system.getResultSuccess(tmpData);
}
}
......
......@@ -4,6 +4,7 @@ const uuidv4 = require('uuid/v4');
const md5 = require("MD5");
class WEBBase {
constructor() {
this.execClientNew = system.getObject("util.execClientNew");
this.restClient = system.getObject("util.restClient");
this.execClientNew = system.getObject("util.execClientNew");
this.cacheManager = system.getObject("db.common.cacheManager");
......@@ -21,20 +22,24 @@ class WEBBase {
async doexecMethod(gname, methodname, pobj, query, req) {
req.requestId = this.getUUID();
try {
var rtn = await this[methodname](pobj, query, req);
var result = await this[methodname](pobj, query, req);
if (!result.requestId) {
result.requestId = pobj.RequestId ? pobj.RequestId : pobj.requestId || req.requestId;
}
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),
resultInfo: JSON.stringify(result),
clientIp: req.clientIp,
agent: req.uagent,
opTitle: "api服务提供方appKey:" + settings.appKey,
});
rtn.requestId = req.requestId;
return rtn;
var tmpResult = pobj.actionType && pobj.actionType.indexOf("List") < 0 ? result : { status: result.status, message: result.message, requestId: result.requestId };
this.execClientNew.execLogs("reqPath:" + req.path, pobj, "center-channel-doexecMethod-web", tmpResult, null);
return result;
} catch (e) {
console.log(e.stack, "api调用出现异常,请联系管理员..........")
this.logCtl.createDb({
......
......@@ -5,6 +5,7 @@ class SignService{
constructor() {
this.centerAppUrl = settings.centerAppUrl();
this.restClient = system.getObject("util.restClient");
this.redisClient = system.getObject("util.redisClient");
}
async restPostUrl(pobj, url) {
try {
......@@ -20,9 +21,23 @@ class SignService{
}
}
async getAppInfoByAppKey(appkey){
let url = this.centerAppUrl + 'payment/paymentApi/getAppInfoByAppKey';
let appInfoRt = await this.restPostUrl({ appKey: appkey }, url);
return appInfoRt;
try {
var shaStr = "getAppInfoByAppKey_"+appkey;
var cacheRes = await this.redisClient.get(shaStr);
if (cacheRes) {
return JSON.parse(cacheRes);
}
let url = this.centerAppUrl + 'payment/paymentApi/getAppInfoByAppKey';
let appInfoRt = await this.restPostUrl({ appKey: appkey }, url);
if(appInfoRt && appInfoRt.status==0){
//保存缓存
await this.redisClient.setWithEx(shaStr, JSON.stringify(appInfoRt), 3600);
}
return appInfoRt;
} catch (error) {
var errres = system.getResultFail("获取应用信息失败!");
return errres;
}
}
/**
* 验证签名
......@@ -88,12 +103,12 @@ class SignService{
module.exports = SignService;
// var task = new SignService();
// var obj = {
// "intentionBizId": "zhuangbingceshi008",
// "phone": "13075556693",
// "userName": "庄冰",
// "description": "1111111111111222",
// "area": "1",
// "consultType": 5
// "intentionBizId": "TRE-nmnHtEoTjeEtest",
// "phone": "13126673246",
// "userName": "",
// "description": "111111",
// "area": "BEIJING",
// "consultType": "EDI"
// };
// task.createSign(obj,"7cbb892450174167b5c7e01we4716t51").then(d=>{
// console.log(d,"!!!!!!!!!!!!!!!!!!!!!!!!!!");
......
......@@ -13,63 +13,45 @@ class utils360Sve extends AppServiceBase {
}
//组合参数,由前端传到360
async getParamsFor360(pobj, actionBody) {
if (!actionBody.orderNo) {
return system.getResult(null, "actionBody.orderNo can not be empty,100110");
}
let seaUrl = this.centerOrderUrl + 'opaction/opPayOrder/getOrderListByOrderServiceNo';
let seaRet = await this.restPostUrl(pobj, seaUrl);
if (seaRet.status != 0) {
return system.getResultFail(-1, '获取订单信息失败')
}
let totalSum = 0;
let sku_id = '';
let amount = 0;
let consignee = "";
let mobile = "";
let email = "";
for (let i = 0; i < seaRet.data.length; i++) {
let item = seaRet.data[i];
if(!mobile){
pobj.actionType.orderNo = item.orderNo;
pobj.actionType = "getOrderDeliveryInfo";
let deliveryResult = await this.restPostUrl(pobj, orderUrl);
consignee = deliveryResult.data.orderContact.contactName;
mobile = deliveryResult.data.orderContact.mobile;
email = deliveryResult.data.orderContact.email
}
sku_id = item.itemCode;
totalSum += Number(item.totalSum);
amount += Number(item.payTotalSum);
}
// let sku_id = orderResult.data.orderProduct.itemCode;
// let price = Number(orderResult.data.orderProduct.price)*100;
let price = totalSum * 100;
// let quantity = seaRet.data.length;
// let amount = Number(orderResult.data.receiptVoucher.totalSum)*100;
amount = amount * 100;
let order_id = pobj.actionBody.orderNo;
// let consignee = deliveryResult.data.orderContact.contactName;
// let mobile = deliveryResult.data.orderContact.mobile;
// let email = deliveryResult.data.orderContact.email;
let singStr = sku_id + price + order_id + pobj.appInfo.uapp_secret;
let sign = md5(singStr).toUpperCase();
// 推送参数
let result = {
sku_id: sku_id,
price: price,
quantity: seaRet.data.length,
amount: amount,
order_id: order_id,
consignee: consignee,
mobile: mobile,
email: email,
sign: sign
}
return system.getResult(result);
//组合参数,由前端传到360
async getParamsFor360(pobj, actionBody) {
if (!actionBody.orderNo) {
return system.getResult(null, "actionBody.orderNo can not be empty,100110");
}
pobj.actionType = "getPayOrderInfo";
let orderUrl = settings.centerOrderUrl() + "action/order/springBoard";
let orderResult = await this.restPostUrl(pobj, orderUrl);
if (orderResult.status != 0) {
return orderResult;
}
pobj.actionType ="getOrderDeliveryInfo";
var deliveryResult = await this.restPostUrl(pobj,orderUrl);
if (deliveryResult.status != 0) {
return deliveryResult;
}
let sku_id = orderResult.data.orderProduct.itemCode;
let price = Number(orderResult.data.orderProduct.price)*100;
let quantity = orderResult.data.orderProduct.quantity;
let amount = Number(orderResult.data.receiptVoucher.totalSum)*100;
let order_id = orderResult.data.receiptVoucher.sourceOrderNo;
let consignee = deliveryResult.data.orderContact.contactName;
let mobile = deliveryResult.data.orderContact.mobile;
let email = deliveryResult.data.orderContact.email;
let singStr = sku_id + quantity + price + amount + order_id + pobj.appInfo.uapp_secret;
let sign = md5(singStr).toUpperCase();
let result ={
sku_id,
price,
quantity,
amount,
order_id,
consignee,
mobile,
email,
sign
}
return system.getResult(result);
}
//更新订单状态到360
async pushOrderStatus(pobj) {
......@@ -93,7 +75,7 @@ class utils360Sve extends AppServiceBase {
order_id, status
}
let result = await this.restPostUrl(pushObj, url);
if(result.code ==200){
if (result.code == 200) {
this.pushlogSve.createDb({
op: "360-pushOrderStatus",
content: JSON.stringify(pushObj),//推送的参数信息
......@@ -102,7 +84,7 @@ class utils360Sve extends AppServiceBase {
logLevel: '1',
opTitle: "推送360信息返回成功"
});
}else{
} else {
this.logCtl.error({
appid: pobj.appInfo ? pobj.appInfo.uapp_id || "" : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key || "" : "",
......@@ -113,7 +95,7 @@ class utils360Sve extends AppServiceBase {
optitle: pobj.opType + "推送操作异常status->pushOrderStatus",
});
}
console.log(result,'-------------push360-----------------')
console.log(result, '-------------push360-----------------')
return result;
} catch (e) {
this.logCtl.error({
......
......@@ -268,19 +268,19 @@ class UtilsAuthService extends AppServiceBase {
let result = await this.get360Token();
let token = result.access_token;
//360验证接口
// let subData = "pin=" + pin + "&token=" + token;
// let url = settings.requestUrl360() + 'api/v1/VerifyPin';
// let rtn = await this.restClient.execGet(subData,url);
// if (!rtn || !rtn.stdout) {
// return system.getResult(null, "restGet data is empty");
// }
// let checkRet = JSON.parse(rtn.stdout);
// if(checkRet.code != 200){
// return system.getResultFail(-1,checkRet.msg)
// }
let subData = "pin=" + pin + "&token=" + token;
let url = settings.requestUrl360() + 'api/v1/VerifyPin';
let rtn = await this.restClient.execGet(subData,url);
if (!rtn || !rtn.stdout) {
return system.getResult(null, "restGet data is empty");
}
let checkRet = JSON.parse(rtn.stdout);
if(checkRet.code != 200){
return system.getResultFail(-1,checkRet.msg)
}
//---渠道用户登录,有则返回userpin ,没有则注册用户并返回userpin
actionBody.channelUserId = pin;
opResult = await this.getLoginByUserName(pobj, actionBody);
opResult = await this.getLoginByUserName(req,pobj, actionBody);
return opResult;
}
......
......@@ -19,6 +19,11 @@ class UtilsDeliverSystemService extends AppServiceBase {
return await this.disposePushResultFail(pobj, verifyResult, "deliver->pushBusiness2DeliverSystem->verifyResult", this.pushlogFailType.FQ);
}
var interface_params_info = verifyResult.data;
if(interface_params_info.headData){
if(pobj && pobj.appInfo && pobj.appInfo.app_code){
interface_params_info.headData.appcode = pobj.appInfo.app_code;
}
}
var reqParams = {
actionType: "produceData",// Y 功能名称
actionBody: {
......
......@@ -27,8 +27,10 @@ class UtilsFqAliyunService extends AppServiceBase {
if (!productInfo || !productInfo.service_business_code) {
verifyResult = system.getResult(null, "orderInfo.productInfo.service_business_code can not be empty,100427");
}
if (!productInfo || !productInfo.price_item || !productInfo.price_item.service_code) {
verifyResult = system.getResult(null, "orderInfo.productInfo.price_item.service_code can not be empty,100430");
if (!['360.icp','360.edi'].includes(productInfo.service_business_code)) {
if (!productInfo || !productInfo.price_item || !productInfo.price_item.service_code) {
verifyResult = system.getResult(null, "orderInfo.productInfo.price_item.service_code can not be empty,100430");
}
}
if (verifyResult.status != 0) {
return await this.disposePushResultFail(pobj, verifyResult, "fq->pushOrderBusinessByProductCode2Fq->verifyResult", this.pushlogFailType.FQ);
......@@ -41,7 +43,7 @@ class UtilsFqAliyunService extends AppServiceBase {
idempotentId: orderInfo.orderNo,// 是 业务 ID
idempotentSource: productInfo.service_business_code,// 是 业务来源(ic_jdyun、ic_ali)
idempotentSourceName: productInfo.service_business_name || productInfo.service_business_code,// 是 京东云应用、阿里云应用
city: "",// 否 所属城市
area: productInfo.price_item.price_desc,// 否 所属城市
phone: orderContact.mobile,// 是 手机号
userId: orderInfo.channelUserId,// 否 用户 ID
companyName: "",// 否 公司名称
......
......@@ -31,7 +31,6 @@ class UtilsOrderService extends AppServiceBase {
return system.getResult(null, "支付价格payCode信息有误,100050");
}
var totalSum = Number(price_list[productIndex].price) * Number(actionBody.quantity);
var additions = null;
var additionsIndex = -1;
if (actionBody.additions && actionBody.additions.payCode) {
additionsIndex = price_list.findIndex(f => f.pay_code == actionBody.additions.payCode && f.is_show == 0);
......@@ -75,26 +74,35 @@ class UtilsOrderService extends AppServiceBase {
}
pobj.actionType = "getProductDetail";
var url = settings.centerAppUrl() + "action/opProduct/springBoard";
var productItemResult = await this.restPostUrl(pobj, url);
var productItemResult = await this.execPostByTimeOut(null, pobj, url);
if (productItemResult.status != 0) {
return productItemResult;
}
pobj.actionBody.product_info = productItemResult.data;
if (productItemResult.data.status != 0) {
return productItemResult.data;
}
pobj.actionBody.product_info = productItemResult.data.data;
var verifyResult = await this.isOrderVerify(pobj, pobj.actionBody);
if (verifyResult.status != 0) {
return verifyResult;
}
pobj.actionType = "getProductInterface";
pobj.actionBody.product_id = pobj.actionBody.product_info.id;
var productItemInterfaceResult = await this.restPostUrl(pobj, url);
pobj.actionBody.product_info.interface_info = productItemInterfaceResult.data;
var productItemInterfaceResult = await this.execPostByTimeOut(null, pobj, url);
pobj.actionBody.product_info.interface_info = productItemInterfaceResult.data.data;
pobj.actionType = "addOrder";
var reqUrl = this.centerOrderUrl + "action/order/springBoard";
// console.log(pobj);
var result = await this.restPostUrl(pobj, reqUrl);
result.totalSum = actionBody.totalSum;
return result;
var result = await this.execPostByTimeOut(null, pobj, reqUrl);
if (result.status != 0) {
return result;
}
if (result.data.status != 0) {
return result.data;
}
result.data.totalSum = actionBody.totalSum;
return result.data;
}
async delOrder(pobj, actionBody) {
if (!actionBody.orderNo) {
......@@ -917,7 +925,7 @@ class UtilsOrderService extends AppServiceBase {
opOrderResult.data = null;
return opOrderResult;
}
if(!opOrderResult.data){
if (!opOrderResult.data) {
return opOrderResult;
}
opOrderResult.data.appInfo = {
......@@ -933,7 +941,7 @@ class UtilsOrderService extends AppServiceBase {
};
opOrderResult.data.orderNo = params.orderNo;
opOrderResult.data.order_info.pay_flow_no = params.trade_no || "";// 2020 0704 lin 新增 推送fq必填字段
opOrderResult.data.order_info.pay_channel = params.payType ||"";//付款方式
opOrderResult.data.order_info.pay_channel = params.payType || "";//付款方式
opOrderResult.data.order_info.pay_time = params.payTime;//付款时间
opOrderResult.data.order_info.pay_payer_bank_no = params.buyer_email || "";//付款账号
opOrderResult.data.order_contact = opOrderResult.data.delivery_content.orderContact;
......@@ -945,7 +953,7 @@ class UtilsOrderService extends AppServiceBase {
// 推送
this.utilsPushSve.pushBusInfo(pobj, "pushOrder", 0);
if(['icpsq','edisq'].includes(opOrderResult.data.product_info.channel_item_code)){
if (['icpsq', 'edisq'].includes(opOrderResult.data.product_info.channel_item_code)) {
this.utilsPushSve.aliBusiness2Delivery(pobj, "pushDeliveryOrder");
}
opOrderResult.data = null;
......@@ -1007,13 +1015,13 @@ class UtilsOrderService extends AppServiceBase {
// 修改并返回订单支付状 态,创建收款单
// 根据合同号获取所有订单 循环修改order_info 信息
let seaUrl = this.centerOrderUrl + 'opaction/opPayOrder/getOrderListByOrderServiceNo';
let seaRet = await this.restPostUrl(params,seaUrl);
if(seaRet.status!=0){
seaRet.data= null;
let seaRet = await this.restPostUrl(params, seaUrl);
if (seaRet.status != 0) {
seaRet.data = null;
return seaRet;
}
let orderList = seaRet.data;
for(let i=0;i<orderList.length;i++){
for (let i = 0; i < orderList.length; i++) {
params.orderNo = orderList[i].orderNo;
// 这里修改了order_info的状态(status/paytime等)
var orderUrl = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotifyByChannel";
......@@ -1022,7 +1030,7 @@ class UtilsOrderService extends AppServiceBase {
opOrderResult.data = null;
continue;
}
if(!opOrderResult.data){
if (!opOrderResult.data) {
// return opOrderResult;
continue;
}
......@@ -1039,7 +1047,7 @@ class UtilsOrderService extends AppServiceBase {
};
opOrderResult.data.orderNo = params.orderNo;
opOrderResult.data.order_info.pay_flow_no = params.trade_no || "";// 2020 0704 lin 新增 推送fq必填字段
opOrderResult.data.order_info.pay_channel = params.payType ||"";//付款方式
opOrderResult.data.order_info.pay_channel = params.payType || "";//付款方式
opOrderResult.data.order_info.pay_time = params.payTime;//付款时间
opOrderResult.data.order_info.pay_payer_bank_no = params.buyer_email || "";//付款账号
opOrderResult.data.order_contact = opOrderResult.data.delivery_content.orderContact;
......@@ -1184,15 +1192,15 @@ class UtilsOrderService extends AppServiceBase {
}
//增加常用联系人,常用申请人
async addUsuallyContacts(pobj,actionBody){
async addUsuallyContacts(pobj, actionBody) {
if (!actionBody.channel_user_id) {
return system.getResultFail(-1, "渠道用户id不能为空");
}
if (!actionBody.contacts){
return system.getResultFail(-1,'用户信息不能为空')
if (!actionBody.contacts) {
return system.getResultFail(-1, '用户信息不能为空')
}
if(Object.keys(actionBody.contacts).length<0){
return system.getResultFail(-1,'用户信息不能为空')
if (Object.keys(actionBody.contacts).length < 0) {
return system.getResultFail(-1, '用户信息不能为空')
}
var reqUrl = this.centerOrderUrl + "action/tmOrder/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
......@@ -1200,9 +1208,9 @@ class UtilsOrderService extends AppServiceBase {
}
//删除常用联系人,常用申请人
async delUsuallyContacts(pobj,actionBody){
if(!actionBody.id){
return system.getResultFail(-1,'id不能为空')
async delUsuallyContacts(pobj, actionBody) {
if (!actionBody.id) {
return system.getResultFail(-1, 'id不能为空')
}
var reqUrl = this.centerOrderUrl + "action/tmOrder/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
......@@ -1210,15 +1218,15 @@ class UtilsOrderService extends AppServiceBase {
}
//修改常用联系人,常用申请人
async updateUsuallyContacts(pobj,actionBody){
if(!actionBody.id){
return system.getResultFail(-1,'id 不能为空');
async updateUsuallyContacts(pobj, actionBody) {
if (!actionBody.id) {
return system.getResultFail(-1, 'id 不能为空');
}
if(!actionBody.channel_user_id){
return system.getResultFail(-1,'id 不能为空');
if (!actionBody.channel_user_id) {
return system.getResultFail(-1, 'id 不能为空');
}
if(Object.keys(actionBody.contacts).length<0){
return system.getResultFail(-1,'信息不能为空');
if (Object.keys(actionBody.contacts).length < 0) {
return system.getResultFail(-1, '信息不能为空');
}
var reqUrl = this.centerOrderUrl + "action/tmOrder/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
......@@ -1226,9 +1234,9 @@ class UtilsOrderService extends AppServiceBase {
}
//查询常用联系人,常用申请人
async getUsuallyContacts(pobj,actionBody){
if(!actionBody.channel_user_id){
return system.getResultFail(-1,'用户id不能为空')
async getUsuallyContacts(pobj, actionBody) {
if (!actionBody.channel_user_id) {
return system.getResultFail(-1, '用户id不能为空')
}
var reqUrl = this.centerOrderUrl + "action/tmOrder/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
......@@ -1236,55 +1244,55 @@ class UtilsOrderService extends AppServiceBase {
}
//创建订单 官网
async addOrderWeb(pobj,actionBody){
async addOrderWeb(pobj, actionBody) {
if (!actionBody.quantity || Number(actionBody.quantity) <= 0) {
return system.getResult(null, "订单数量为空或有误,100030");
}
if(!actionBody.goodsId){
if (!actionBody.goodsId) {
return system.getResult(null, "官网产品id不能为空")
}
if(!actionBody.customerId){
return system.getResult(null,'客户Id不能为空')
if (!actionBody.customerId) {
return system.getResult(null, '客户Id不能为空')
}
if(actionBody.deliveryData.nclones.length<=0){
return system.getResult(null,'尼斯不能为空')
if (actionBody.deliveryData.nclones.length <= 0) {
return system.getResult(null, '尼斯不能为空')
}
if (actionBody.quantity !=actionBody.deliveryData.nclones.length || Number(actionBody.quantity) !=actionBody.deliveryData.nclones.length) {
if (actionBody.quantity != actionBody.deliveryData.nclones.length || Number(actionBody.quantity) != actionBody.deliveryData.nclones.length) {
return system.getResult(null, "订单数量有误,100030");
}
let nclones = actionBody.deliveryData.nclones;//大项集合
let product_item = [];//产品项
for(let i = 0;i < nclones.length ; i ++){
for (let i = 0; i < nclones.length; i++) {
let nclone = nclones[i];
if(nclone.nclThree.length >10){
if (nclone.nclThree.length > 10) {
actionBody.additions = {
"payCode": "zzsbzc-2", // Y 支付价格code
"quantity":nclone.nclThree.length - 10// Y 购买数量
"payCode": "zzsbzc-2", // Y 支付价格code
"quantity": nclone.nclThree.length - 10// Y 购买数量
}
}
actionBody.totalSum = 0;
actionBody.quantity = 1;
actionBody.deliveryData.nclones = [nclone]
actionBody.payTotalSum = actionBody.totalSum;
let saveResult = await this.addOrder(pobj,actionBody);
if(saveResult.status !=0){
let saveResult = await this.addOrder(pobj, actionBody);
if (saveResult.status != 0) {
return saveResult;
}
let obj = {
idempotentId:saveResult.data.orderNo,//商标注册订单id
nclCount:nclone.nclThree.length - 10 >0 ? nclone.nclThree.length - 10 :0//小项数量
idempotentId: saveResult.data.orderNo,//商标注册订单id
nclCount: nclone.nclThree.length - 10 > 0 ? nclone.nclThree.length - 10 : 0//小项数量
}
product_item.push(obj);
}
actionBody.product_item = product_item;
//新增订单(商标自助注册) IC
let icOrderResult = await this.utilsFqAliyunSve.pushOrder2IC(pobj, "pushOrder2IC");
let orderUrl = settings.centerOrderUrl() +'action/order/springBoard';
if(icOrderResult.status !=0){
for(let i =0;i<product_item.length;i++){
let orderUrl = settings.centerOrderUrl() + 'action/order/springBoard';
if (icOrderResult.status != 0) {
for (let i = 0; i < product_item.length; i++) {
actionBody.orderNo = product_item[i].idempotentId;
pobj.actionType = 'delOrder';
let rt = await this.restPostUrl(pobj,orderUrl);
let rt = await this.restPostUrl(pobj, orderUrl);
}
return icOrderResult;
}
......@@ -1293,7 +1301,7 @@ class UtilsOrderService extends AppServiceBase {
pobj.actionType = 'updateOrder';
let orderNos = [];
let orderIds = [];
for(let i =0;i<ids.length;i++){
for (let i = 0; i < ids.length; i++) {
let orderNo = ids[i].idempotentId;
let contractNo = ids[i].contractNo;
orderNos.push(ids[i].orderNo)
......@@ -1302,9 +1310,9 @@ class UtilsOrderService extends AppServiceBase {
actionBody.channelServiceNo = contractNo;
actionBody.channelOrderNo = ids[i].orderNo;
actionBody.orderServiceNo = orderServiceNo;
let rest = await this.restPostUrl(pobj,orderUrl);
let rest = await this.restPostUrl(pobj, orderUrl);
}
let result ={
let result = {
orderNos,
orderIds
}
......@@ -1312,9 +1320,9 @@ class UtilsOrderService extends AppServiceBase {
}
//获取支付记录
async getPayRecords(pobj,actionBody){
async getPayRecords(pobj, actionBody) {
let url = this.centerOrderUrl + 'opaction/opPayOrder/getPayRecords';
let result = await this.restPostUrl(pobj,url);
let result = await this.restPostUrl(pobj, url);
return result;
}
}
......
......@@ -92,6 +92,7 @@ class ExecClientNew {
this.execLogs(execFile + "执行execPostTimeOutByBusiness,errorInfo信息为请求的返回结果", params, params.identifyCode, reqResult, rtn);
return reqResult;
} catch (error) {
console.log("执行execPostByTimeOut存在异常", error.stack);
reqResult = system.getResultFail(-200, execFile + "执行execPostByTimeOut存在异常");
reqResult.requestId = requestId || uuid.v1();
this.execLogs(execFile + "执行execPostByTimeOut存在异常", params, params.identifyCode, reqResult, error.stack);
......
......@@ -27,10 +27,10 @@ module.exports = function (app) {
app.all('*', function (req, res, next) {
req.objs = system;
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild,Authorization,XAPPKEY,XFROMAPPKEY,XFROMCOMPANYKEY,XREGROLE,XBIZPATH,token');
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild,Authorization,XAPPKEY,XFROMAPPKEY,XFROMCOMPANYKEY,XREGROLE,XBIZPATH,token,userpin');
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
// res.header('Access-Control-Allow-Credentials', 'true');
res.header('content-type', 'text/html;charset=UTF-8');
res.header('content-type', 'application/json;charset=UTF-8');
if (req.method == 'OPTIONS') {
res.send(200); //让options请求快速返回/
}
......
......@@ -205,12 +205,7 @@ module.exports = function (app) {
try {
var client_ip = system.get_client_ip(req);
let result ={};
const orderNo = req.body.orderNo;
if(orderNo.indexOf('CN') ==0){
result = await utilsOrderSve.channelOrdersPayNotify(req.body,client_ip);
}else{
result = await utilsOrderSve.channelPayNotify(req.body, client_ip);
}
result = await utilsOrderSve.channelPayNotify(req.body, client_ip);
logCtl.info({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "渠道支付订单通知 api层",
op: "center-channel/orderNotify/channelPayNotify",
......@@ -415,6 +410,13 @@ module.exports = function (app) {
res.end(JSON.stringify(result));
return;
}
var sign = req.headers["sign"] || "";
if (!sign) {
result.msg = "req headers sign can not be empty";
result.data = null;
res.end(JSON.stringify(result));
return;
}
//1.通过appkey 获取appInfo
var appRes = await signSve.getAppInfoByAppKey(appkey);
if(!appRes || appRes.status!=0){
......@@ -425,6 +427,7 @@ module.exports = function (app) {
}
var appInfo = appRes.data;
//2.通过appsecret 验签
req.body.sign = sign;
var signParams = req.body;
var verifyRes = await signSve.verifySign(req.body,appInfo.uapp_secret);
if(verifyRes && verifyRes.status==0){
......
......@@ -150,7 +150,7 @@ var settings = {
},
centerChannelUrl: function () {
if (this.env == "dev") {
return "http://60.205.209.94:4012/"
return "http://localhost:4012/"
} else {
// return "channel的正式环境" 6.30修改目前只用作生成alipay/wx的通知回调地址
return "http://youke.qifu.gongsibao.com/"
......@@ -239,14 +239,14 @@ var settings = {
if (this.env == "dev") {
return "https://oauth2.e.360.cn/site/token"// 360测试环境
} else {
return ""//
return "https://oauth2.e.360.cn/site/token"//
}
},
requestUrl360: function () {
if (this.env == "dev") {
return "http://180.163.239.98:38085/"// 360测试环境
} else {
return ""//
return "http://180.163.239.98:38085/"//
}
},
aliUappId: function () {
......
......@@ -67,4 +67,6 @@
  1 [需求相关接口](doc/api/platform/opNeed.md)
## 21. 诊断运营端相关接口
  1 [诊断运营端相关接口](doc/api/appDesc/diagnosisneedbusDesc.md)
\ No newline at end of file
  1 [诊断运营端相关接口](doc/api/appDesc/diagnosisneedbusDesc.md)
## 22. 百度ICP对接相关接口
  1 [ICP订单接口](doc/api/platform/baiduIcp.md)
\ No newline at end of file
<a name="menu" href="/doc">返回主目录</a>
1. [接口调用说明](#interfaceDesc)
1. [同步需求给服务商](#consultationsubmit)
## **<a name="interfaceDesc"> 接口调用说明</a>**
[返回到目录](#menu)
##### 接口描述
统一的接口调用,调用其他接口参考此示例
#### sign签名规则
所有请求参数(去除sign参数)首字符进行ASCII正序排序,对排序后的参数值进行签名,如:area=1&consultType=5&description=需求测试_001&intentionBizIdI=20200320201737000001&phone=13800138000&userName=李四
其中参数值拼接后最后在加上key,key为获取的密钥信息,拼接后字符串:
area=1&consultType=5&description=需求测试_001&intentionBizIdI=20200320201737000001&phone=13800138000&userName=李四&key=7cbb892450174167b5c7e01we4716t51
之后对拼接的字符串进行md5加密就得到sign值
## **<a name="consultationsubmit"> 同步需求给服务商</a>**
[返回到目录](#menu)
##### 接⼝描述
合作方⽤户提交服务咨询后(需求订单),调⽤服务商接⼝提交服务咨询信息
##### URL
[/api/icp/consultation/submit]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加appkey的值
#### 请求参数
#### 参数示例
``` javascript
{
"intentionBizId": "zhuangbingceshi008",
"phone": "13075556693",
"userName": "庄冰",
"description": "1111111111111222",
"area": "1",
"consultType": 5,
"sign": "2713C75F75B0713E525EEB39BB7D5BD3"
}
```
#### 返回结果
```javascript
{
"status": 0,// 0为成功,否则失败
"msg": "success",
"data":null,
"requestId": "a277fb799d9f4dda9053fb8830f9d252"
}
```
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