Commit 6e04aa48 by 宋毅

tj

parent 16167a82
......@@ -181,6 +181,33 @@ class tmqueryCtl extends CtlBase {
var resultTmpSign = md5(resultSignStr).toUpperCase();
return system.getResultSuccess(resultTmpSign);
}
async getUserIdEncryptStr(pobj, qobj, req) {
try {
var tokenInfo = await this.getToken(pobj.actionProcess);
if (tokenInfo.status != 0) {
return tokenInfo;
}
//有返回用户信息进行用户ID加密
var param = {
actionProcess: pobj.actionProcess,
actionType: "encryptStr",
actionBody: { channelUserId: pobj.channelUserId, opStr: pobj.channelUserId },
isUser: "yes"
};
var reqUrl = this.channelApiUrl + "/action/tmTools/springBoard";
var resultUser = await this.execClient.execPostTK(param, reqUrl, tokenInfo.data.token);
if (!resultUser) {
return system.getResult(null, "req encrypt userId is error");
}
if (resultUser.status != 0) {
return system.getResult(null, "encrypt userId is error");
}
return resultUser;
} catch (error) {
console.log(error.stack, "操作error...................");
return system.getResultFail(-200, "操作error");
}
}
async getUserInfoTest(pobj, qobj, req) {
try {
var tokenInfo = await this.getToken(pobj.actionProcess);
......@@ -211,6 +238,17 @@ class tmqueryCtl extends CtlBase {
this.logClient.info("jd", "getUserInfo----->req参数:" + JSON.stringify(pobj));
if (req.session.userPinInfo) {
this.logClient.info("jd", "req.session.userPinInfo true 参数:" + JSON.stringify(req.session.userPinInfo));
if (!req.session.userPinInfo.encryptChannelUserId) {
pobj.channelUserId = req.session.userPinInfo.channelUserId;
var userIdEncryptStrResult = await this.getUserIdEncryptStr(pobj);
this.logClient.info("jd", "req.session.userPinInfo userIdEncryptStrResult 结果1111111:" + JSON.stringify(userIdEncryptStrResult));
if (userIdEncryptStrResult && userIdEncryptStrResult.status == 0) {
req.session.userPinInfo.encryptChannelUserId = userIdEncryptStrResult.data;
}//重新加密成功
else {
return userIdEncryptStrResult;
}
}
return system.getResultSuccess({ encryptChannelUserId: req.session.userPinInfo.encryptChannelUserId });
}
......@@ -251,227 +289,247 @@ class tmqueryCtl extends CtlBase {
return system.getResult(null, "处理请求失败");
}
req.session.userPinInfo = resultUser.data;
if (!req.session.userPinInfo.encryptChannelUserId) {
pobj.channelUserId = req.session.userPinInfo.channelUserId;
var userIdEncryptStrResult = await this.getUserIdEncryptStr(pobj);
this.logClient.info("jd", "req.session.userPinInfo userIdEncryptStrResult 结果222222:" + JSON.stringify(userIdEncryptStrResult));
if (userIdEncryptStrResult && userIdEncryptStrResult.status == 0) {
req.session.userPinInfo.encryptChannelUserId = userIdEncryptStrResult.data;
}//重新加密成功
else {
return userIdEncryptStrResult;
}
}
return resultUser;
} catch (error) {
this.logClient.error("jd", "req---->getUserInfo---->error:" + error.stack);
return system.getResultFail(-200, "操作error");
}
}
async opPayPageInfo(pobj, orderResult, req) {
if (!pobj.actionBody.itemCode) {
return system.getResult(null, "itemCode param is not empty");
var reqobj = {
"actionProcess": pobj.actionProcess || "",
"actionType": pobj.actionType || "",
"sign": pobj.sign || "",
"isUser": pobj.isUser || "yes",//是否需要验证用户,no否,yes是
"isDecryptUser": pobj.isDecryptUser || "no",//是否解密用户Id,no否,yes是
"actionBody": pobj.actionBody || null
};
async opPayPageInfo(pobj, orderResult, req) {
if (!pobj.actionBody.itemCode) {
return system.getResult(null, "itemCode param is not empty");
}
if (pobj.actionProcess == "jd") {
var itemCodeList = pobj.actionBody.itemCode.split('-');
if (itemCodeList.length < 2) {
return system.getResult(null, "itemCode is error");
}
if (pobj.actionProcess == "jd") {
var itemCodeList = pobj.actionBody.itemCode.split('-');
if (itemCodeList.length < 2) {
return system.getResult(null, "itemCode is error");
}
var tmpResult = await this.getPayPageAddr(pobj.actionBody.itemCode, itemCodeList, req);
// { result: true,
// data:
// '{"success":true,"code":null,"msg":null,"data":{"orderNumber":"6058867","erpOrderId":"523198741458590844",
// "returnUrl":"https://buy.jdcloud.com/pay?orderId=523198741458590844","saasCheckUrl":null}}' }
var tmpResult = await this.getPayPageAddr(pobj.actionBody.itemCode, itemCodeList, req);
// { result: true,
// data:
// '{"success":true,"code":null,"msg":null,"data":{"orderNumber":"6058867","erpOrderId":"523198741458590844",
// "returnUrl":"https://buy.jdcloud.com/pay?orderId=523198741458590844","saasCheckUrl":null}}' }
console.log(tmpResult, "tmpResult...........opPayPageInfo........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$....");
if (tmpResult && tmpResult.result && tmpResult.result == true) {
var payDataResult = JSON.parse(tmpResult.data);
console.log(payDataResult, "payDataResult...........payDataResult........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$..002..");
if (payDataResult && payDataResult.success && payDataResult.success == true) {
//更新订单信息
await this.putPayOrderData(pobj, orderResult, payDataResult, req);
return system.getResultSuccess({ payUrl: payDataResult.data.returnUrl });
}//成功
}
return system.getResult(null, "pay page is error");
console.log(tmpResult, "tmpResult...........opPayPageInfo........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$....");
if (tmpResult && tmpResult.result && tmpResult.result == true) {
var payDataResult = JSON.parse(tmpResult.data);
console.log(payDataResult, "payDataResult...........payDataResult........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$..002..");
if (payDataResult && payDataResult.success && payDataResult.success == true) {
//更新订单信息
await this.putPayOrderData(pobj, orderResult, payDataResult, req);
return system.getResultSuccess({ payUrl: payDataResult.data.returnUrl });
}//成功
}
return system.getResultSuccess();
return system.getResult(null, "pay page is error");
}
async putPayOrderData(pobj, orderResult, payDataResult, req) {
var tokenInfo = await this.getToken(pobj.actionProcess);
if (tokenInfo.status != 0) {
return tokenInfo;
}
var param = {
actionProcess: pobj.actionProcess,
actionType: "updateOrderStatus",
actionBody: {
channelUserId: req.session.userPinInfo.channelUserId,
orderNo: orderResult.data.orderNo,
channelServiceNo: payDataResult.data.erpOrderId,
needNo: pobj.actionBody.itemCode + "_" + payDataResult.data.orderNumber,
needNoOrderNo: payDataResult.data.orderNumber
},
isUser: "yes"
};
console.log(param, "putPayOrderData########################################333333...........................");
var reqUrl = this.channelApiUrl + "/action/tmOrder/springBoard";
var tmp = await this.execClient.execPostTK(param, reqUrl, tokenInfo.data.token);
console.log(tmp, "putPayOrderData########################################333333..........tmptmptmptmp.................");
return system.getResultSuccess();
}
async putPayOrderData(pobj, orderResult, payDataResult, req) {
var tokenInfo = await this.getToken(pobj.actionProcess);
if (tokenInfo.status != 0) {
return tokenInfo;
}
async getPayPageAddr(itemCode, itemCodeList, req) {
try {
var param = {
actionProcess: pobj.actionProcess,
actionType: "updateOrderStatus",
actionBody: {
channelUserId: req.session.userPinInfo.channelUserId,
orderNo: orderResult.data.orderNo,
channelServiceNo: payDataResult.data.erpOrderId,
needNo: pobj.actionBody.itemCode + "_" + payDataResult.data.orderNumber,
needNoOrderNo: payDataResult.data.orderNumber
},
isUser: "yes"
};
console.log(param, "putPayOrderData########################################333333...........................");
var reqUrl = this.channelApiUrl + "/action/tmOrder/springBoard";
var tmp = await this.execClient.execPostTK(param, reqUrl, tokenInfo.data.token);
console.log(tmp, "putPayOrderData########################################333333..........tmptmptmptmp.................");
}
async getPayPageAddr(itemCode, itemCodeList, req) {
try {
const { Signer, Context } = require('../jd-gateway-sdk');
let ctx = new Context('x3k0s704lfun-test.cn-north-1.jdcloud-api.net', '/market/order/api/submit', 'POST', null, 'empty');
ctx.regionId = 'cn-north-1'
ctx.headers.set('content-type', 'application/json');
const { Signer, Context } = require('../jd-gateway-sdk');
let ctx = new Context('x3k0s704lfun-test.cn-north-1.jdcloud-api.net', '/market/order/api/submit', 'POST', null, 'empty');
ctx.regionId = 'cn-north-1'
ctx.headers.set('content-type', 'application/json');
let credentials = {
accessKeyId: 'C6D680733C19362B5DF478207D6A90A4', //替换自己的AK
secretAccessKey: 'EB9AFEE49CE41700CADD5F2EE3B2122C' //替换自己的SK--jd>>>>>>>
}
let credentials = {
accessKeyId: 'C6D680733C19362B5DF478207D6A90A4', //替换自己的AK
secretAccessKey: 'EB9AFEE49CE41700CADD5F2EE3B2122C' //替换自己的SK--jd>>>>>>>
}
//测试报文:
//ctx.body = "pin=jcloud_pRiHQTd&serviceId=580010&itemCode=FW_GOODS-580010-1&platform=6"
//POST
var qs = require('querystring');
// var post_data = { pin: "syaify", serviceId: 580010, itemCode: "FW_GOODS-580010-1", platform: 6, orderNum: 1, articleType: 1 };//这是需要提交的数据
//测试报文:
//ctx.body = "pin=jcloud_pRiHQTd&serviceId=580010&itemCode=FW_GOODS-580010-1&platform=6"
//POST
var qs = require('querystring');
// var post_data = { pin: "syaify", serviceId: 580010, itemCode: "FW_GOODS-580010-1", platform: 6, orderNum: 1, articleType: 1 };//这是需要提交的数据
var post_data = {
pin: req.session.userPinInfo.channelUserId,
serviceId: itemCodeList[1],
itemCode: itemCode,
platform: 6,
orderNum: 1,
articleType: 1,
additions: '{ \"246\": 0 }'
};//这是需要提交的数据
var post_data = {
pin: req.session.userPinInfo.channelUserId,
serviceId: itemCodeList[1],
itemCode: itemCode,
platform: 6,
orderNum: 1,
articleType: 1,
additions: '{ \"246\": 0 }'
};//这是需要提交的数据
// var tmpContent = '{"pin":"syaify","serviceId":"581976","itemCode":"FW_GOODS-581976","platform":6,"orderNum":1,"articleType":1,"additions":{"246":0}}';
// var tmpContent = '{"pin":"syaify","serviceId":"581976","itemCode":"FW_GOODS-581976","platform":6,"orderNum":1,"articleType":1,"additions":{"246":0}}';
var tmpContent = JSON.stringify(post_data);
var tmpContentLength = Buffer.byteLength(tmpContent);
ctx.body = tmpContent;
var tmpContent = JSON.stringify(post_data);
var tmpContentLength = Buffer.byteLength(tmpContent);
ctx.body = tmpContent;
ctx.method = 'POST'
var signer = new Signer(ctx, credentials);
ctx.headers.set('Content-Length', tmpContentLength)
ctx.buildNonce()
var dd = new Date();
var auth = signer.sign(dd)
ctx.method = 'POST'
var signer = new Signer(ctx, credentials);
ctx.headers.set('Content-Length', tmpContentLength)
ctx.buildNonce()
var dd = new Date();
var auth = signer.sign(dd)
console.log("POST签名为:", auth)
ctx.headers.set('Authorization', auth)
console.log("POST签名为:", auth)
ctx.headers.set('Authorization', auth)
////////////////////////////////////////////////////////////////////////////////////////////////////////////
var http = require('https');
////////////////////////////////////////////////////////////////////////////////////////////////////////////
var http = require('https');
var options = {
host: 'x3k0s704lfun-test.cn-north-1.jdcloud-api.net',
port: 443,
path: '/market/order/api/submit',
method: 'POST',
headers: {
}
};
for (let [key, value] of ctx.headers) {
options.headers[key] = value
var options = {
host: 'x3k0s704lfun-test.cn-north-1.jdcloud-api.net',
port: 443,
path: '/market/order/api/submit',
method: 'POST',
headers: {
}
console.log("\n post options:\n", options);
console.log("\n tmpContent:\n", tmpContent);
var reqResult = await new Promise(function (resolve, reject) {
let req = http.request(options, function (res) {
// res.setEncoding(encoding);
console.log("statusCode: ", res.statusCode);
console.log("headers: ", res.headers);
var _data = '';
res.on('data', function (chunk) {
_data += chunk;
});
res.on('end', function () {
console.log("\n--req---成功->>\nresult:", _data)
resolve({ result: true, data: _data });
});
};
for (let [key, value] of ctx.headers) {
options.headers[key] = value
}
console.log("\n post options:\n", options);
console.log("\n tmpContent:\n", tmpContent);
var reqResult = await new Promise(function (resolve, reject) {
let req = http.request(options, function (res) {
// res.setEncoding(encoding);
console.log("statusCode: ", res.statusCode);
console.log("headers: ", res.headers);
var _data = '';
res.on('data', function (chunk) {
_data += chunk;
});
req.on('error', (e) => {
console.error(`请求遇到问题-------------: ${e.message}`);
resolve({ result: false, errmsg: e.message });
res.on('end', function () {
console.log("\n--req---成功->>\nresult:", _data)
resolve({ result: true, data: _data });
});
req.write(tmpContent);
req.end();
});
req.on('error', (e) => {
console.error(`请求遇到问题-------------: ${e.message}`);
resolve({ result: false, errmsg: e.message });
});
req.write(tmpContent);
req.end();
});
var tmd = 99;
var tmd = 99;
return reqResult;
return reqResult;
// var req = http.request(options, function (res) {
// console.log("statusCode: ", res.statusCode);
// console.log("headers: ", res.headers);
// var _data = '';
// res.on('data', function (chunk) {
// _data += chunk;
// });
// res.on('end', function () {
// console.log("\n--->>\nresult:", _data)
// });
// });
// req.on('error', (e) => {
// console.error(`请求遇到问题-------------: ${e.message}`);
// });
// req.write(tmpContent);
// req.end();
// var tmd = 99;
} catch (errorMsg) {
console.log(errorMsg, "--jd>>>>>>>errorMsg..............................>>>>>>");
return { success: false, code: -200, msg: errorMsg.stack };
}
// var req = http.request(options, function (res) {
// console.log("statusCode: ", res.statusCode);
// console.log("headers: ", res.headers);
// var _data = '';
// res.on('data', function (chunk) {
// _data += chunk;
// });
// res.on('end', function () {
// console.log("\n--->>\nresult:", _data)
// });
// });
// req.on('error', (e) => {
// console.error(`请求遇到问题-------------: ${e.message}`);
// });
// req.write(tmpContent);
// req.end();
// var tmd = 99;
} catch (errorMsg) {
console.log(errorMsg, "--jd>>>>>>>errorMsg..............................>>>>>>");
return { success: false, code: -200, msg: errorMsg.stack };
}
async pushPayOrder(pushData, req) {//处理京东推送的订单信息
try {
var signResult = await this.createSign(pushData, "6B876EB84731E166D76E1F73AD5764BA", true);
if (signResult.status != 0) {
return signResult;
}
if (signResult.data != pushData.token.toUpperCase()) {
return system.getResult(null, "签名错误");
}
var tokenInfo = await this.getToken(pushData.actionProcess);
if (tokenInfo.status != 0) {
return tokenInfo;
}
var param = {};
if (pushData.skuId == "FW_GOODS-581976-1") {
param = {
actionProcess: pushData.actionProcess,
actionType: "updateOrderPayStatus",
actionBody: {
channelUserId: pushData.jdPin,
payStatus: "yfk",
channelItemCode: pushData.serviceCode,
needNoOrderNo: pushData.orderId,
buyerMoblie: pushData.mobile
},
isUser: "yes"
};
}//自助注册产品
else {
//有返回用户信息进行用户ID加密
param = {
actionProcess: pushData.actionProcess,
actionType: "addOrderAndDelivery",
actionBody: {
channelUserId: pushData.jdPin,
needNo: pushData.skuId + "_" + pushData.orderId,
needNoOrderNo: pushData.orderId,
buyerMoblie: pushData.mobile
},
isUser: "yes"
};
}//商标注册【专家辅助申请】、商标注册【担保申请】和 除商标之外的产品
var reqUrl = this.channelApiUrl + "/action/tmOrder/springBoard";
var resultUser = await this.execClient.execPostTK(param, reqUrl, tokenInfo.data.token);
if (!resultUser) {
return system.getResult(null, "req error");
}
return resultUser;
} catch (error) {
console.log(error.stack, "操作error...................");
return system.getResultFail(-200, "操作error");
}
async pushPayOrder(pushData, req) {//处理京东推送的订单信息
try {
var signResult = await this.createSign(pushData, "6B876EB84731E166D76E1F73AD5764BA", true);
if (signResult.status != 0) {
return signResult;
}
if (signResult.data != pushData.token.toUpperCase()) {
return system.getResult(null, "签名错误");
}
var tokenInfo = await this.getToken(pushData.actionProcess);
if (tokenInfo.status != 0) {
return tokenInfo;
}
var param = {};
if (pushData.skuId == "FW_GOODS-581976-1") {
param = {
actionProcess: pushData.actionProcess,
actionType: "updateOrderPayStatus",
actionBody: {
channelUserId: pushData.jdPin,
payStatus: "yfk",
channelItemCode: pushData.serviceCode,
needNoOrderNo: pushData.orderId,
buyerMoblie: pushData.mobile
},
isUser: "yes"
};
}//自助注册产品
else {
//有返回用户信息进行用户ID加密
param = {
actionProcess: pushData.actionProcess,
actionType: "addOrderAndDelivery",
actionBody: {
channelUserId: pushData.jdPin,
needNo: pushData.skuId + "_" + pushData.orderId,
needNoOrderNo: pushData.orderId,
buyerMoblie: pushData.mobile
},
isUser: "yes"
};
}//商标注册【专家辅助申请】、商标注册【担保申请】和 除商标之外的产品
var reqUrl = this.channelApiUrl + "/action/tmOrder/springBoard";
var resultUser = await this.execClient.execPostTK(param, reqUrl, tokenInfo.data.token);
if (!resultUser) {
return system.getResult(null, "req error");
}
return resultUser;
} catch (error) {
console.log(error.stack, "操作error...................");
return system.getResultFail(-200, "操作error");
}
}
}
module.exports = tmqueryCtl;
......@@ -2,7 +2,7 @@
var system = require("../../base/system");
var metaCtl = system.getObject("web.common.metaCtl");
var tmqueryCtl = system.getObject("web.trademark.tmqueryCtl");
// var logClient = system.getObject("util.logClient");
var logClient = system.getObject("util.logClient");
module.exports = function (app) {
app.get("/jdtm/getUser", async function (req, res) {
try {
......@@ -32,8 +32,7 @@ module.exports = function (app) {
var skipUrl = "/#/jd/" + params.state + "?channelUserId=" + encodeURIComponent(userItemResult.data.encryptChannelUserId);
res.redirect(skipUrl);
} catch (error) {
console.log("req---->/jdtm/getUser---->error:" + error.stack);
// logClient.error("jd", "req---->/jdtm/getUser---->error:" + error.stack);
logClient.error("jd", "req---->/jdtm/getUser---->error:" + error.stack);
}
});
app.get("/jdtm/getUserTest", async function (req, res) {
......
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