Commit 89eb3877 by 宋毅

tj

parent 3da8e404
...@@ -43,6 +43,9 @@ class ProductAPI extends APIBase { ...@@ -43,6 +43,9 @@ class ProductAPI extends APIBase {
case "getOrderLogInfo"://获取订单日志信息 case "getOrderLogInfo"://获取订单日志信息
opResult = await this.utilsOrderSve.getOrderLogInfo(pobj, pobj.actionBody); opResult = await this.utilsOrderSve.getOrderLogInfo(pobj, pobj.actionBody);
break; break;
case "delOrder"://删除订单
opResult = await this.utilsOrderSve.delOrder(pobj, pobj.actionBody);
break;
// case "getIcbcOrderDetails"://获取工商详情 // case "getIcbcOrderDetails"://获取工商详情
// opResult = await this.utilsOrderSve.addOrder(pobj, pobj.actionBody); // opResult = await this.utilsOrderSve.addOrder(pobj, pobj.actionBody);
// break; // break;
......
...@@ -8,7 +8,9 @@ class UtilsOrderService extends AppServiceBase { ...@@ -8,7 +8,9 @@ class UtilsOrderService extends AppServiceBase {
this.utilsPushSve = system.getObject("service.utilsSve.utilsPushSve"); this.utilsPushSve = system.getObject("service.utilsSve.utilsPushSve");
this.logCtl = system.getObject("service.common.oplogSve"); this.logCtl = system.getObject("service.common.oplogSve");
this.centerOrderUrl = settings.centerOrderUrl(); this.centerOrderUrl = settings.centerOrderUrl();
this.tlPayNotifyUrl = settings.tlPayNotifyUrl(); this.qifuPayAfterH5JumpUrl = settings.qifuPayAfterH5JumpUrl();
this.qifuPayAfterPcJumpUrl = settings.qifuPayAfterPcJumpUrl();
this.qifuH5PayNotifyUrl = settings.qifuH5PayNotifyUrl();
this.centerAppUrl = settings.centerAppUrl(); this.centerAppUrl = settings.centerAppUrl();
this.centerAppPayUrl = settings.centerAppUrl() + "payment/paymentApi/springBoard"; this.centerAppPayUrl = settings.centerAppUrl() + "payment/paymentApi/springBoard";
}; };
...@@ -80,6 +82,14 @@ class UtilsOrderService extends AppServiceBase { ...@@ -80,6 +82,14 @@ class UtilsOrderService extends AppServiceBase {
result.totalSum = actionBody.totalSum; result.totalSum = actionBody.totalSum;
return result; return result;
} }
async delOrder(pobj, actionBody) {
if (!actionBody.orderNo) {
return system.getResult(null, "actionBody.orderNo can not be empty,100025");
}
var reqUrl = this.centerOrderUrl + "action/order/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
return result;
}
async getOrderInfo(pobj, actionBody) { async getOrderInfo(pobj, actionBody) {
var reqUrl = this.centerOrderUrl + "action/order/springBoard"; var reqUrl = this.centerOrderUrl + "action/order/springBoard";
var result = await this.restPostUrl(pobj, reqUrl); var result = await this.restPostUrl(pobj, reqUrl);
...@@ -131,7 +141,7 @@ class UtilsOrderService extends AppServiceBase { ...@@ -131,7 +141,7 @@ class UtilsOrderService extends AppServiceBase {
/** /**
* 获取H5支付地址 * 获取H5支付地址
* @param {*} pobj * @param {*} pobj
* @param {*} actionBody {orderNo:XXXX} * @param {*} actionBody
*/ */
async getH5PayUrl(pobj, actionBody) { async getH5PayUrl(pobj, actionBody) {
if (!actionBody.orderNo) { if (!actionBody.orderNo) {
...@@ -143,11 +153,11 @@ class UtilsOrderService extends AppServiceBase { ...@@ -143,11 +153,11 @@ class UtilsOrderService extends AppServiceBase {
if (orderResult.status != 0) { if (orderResult.status != 0) {
return orderResult; return orderResult;
} }
// pobj.actionBody.body_desc, pobj.actionBody.total_fee, pobj.actionBody.order_num, pobj.actionBody.returl
pobj.actionBody.body_desc = orderResult.data.orderProduct.channelItemName; pobj.actionBody.body_desc = orderResult.data.orderProduct.channelItemName;
pobj.actionBody.total_fee = Number(orderResult.data.receiptVoucher.totalSum) * 100; pobj.actionBody.total_fee = Number(orderResult.data.receiptVoucher.totalSum) * 100;
pobj.actionBody.order_num = orderResult.data.receiptVoucher.sourceOrderNo; pobj.actionBody.order_num = orderResult.data.receiptVoucher.sourceOrderNo;
pobj.actionBody.returl = this.tlPayNotifyUrl; pobj.actionBody.returl = orderResult.data.orderProduct.payAfterJumpH5Url || this.qifuPayAfterH5JumpUrl;
pobj.actionBody.notify_url = this.qifuH5PayNotifyUrl;
pobj.actionType = "getH5PayUrl"; pobj.actionType = "getH5PayUrl";
var result = await this.restPostUrl(pobj, this.centerAppPayUrl); var result = await this.restPostUrl(pobj, this.centerAppPayUrl);
...@@ -327,7 +337,7 @@ class UtilsOrderService extends AppServiceBase { ...@@ -327,7 +337,7 @@ class UtilsOrderService extends AppServiceBase {
} }
async receiveCallBackNotify(parmas, client_ip) { async receiveCallBackNotify(parmas, client_ip) {
try { try {
if (!parmas) { if (!parmas || !parmas.trxcode) {
return system.getResult(null, "回调parmas中参数信息为空,100250"); return system.getResult(null, "回调parmas中参数信息为空,100250");
} }
//日志记录 //日志记录
...@@ -337,28 +347,14 @@ class UtilsOrderService extends AppServiceBase { ...@@ -337,28 +347,14 @@ class UtilsOrderService extends AppServiceBase {
content: JSON.stringify(parmas), content: JSON.stringify(parmas),
clientIp: client_ip || "" clientIp: client_ip || ""
}); });
if (parmas.trxstatus && parmas.trxstatus == "0000") { var param = {
var url = this.centerAppUrl + "payment/paymentApi/getAppInfo"; "actionBody": { parmas: parmas },
var opResult = await this.restPostUrl({ uappId: parmas.uappid }, url); "client_ip": client_ip
if (opResult.status != 0) { };
return opResult; var qftstr = await this.restClient.execPost(param, this.centerAppUrl + "payment/paymentApi/receiveCallBackNotify");
} var qftjson = JSON.parse(qftstr.stdout);
if (!opResult.data) { return qftjson;
return system.getResult(null, "应用数据为空,100260");
}
// var resultSign = await this.verifySign(parmas, opResult.data.appSecret);
// if (!resultSign || resultSign.status < 0) {
// return resultSign;
// }
var result = await this.opBackNotify(parmas, opResult.data);
return result;
}
else if (parmas.trxstatus == "3045") {
return system.getResultFail(-100170, "超时未支付,请刷新页面,100270");
}
return system.getResultFail(-100180, "请及时支付,100280");
} catch (e) { } catch (e) {
// await this.cacheManager["ZxPayLocker"].release(getParams.trxid);//测试时放开
this.logCtl.error({ this.logCtl.error({
optitle: "回调业务处理---error异常", optitle: "回调业务处理---error异常",
op: "center-app/app/base/service/impl/utilsSve/utilstlbankSve.js/receiveCallBackNotify", op: "center-app/app/base/service/impl/utilsSve/utilstlbankSve.js/receiveCallBackNotify",
...@@ -369,12 +365,44 @@ class UtilsOrderService extends AppServiceBase { ...@@ -369,12 +365,44 @@ class UtilsOrderService extends AppServiceBase {
} }
} }
async opBackNotify(parmas, appInfo) { //操作回调业务逻辑 async opBackNotify(parmas, client_ip) { //操作回调业务逻辑
try {
if (!parmas.uappid) {
return system.getResult(null, "uappid参数不能为空,100260");
}
//日志记录
this.logCtl.info({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "回调处理订单参数:,method=" + parmas.trxcode,
op: "center-channel/app/base/service/impl/utilsSve/utilsOrderSve.js/opBackNotify",
content: JSON.stringify(parmas),
clientIp: client_ip || ""
});
var url = this.centerAppUrl + "payment/paymentApi/getAppInfo";
var opResult = await this.restPostUrl({ uappId: parmas.uappid }, url);
if (opResult.status != 0) {
opResult.msg = opResult.msg + ",100270";
return opResult;
}
var appInfo = opResult.data;
var resultSign = await this.verifySign(parmas, appInfo.uapp_secret);
if (!resultSign || resultSign.status != 0) {
return resultSign;
}
//获取充值业务锁 //获取充值业务锁
// await this.cacheManager["TlPayLocker"].init(parmas.out_trade_no);//---测试时放开 // await this.cacheManager["TlPayLocker"].init(parmas.out_trade_no);//---测试时放开
var locker = await this.cacheManager["TlPayLocker"].enter(parmas.out_trade_no); var locker = await this.cacheManager["TlPayLocker"].enter(parmas.out_trade_no);
if (locker && locker == "1") { if (!locker || locker != "1") {
this.logCtl.info({
appid: appInfo.uapp_id,
appkey: appInfo.uapp_key,
op: "center-channel/app/base/service/impl/utilsSve/utilsOrderSve.js/opBackNotify",
content: "参数=" + JSON.stringify(parmas),
clientIp: parmas.client_ip || "",
optitle: "通联回调操作频繁---太频繁了,太频繁了"
});
return system.getResultFail(-200, "回调操作频繁---太频繁了,太频繁了");
}
if (parmas.trxcode == "VSP501") { if (parmas.trxcode == "VSP501") {
parmas.pay_type = "wx"; parmas.pay_type = "wx";
} else { } else {
...@@ -386,25 +414,26 @@ class UtilsOrderService extends AppServiceBase { ...@@ -386,25 +414,26 @@ class UtilsOrderService extends AppServiceBase {
var url = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotify"; var url = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotify";
var opResult = await this.restPostUrl(parmas, url); var opResult = await this.restPostUrl(parmas, url);
if (opResult.status == 0) { if (opResult.status == 0) {
opResult.data.appInfo = {
app_code: appInfo.app_code,
app_name: appInfo.app_name
};
await this.utilsPushSve.pushInfo(opResult.data, "pushBusiness"); await this.utilsPushSve.pushInfo(opResult.data, "pushBusiness");
await this.utilsPushSve.pushInfo(opResult.data, "pushOrder"); await this.utilsPushSve.pushInfo(opResult.data, "pushOrder");
} }
opResult.data = null; // opResult.data = null;
return opResult; return opResult;
}
else { } catch (e) {
// await this.cacheManager["TlPayLocker"].release(parmas.out_trade_no);//---测试时放开 await this.cacheManager["TlPayLocker"].release(parmas.out_trade_no);
this.logCtl.info({ this.logCtl.error({
appid: appInfo.uapp_id, optitle: "回调处理订单---error异常",
appkey: appInfo.uapp_key, op: "center-app/app/base/service/impl/utilsSve/utilstlbankSve.js/opBackNotify",
op: "center-channel/app/base/service/impl/utilsSve/utilsOrderSve.js/opBackNotify", content: "参数=" + JSON.stringify(parmas) + ",error:" + e.stack,
content: "参数=" + JSON.stringify(parmas), clientIp: client_ip || ""
clientIp: parmas.client_ip || "",
optitle: "通联回调操作频繁---太频繁了,太频繁了"
}); });
return system.getResultFail(-200, "回调操作频繁---太频繁了,太频繁了"); return system.getResultFail(-200, e.stack);
} }
} }
} }
module.exports = UtilsOrderService; module.exports = UtilsOrderService;
...@@ -7,6 +7,7 @@ const utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve"); ...@@ -7,6 +7,7 @@ const utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve");
module.exports = function (app) { module.exports = function (app) {
//-----------------------新的模式------------------开始 //-----------------------新的模式------------------开始
app.use('/tlpay/notify', async function (req, res) { app.use('/tlpay/notify', async function (req, res) {
try {
var client_ip = system.get_client_ip(req); var client_ip = system.get_client_ip(req);
var result = await utilsOrderSve.receiveCallBackNotify(req.body, client_ip); var result = await utilsOrderSve.receiveCallBackNotify(req.body, client_ip);
logCtl.info({ logCtl.info({
...@@ -15,9 +16,39 @@ module.exports = function (app) { ...@@ -15,9 +16,39 @@ module.exports = function (app) {
content: "回调参数:" + JSON.stringify(req.body) + "回调结果:" + JSON.stringify(result), content: "回调参数:" + JSON.stringify(req.body) + "回调结果:" + JSON.stringify(result),
clientIp: client_ip || "" clientIp: client_ip || ""
}); });
res.end(result); if (result.status != 0) {
return res.end("FAIL");
}
return res.end("success");
} catch (error) {
logCtl.error({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "记录回调处理结果异常:,method=" + req.body.trxcode,
op: "center-channel/tlpay/notify",
content: "回调参数:" + JSON.stringify(req.body) + "error:" + error.stack,
clientIp: client_ip || ""
});
}
});
app.use('/tlpay/opBackNotify', async function (req, res) {
try {
var client_ip = system.get_client_ip(req);
var result = await utilsOrderSve.opBackNotify(req.body, client_ip);
logCtl.info({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "回调处理订单结果:,method=" + req.body.trxcode,
op: "center-channel/tlpay/opBackNotify",
content: "回调参数:" + JSON.stringify(req.body) + "回调处理订单结果:" + JSON.stringify(result),
clientIp: client_ip || ""
});
res.end(JSON.stringify(result));
} catch (error) {
logCtl.error({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "记录回调处理结果异常:,method=" + req.body.trxcode,
op: "center-channel/tlpay/opBackNotify",
content: "回调参数:" + JSON.stringify(req.body) + "error:" + error.stack,
clientIp: client_ip || ""
});
}
}); });
app.all("/web/*", async function (req, res, next) { app.all("/web/*", async function (req, res, next) {
var result = system.getResult(null, "req method must is post"); var result = system.getResult(null, "req method must is post");
if (req.method != "POST") { if (req.method != "POST") {
...@@ -56,7 +87,7 @@ module.exports = function (app) { ...@@ -56,7 +87,7 @@ module.exports = function (app) {
req.body.actionProcess = result.data.app_code; req.body.actionProcess = result.data.app_code;
var lst = [ var lst = [
"addOrder", "getH5PayUrl", "getOrderQrCode", "queryOrderStatus", "getOrderInfo", "getOrderDeliveryInfo", "addOrder", "getH5PayUrl", "getOrderQrCode", "queryOrderStatus", "getOrderInfo", "getOrderDeliveryInfo",
"getOrderDeliveryFlowInfo", "getOrderDeliveryFlowList", "getOrderLogInfo", "updateContacts", "updateTmOrder", "getOrderDeliveryFlowInfo", "getOrderDeliveryFlowList", "getOrderLogInfo", "updateContacts", "updateTmOrder","delOrder",
"getNeedInfo",//---暂时没有用到 "getNeedInfo",//---暂时没有用到
"tmConfirm", "updateTmInfo", "tmConfirm", "updateTmInfo",
"updateNclInfo", "updateContacts", "updateNclInfo", "updateContacts",
......
...@@ -20,7 +20,21 @@ var settings = { ...@@ -20,7 +20,21 @@ var settings = {
usertimeout: 3600,//单位秒 usertimeout: 3600,//单位秒
basepath: path.normalize(path.join(__dirname, '../..')), basepath: path.normalize(path.join(__dirname, '../..')),
port: process.env.NODE_PORT || 4012, port: process.env.NODE_PORT || 4012,
tlPayNotifyUrl: function () { qifuPayAfterH5JumpUrl: function () {
if (this.env == "dev") {
return "http://tm.qifu.gongsibao.com:4012/#/home/indent_list";
} else {
return "http://gsb.qifu.gongsibao.com/tlpay/notify";
}
},
qifuPayAfterPcJumpUrl: function () {
if (this.env == "dev") {
return "http://tm.qifu.gongsibao.com:4012/#/home/indent_list";
} else {
return "http://gsb.qifu.gongsibao.com/tlpay/notify";
}
},
qifuH5PayNotifyUrl: function () {
if (this.env == "dev") { if (this.env == "dev") {
return "http://gsb.qifu.gongsibao.com:4012/tlpay/notify"; return "http://gsb.qifu.gongsibao.com:4012/tlpay/notify";
} else { } else {
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
1. [下其他订单](#addOtherOrder) 1. [下其他订单](#addOtherOrder)
1. [获取订单列表信息](#getOrderInfo) 1. [获取订单列表信息](#getOrderInfo)
1. [获取订单操作日志信息](#getOrderLogInfo) 1. [获取订单操作日志信息](#getOrderLogInfo)
1. [删除订单](#delOrder)
## **<a name="addOrder"> 下商标订单</a>** ## **<a name="addOrder"> 下商标订单</a>**
...@@ -58,7 +59,7 @@ ...@@ -58,7 +59,7 @@
"colorizedPicUrl": "https://gsb-zc.oss-cn-beijing.aliyuncs.com/zc_word2picb2bc98b9fc564ef2a1f4b3cbe9352f39.jpg",//商标彩色图样 "colorizedPicUrl": "https://gsb-zc.oss-cn-beijing.aliyuncs.com/zc_word2picb2bc98b9fc564ef2a1f4b3cbe9352f39.jpg",//商标彩色图样
"tmName": "testbiao",//商标名称 "tmName": "testbiao",//商标名称
"picUrl": "https://gsb-zc.oss-cn-beijing.aliyuncs.com/zc_word2picb2bc98b9fc564ef2a1f4b3cbe9352f39.jpg",//商标图样 "picUrl": "https://gsb-zc.oss-cn-beijing.aliyuncs.com/zc_word2picb2bc98b9fc564ef2a1f4b3cbe9352f39.jpg",//商标图样
"tmFormType": "3"//商标类型形式:1: 立体, 3: 字, 4: 图, 5: 字图, 6: 颜色, 7: 彩色 "tmFormType": "3"//商标类型形式: "3": 字, "4": 图, "5": 字图
}, },
"nclones": [ "nclones": [
{ {
...@@ -276,3 +277,31 @@ ...@@ -276,3 +277,31 @@
} }
``` ```
## **<a name="delOrder"> 删除订单</a>**
[返回到目录](#menu)
##### URL
[/web/opaction/order/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加userpin(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:delOrder
``` javascript
{
"orderNo":"TM26202002271337mkgN"// Y 订单号
}
```
#### 返回结果
```javascript
{
"status": 0,// 0为成功,否则失败
"msg": "success",
"data":null,
"requestId": "f21446617c5e46ad889f3fab7bb69456"
}
```
\ 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