Commit dc701be7 by 宋毅

tj

parent 6e04aa48
...@@ -306,230 +306,222 @@ class tmqueryCtl extends CtlBase { ...@@ -306,230 +306,222 @@ class tmqueryCtl extends CtlBase {
return system.getResultFail(-200, "操作error"); return system.getResultFail(-200, "操作error");
} }
} }
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) { async opPayPageInfo(pobj, orderResult, req) {
if (!pobj.actionBody.itemCode) { if (!pobj.actionBody.itemCode) {
return system.getResult(null, "itemCode param is not empty"); 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");
} }
var tmpResult = await this.getPayPageAddr(pobj.actionBody.itemCode, itemCodeList, req); if (pobj.actionProcess == "jd") {
// { result: true, var itemCodeList = pobj.actionBody.itemCode.split('-');
// data: if (itemCodeList.length < 2) {
// '{"success":true,"code":null,"msg":null,"data":{"orderNumber":"6058867","erpOrderId":"523198741458590844", return system.getResult(null, "itemCode is error");
// "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........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$...."); console.log(tmpResult, "tmpResult...........opPayPageInfo........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$....");
if (tmpResult && tmpResult.result && tmpResult.result == true) { if (tmpResult && tmpResult.result && tmpResult.result == true) {
var payDataResult = JSON.parse(tmpResult.data); var payDataResult = JSON.parse(tmpResult.data);
console.log(payDataResult, "payDataResult...........payDataResult........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$..002.."); console.log(payDataResult, "payDataResult...........payDataResult........$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$..002..");
if (payDataResult && payDataResult.success && payDataResult.success == true) { if (payDataResult && payDataResult.success && payDataResult.success == true) {
//更新订单信息 //更新订单信息
await this.putPayOrderData(pobj, orderResult, payDataResult, req); await this.putPayOrderData(pobj, orderResult, payDataResult, req);
return system.getResultSuccess({ payUrl: payDataResult.data.returnUrl }); return system.getResultSuccess({ payUrl: payDataResult.data.returnUrl });
}//成功 }//成功
}
return system.getResult(null, "pay page is error");
} }
return system.getResult(null, "pay page is error"); return system.getResultSuccess();
} }
return system.getResultSuccess(); async putPayOrderData(pobj, orderResult, payDataResult, req) {
} var tokenInfo = await this.getToken(pobj.actionProcess);
async putPayOrderData(pobj, orderResult, payDataResult, req) { if (tokenInfo.status != 0) {
var tokenInfo = await this.getToken(pobj.actionProcess); return tokenInfo;
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.................");
} }
var param = { async getPayPageAddr(itemCode, itemCodeList, req) {
actionProcess: pobj.actionProcess, try {
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'); 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'); 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.regionId = 'cn-north-1'
ctx.headers.set('content-type', 'application/json'); ctx.headers.set('content-type', 'application/json');
let credentials = { let credentials = {
accessKeyId: 'C6D680733C19362B5DF478207D6A90A4', //替换自己的AK accessKeyId: 'C6D680733C19362B5DF478207D6A90A4', //替换自己的AK
secretAccessKey: 'EB9AFEE49CE41700CADD5F2EE3B2122C' //替换自己的SK--jd>>>>>>> secretAccessKey: 'EB9AFEE49CE41700CADD5F2EE3B2122C' //替换自己的SK--jd>>>>>>>
} }
//测试报文: //测试报文:
//ctx.body = "pin=jcloud_pRiHQTd&serviceId=580010&itemCode=FW_GOODS-580010-1&platform=6" //ctx.body = "pin=jcloud_pRiHQTd&serviceId=580010&itemCode=FW_GOODS-580010-1&platform=6"
//POST //POST
var qs = require('querystring'); 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: "syaify", serviceId: 580010, itemCode: "FW_GOODS-580010-1", platform: 6, orderNum: 1, articleType: 1 };//这是需要提交的数据
var post_data = { var post_data = {
pin: req.session.userPinInfo.channelUserId, pin: req.session.userPinInfo.channelUserId,
serviceId: itemCodeList[1], serviceId: itemCodeList[1],
itemCode: itemCode, itemCode: itemCode,
platform: 6, platform: 6,
orderNum: 1, orderNum: 1,
articleType: 1, articleType: 1,
additions: '{ \"246\": 0 }' 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 tmpContent = JSON.stringify(post_data);
var tmpContentLength = Buffer.byteLength(tmpContent); var tmpContentLength = Buffer.byteLength(tmpContent);
ctx.body = tmpContent; ctx.body = tmpContent;
ctx.method = 'POST' ctx.method = 'POST'
var signer = new Signer(ctx, credentials); var signer = new Signer(ctx, credentials);
ctx.headers.set('Content-Length', tmpContentLength) ctx.headers.set('Content-Length', tmpContentLength)
ctx.buildNonce() ctx.buildNonce()
var dd = new Date(); var dd = new Date();
var auth = signer.sign(dd) var auth = signer.sign(dd)
console.log("POST签名为:", auth) console.log("POST签名为:", auth)
ctx.headers.set('Authorization', auth) ctx.headers.set('Authorization', auth)
//////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
var http = require('https'); var http = require('https');
var options = { var options = {
host: 'x3k0s704lfun-test.cn-north-1.jdcloud-api.net', host: 'x3k0s704lfun-test.cn-north-1.jdcloud-api.net',
port: 443, port: 443,
path: '/market/order/api/submit', path: '/market/order/api/submit',
method: 'POST', method: 'POST',
headers: { headers: {
} }
}; };
for (let [key, value] of ctx.headers) { for (let [key, value] of ctx.headers) {
options.headers[key] = value options.headers[key] = value
} }
console.log("\n post options:\n", options); console.log("\n post options:\n", options);
console.log("\n tmpContent:\n", tmpContent); console.log("\n tmpContent:\n", tmpContent);
var reqResult = await new Promise(function (resolve, reject) { var reqResult = await new Promise(function (resolve, reject) {
let req = http.request(options, function (res) { let req = http.request(options, function (res) {
// res.setEncoding(encoding); // res.setEncoding(encoding);
console.log("statusCode: ", res.statusCode); console.log("statusCode: ", res.statusCode);
console.log("headers: ", res.headers); console.log("headers: ", res.headers);
var _data = ''; var _data = '';
res.on('data', function (chunk) { res.on('data', function (chunk) {
_data += chunk; _data += chunk;
});
res.on('end', function () {
console.log("\n--req---成功->>\nresult:", _data)
resolve({ result: true, data: _data });
});
}); });
res.on('end', function () { req.on('error', (e) => {
console.log("\n--req---成功->>\nresult:", _data) console.error(`请求遇到问题-------------: ${e.message}`);
resolve({ result: true, data: _data }); resolve({ result: false, errmsg: e.message });
}); });
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) { // var req = http.request(options, function (res) {
// console.log("statusCode: ", res.statusCode); // console.log("statusCode: ", res.statusCode);
// console.log("headers: ", res.headers); // console.log("headers: ", res.headers);
// var _data = ''; // var _data = '';
// res.on('data', function (chunk) { // res.on('data', function (chunk) {
// _data += chunk; // _data += chunk;
// }); // });
// res.on('end', function () { // res.on('end', function () {
// console.log("\n--->>\nresult:", _data) // console.log("\n--->>\nresult:", _data)
// }); // });
// }); // });
// req.on('error', (e) => { // req.on('error', (e) => {
// console.error(`请求遇到问题-------------: ${e.message}`); // console.error(`请求遇到问题-------------: ${e.message}`);
// }); // });
// req.write(tmpContent); // req.write(tmpContent);
// req.end(); // req.end();
// var tmd = 99; // var tmd = 99;
} catch (errorMsg) { } catch (errorMsg) {
console.log(errorMsg, "--jd>>>>>>>errorMsg..............................>>>>>>"); console.log(errorMsg, "--jd>>>>>>>errorMsg..............................>>>>>>");
return { success: false, code: -200, msg: errorMsg.stack }; 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, "签名错误"); async pushPayOrder(pushData, req) {//处理京东推送的订单信息
} try {
var tokenInfo = await this.getToken(pushData.actionProcess); var signResult = await this.createSign(pushData, "6B876EB84731E166D76E1F73AD5764BA", true);
if (tokenInfo.status != 0) { if (signResult.status != 0) {
return tokenInfo; return signResult;
} }
var param = {}; if (signResult.data != pushData.token.toUpperCase()) {
if (pushData.skuId == "FW_GOODS-581976-1") { return system.getResult(null, "签名错误");
param = { }
actionProcess: pushData.actionProcess, var tokenInfo = await this.getToken(pushData.actionProcess);
actionType: "updateOrderPayStatus", if (tokenInfo.status != 0) {
actionBody: { return tokenInfo;
channelUserId: pushData.jdPin, }
payStatus: "yfk", var param = {};
channelItemCode: pushData.serviceCode, if (pushData.skuId == "FW_GOODS-581976-1") {
needNoOrderNo: pushData.orderId, param = {
buyerMoblie: pushData.mobile actionProcess: pushData.actionProcess,
}, actionType: "updateOrderPayStatus",
isUser: "yes" actionBody: {
}; channelUserId: pushData.jdPin,
}//自助注册产品 payStatus: "yfk",
else { channelItemCode: pushData.serviceCode,
//有返回用户信息进行用户ID加密 needNoOrderNo: pushData.orderId,
param = { buyerMoblie: pushData.mobile
actionProcess: pushData.actionProcess, },
actionType: "addOrderAndDelivery", isUser: "yes"
actionBody: { };
channelUserId: pushData.jdPin, }//自助注册产品
needNo: pushData.skuId + "_" + pushData.orderId, else {
needNoOrderNo: pushData.orderId, //有返回用户信息进行用户ID加密
buyerMoblie: pushData.mobile param = {
}, actionProcess: pushData.actionProcess,
isUser: "yes" actionType: "addOrderAndDelivery",
}; actionBody: {
}//商标注册【专家辅助申请】、商标注册【担保申请】和 除商标之外的产品 channelUserId: pushData.jdPin,
var reqUrl = this.channelApiUrl + "/action/tmOrder/springBoard"; needNo: pushData.skuId + "_" + pushData.orderId,
var resultUser = await this.execClient.execPostTK(param, reqUrl, tokenInfo.data.token); needNoOrderNo: pushData.orderId,
if (!resultUser) { buyerMoblie: pushData.mobile
return system.getResult(null, "req error"); },
} isUser: "yes"
return resultUser; };
}//商标注册【专家辅助申请】、商标注册【担保申请】和 除商标之外的产品
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) { } catch (error) {
console.log(error.stack, "操作error..................."); console.log(error.stack, "操作error...................");
return system.getResultFail(-200, "操作error"); return system.getResultFail(-200, "操作error");
}
} }
}
} }
module.exports = tmqueryCtl; module.exports = tmqueryCtl;
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