Commit df9d1f2f by zhaoxiqing

gsb

parent eb05ec9c
......@@ -34,6 +34,8 @@ class EcontractService extends ServiceBase {
this.redisClient = system.getObject("util.redisClient");
this.utillbwSve = system.getObject("service.utillbwSve");
this.ydCompanyIds = [
10173,
10174,
......
var System = require("../../system");
const querystring = require('querystring');
var settings = require("../../../config/settings");
const logCtl = System.getObject("web.oplogCtl");
const crypto = require('crypto');
const uuidv4 = require('uuid/v4');
const axios = require('axios');
const moment = require("moment");
const md5 = require("MD5");
const crypto = require('crypto');
const Qs = require('qs');
//工商查询操作
/**
*
* 兰铂旺接口
*
*/
class UitlLBWService {
constructor() {
this.config = settings.lbwConfig();
this.lbwConfig = settings.apiconfig.lbwConfig();
this.restClient = System.getObject("util.restClient");
this.merchantId = "131032002020009";//商户ID
}
// async personTwo(params, opName) { // 个人二要素验证
// var result = {
// code: 1,
// message: "success",
// data: {}
// };
// var reqUrl = this.eSignBaoBankVerifyUrl + "/infoauth/psn/identity";
// var tResult = await this.returnResult(params, reqUrl, opName, "personTwo", result);
// if (tResult.errCode != 0) {
// result.code = -110;
// if (tResult.message && tResult.message.indexOf(":") > 0) {
// var tmpListStr = tResult.message.split(':');
// result.message = tmpListStr[1] ? tmpListStr[1] : tmpListStr[0];
// } else {
// result.message = "个人二要素验证失败";
// }
// return result;
// }
// if (tResult.errCode == 0 && tResult.data && !tResult.data.pass) {
// result.code = -120;
// result.message = "姓名或身份证错误";
// return result;
// }
// result.data = tResult.data;
// return result;
// }
async bankthree(params, opName) { //三要素验证
// name: account.userName,
// idno: account.personsSign,
// cardno: account
console.log(opName, "兰铂旺三要素验证");
var result = {
code: 1,
message: "success",
data: {}
};
let reqUrl = this.config.validate_bank;
var merchantTraceNo = await this.getRandomCode(32);
var merchantRequestTime = moment().format("YYYY-MM-DD HH:mm:ss");
var bizType = "010102"; //业务类型,010112(精准)010102(非精准)
var encrypt = {
"idType": "01",
"pan": params.cardno,//卡号,
"idNum": params.idno,//证件号,
"chName": params.name,//姓名
};
var encryptStr = JSON.stringify(encrypt);
var str = crypto.privateEncrypt(this.lbwConfig.pik, Buffer.from(encryptStr)).toString('base64');
var paramMap = {};
paramMap.merchantId = this.merchantId;
paramMap.bizType = bizType;
paramMap.merchantTraceNo = merchantTraceNo;
paramMap.merchantRequestTime = merchantRequestTime;
paramMap.encrypt = str;
var signStr = await this.sortParam(paramMap);
var sign = md5(signStr);
var tResult = await this.returnResult(params, reqUrl, opName, "createAccountId", result);
if (tResult.errCode != 0) {
result.code = -110;
if (tResult.message && tResult.message.indexOf(":") > 0) {
var tmpListStr = tResult.message.split(':');
result.message = tmpListStr[1] ? tmpListStr[1] : tmpListStr[0];
} else {
result.message = "三要素验证失败,错误信息[" + tResult.message + "]";
var list = {
"merchantId": this.merchantId,
"bizType": bizType,
"merchantTraceNo": merchantTraceNo,
"merchantRequestTime": merchantRequestTime,
"encrypt": str,
"sign": sign
}
console.log("请求参数=", list);
let rs = await axios({
url: this.lbwConfig.validate_bank,
method: 'post',
data: list,
transformRequest: [function (data) {
data = Qs.stringify(data);
return data;
}],
headers: {"Content-Type": "application/x-www-form-urlencoded"},
});
console.log("请求===", rs.config);
console.log("请求===", rs.data);
if (rs.status === 200 && rs.data) {
if (rs.data.respCode != '00000000') { //验证通过
result.code = -120;
}
return result;
}
if (tResult.errCode == 0 && tResult.data && !tResult.data.pass) {
result.code = -120;
result.message = "亲,提供的信息不正确,请验证后再试!";
result.code = -120;
return result;
}
async bankfour(params, opName) { //四要素验证
console.log(opName, "兰铂旺四要素验证");
var result = {
code: 1,
message: "success",
data: {}
};
var merchantTraceNo = await this.getRandomCode(32);
var merchantRequestTime = moment().format("YYYY-MM-DD HH:mm:ss");
var bizType = "010103"; //业务类型,010113(精准)010103(非精准)
var encrypt = {
"idType": "01",
"pan": params.cardno,//卡号,
"idNum": params.idno,//证件号,
"chName": params.name,//姓名
"chTel": params.mobile,//手机号
};
var encryptStr = JSON.stringify(encrypt);
var str = crypto.privateEncrypt(this.lbwConfig.pik, Buffer.from(encryptStr)).toString('base64');
var paramMap = {};
paramMap.merchantId = this.merchantId;
paramMap.bizType = bizType;
paramMap.merchantTraceNo = merchantTraceNo;
paramMap.merchantRequestTime = merchantRequestTime;
paramMap.encrypt = str;
var signStr = await this.sortParam(paramMap);
var sign = md5(signStr);
var list = {
"merchantId": this.merchantId,
"bizType": bizType,
"merchantTraceNo": merchantTraceNo,
"merchantRequestTime": merchantRequestTime,
"encrypt": str,
"sign": sign
}
console.log("请求参数=", list);
let rs = await axios({
url: this.lbwConfig.validate_bank,
method: 'post',
data: list,
transformRequest: [function (data) {
data = Qs.stringify(data);
return data;
}],
headers: {"Content-Type": "application/x-www-form-urlencoded"},
});
console.log("请求===", rs.config);
console.log("请求===", rs.data);
if (rs.status === 200 && rs.data) {
if (rs.data.respCode != '00000000') { //验证通过
result.code = -120;
}
return result;
}
result.data = tResult.data;
result.code = -120;
return result;
}
//
// async bankfour(params, opName) { //四要素验证
// var result = {
// code: 1,
// message: "success",
// data: {}
// };
// var reqUrl = this.eSignBaoBankVerifyUrl + "/infoauth/psn/bankfour";
// var tResult = await this.returnResult(params, reqUrl, opName, "createAccountId", result);
// if (tResult.errCode != 0) {
// result.code = -110;
// if (tResult.message && tResult.message.indexOf(":") > 0) {
// var tmpListStr = tResult.message.split(':');
// result.message = tmpListStr[1] ? tmpListStr[1] : tmpListStr[0];
// } else {
// result.message = "接口请求错误";
// }
// return result;
// }
// if (tResult.errCode == 0 && tResult.data && !tResult.data.pass) {
// result.code = -120;
// result.message = "亲,提供的信息不正确,请验证后再试!";
// return result;
// }
// result.data = tResult.data;
// return result;
// }
async sortParam(paramMap) {
var signArr = [];
var keys = Object.keys(paramMap).sort();
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
var v = paramMap[k];
if (!k || !v || k == 'sign') {
continue;
}
signArr.push(k + "=" + v);
}
var signStr = signArr.join(",");
return signStr;
}
async getRandomCode(iun) {
var randStr = "";
for (var i = 0; i < iun; i++) {//此处的12为生成12位数字,可随即更改
var randItem = Math.floor(Math.random() * 10);
randStr += randItem;
}
return randStr;
}
}
module.exports = UitlLBWService;
......@@ -127,7 +127,7 @@ var settings = {
if(settings.env == "dev") {
let domain = "https://99num.com";
return {
validate_bank: `${domain}/dsp-simple/api/validate/bank`,
validate_bank: `https://99num.com/dsp-simple/api/validate/bank`,
puk: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvuoB1YqsDa1oUlPWZEUe\n" +
"jK1y7Ja4W3AjTLfiqbo9Z6rY7h8ui/CbiZxpJuDg3H0cTI0k8UJWNO+CbYVioLo3\n" +
"bK0Hj10jYkPdzRlQsaQ6gnJaj4DMVjmAjUUsBPnimnGsKvxLwPZTUiOMsVCOWYVH\n" +
......@@ -135,31 +135,34 @@ var settings = {
"8Mnls+szyO3J9/qA4XIq4tQIp6/UklYXn2ZkIRpk+Jb3Rm57wzfAw8VxCSVFHLxd\n" +
"z5RXFLDeyvZuqSiA/9WX41IlSWjrcuqgHhWngnsv44LF/AsDJg/LRzLxWGK2k3Xa\n" +
"qwIDAQAB",
pik: "MIIEogIBAAKCAQEAtkFN3EfRuUwuzKXwwkEtDQ8YfmtfbTmODe0hY33l9qqk7SC3\n" +
"AErUYNyDbtDkb22v5kaDfCgGxQysAKC9xgMxeR/+IBG9WNvm+L/22Vz/+vFW45lv\n" +
"d2F30TzNC16g0gDyFCI97ZdNWMgGFkRPhtQL4x5oArmBjQ2eVxq0zzR/Hvh3ujEO\n" +
"GGjed19rY8H/zm9QQi5OJ05nsDULtE1AUgN22uuGbXAzqP3YuOejVeaYOuY9IQh/\n" +
"5Tac/+Eh/AobSXT1PoyARLY01ZMn6kOYuo+iLIa3Wfkld2v6uhUTAMSugM19eVN3\n" +
"G5flirOqPoSaTvH7dfQW/nnBXL+0qkVZ2Yo//wIDAQABAoIBAFD1gViwroDZTpCp\n" +
"xeEEgraiVgcSOzmRr4CQLZy8eEKyWsDbH2+Jzf2Y9ulq8Y5t8w0flZi5TwiJMH62\n" +
"6JXlJTzg8Undl3a5eEhXPZggr7URL7+6kME/ErJnh83dIyMmOGKpM0kvRLSDZfDO\n" +
"N2V1HDKvdxR+wwWdXxDiVB8W+sEObnaDSQv4iObtXk/rQrw3VWwIJ7leL1SMNosY\n" +
"j1MacOGsbFfSlRSUUq8wnpcocpiLG+e3ot1ypWkIWQdmVqeQWPVu9EUzmMDSjFsY\n" +
"rMGMsINyTYXiD+nYvsQG19/k3dJqFpW1Z3X5GG2fHfqbIwSG1a4cDyim8l1MCdAS\n" +
"VgfoEoECgYEA2nJpJgQ5G1yGsLkIip5mnQX9OOauynoUEd3TEi3csy0/bEJ+kMFG\n" +
"C1OO2bKbnSg7TorZxgfv0dTY3Ioi+eHmZn/NQNaRD8OOj08ylQf7/K4KRD/TUbCQ\n" +
"sILegaHoDFJ+tbX1w0qpu9d3g0Uy/Y70ptPxTGoXy2/R8BjPM6ETnMcCgYEA1ZYi\n" +
"YRXub3by2lkJEcoCfrmlMjkLT/G36u4NVDz4FoNqjezDy8kIkceGZLBi4k0l3Od5\n" +
"jf4CvbL3Xo/OhoO0ip0w/LPutnFh1VZulHTMMFyfnZdfZGFEUMlZWzaCm10FL72h\n" +
"90BJs3Rq1RKQdHFkuWZE8YLz6IWZo2XPBErpWwkCgYAWrPezRY70AyfMInj7grPe\n" +
"Kuf9Rxzv0bpRnHgzk+UsCE9kGobu2dE+jb7vZDX5G1sErS8r+ljvrCuSwRgeXk+/\n" +
"ZhbVWzCVtVQQFkWG6NxEf4B7UzDJcw2h9QPJ6xeeZ9XVYP0Q96gk4pn6W22Omo9U\n" +
"3f1XVFACAyqExN6FWnwhswKBgDOJxMX0itJuu28gqOWX/z4hAdG6nhYuV5ji1GiN\n" +
"Rbf5Ag85II3d9qlmofFN9q5wu0Awws4WiwbHVpWE0er3gOspvxZbPLDdbyQRdSFx\n" +
"hYvt7b4TNrt8FQYBcARohN+EdKnuclS9OIuK/fRoRF80tX9fRCea18w14Lri6C86\n" +
"/FAxAoGAL12Mui51jjbfZgj1nipEm2sTYUODEHngo545zr3uYgmvpLxBA6M5UYqC\n" +
"4qPwuEUCnbE7/p1dG0GgIII/ctUpE8RcdGOAsYHK8kkF8PXXpXagrRsqhT4WLzca\n" +
"yKEOEa4dbFzU1LXFqjD3Xv/c5mqcgYG1IMskAo9R00+XvTn8a6o=",
pik:"-----BEGIN PRIVATE KEY-----\n" +
"MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC2QU3cR9G5TC7M\n" +
"pfDCQS0NDxh+a19tOY4N7SFjfeX2qqTtILcAStRg3INu0ORvba/mRoN8KAbFDKwA\n" +
"oL3GAzF5H/4gEb1Y2+b4v/bZXP/68VbjmW93YXfRPM0LXqDSAPIUIj3tl01YyAYW\n" +
"RE+G1AvjHmgCuYGNDZ5XGrTPNH8e+He6MQ4YaN53X2tjwf/Ob1BCLk4nTmewNQu0\n" +
"TUBSA3ba64ZtcDOo/di456NV5pg65j0hCH/lNpz/4SH8ChtJdPU+jIBEtjTVkyfq\n" +
"Q5i6j6IshrdZ+SV3a/q6FRMAxK6AzX15U3cbl+WKs6o+hJpO8ft19Bb+ecFcv7Sq\n" +
"RVnZij//AgMBAAECggEAUPWBWLCugNlOkKnF4QSCtqJWBxI7OZGvgJAtnLx4QrJa\n" +
"wNsfb4nN/Zj26Wrxjm3zDR+VmLlPCIkwfrboleUlPODxSd2Xdrl4SFc9mCCvtREv\n" +
"v7qQwT8SsmeHzd0jIyY4YqkzSS9EtINl8M43ZXUcMq93FH7DBZ1fEOJUHxb6wQ5u\n" +
"doNJC/iI5u1eT+tCvDdVbAgnuV4vVIw2ixiPUxpw4axsV9KVFJRSrzCelyhymIsb\n" +
"57ei3XKlaQhZB2ZWp5BY9W70RTOYwNKMWxiswYywg3JNheIP6di+xAbX3+Td0moW\n" +
"lbVndfkYbZ8d+psjBIbVrhwPKKbyXUwJ0BJWB+gSgQKBgQDacmkmBDkbXIawuQiK\n" +
"nmadBf045q7KehQR3dMSLdyzLT9sQn6QwUYLU47ZspudKDtOitnGB+/R1NjciiL5\n" +
"4eZmf81A1pEPw46PTzKVB/v8rgpEP9NRsJCwgt6BoegMUn61tfXDSqm713eDRTL9\n" +
"jvSm0/FMahfLb9HwGM8zoROcxwKBgQDVliJhFe5vdvLaWQkRygJ+uaUyOQtP8bfq\n" +
"7g1UPPgWg2qN7MPLyQiRx4ZksGLiTSXc53mN/gK9svdej86Gg7SKnTD8s+62cWHV\n" +
"Vm6UdMwwXJ+dl19kYURQyVlbNoKbXQUvvaH3QEmzdGrVEpB0cWS5ZkTxgvPohZmj\n" +
"Zc8ESulbCQKBgBas97NFjvQDJ8wiePuCs94q5/1HHO/RulGceDOT5SwIT2Qahu7Z\n" +
"0T6Nvu9kNfkbWwStLyv6WO+sK5LBGB5eT79mFtVbMJW1VBAWRYbo3ER/gHtTMMlz\n" +
"DaH1A8nrF55n1dVg/RD3qCTimfpbbY6aj1Td/VdUUAIDKoTE3oVafCGzAoGAM4nE\n" +
"xfSK0m67byCo5Zf/PiEB0bqeFi5XmOLUaI1Ft/kCDzkgjd32qWah8U32rnC7QDDC\n" +
"zhaLBsdWlYTR6veA6ym/Fls8sN1vJBF1IXGFi+3tvhM2u3wVBgFwBGiE34R0qe5y\n" +
"VL04i4r99GhEXzS1f19EJ5rXzDXguuLoLzr8UDECgYAvXYy6LnWONt9mCPWeKkSb\n" +
"axNhQ4MQeeCjnjnOve5iCa+kvEEDozlRioLio/C4RQKdsTv+nV0bQaAggj9y1SkT\n" +
"xFx0Y4CxgcrySQXw9deldqCtGyqFPhYvNxrIoQ4Rrh1sXNTUtcWqMPde/9zmapyB\n" +
"gbUgyyQCj1HTT5e9Ofxrqg==\n" +
"-----END PRIVATE KEY-----"
};
} else {
return {};
......
......@@ -46,7 +46,6 @@
"multer": "^1.3.0",
"mysql2": "^1.5.3",
"node-cron": "^2.0.1",
"node-rsa": "^1.0.8",
"node-uuid": "^1.4.8",
"node-wxpay": "^1.1.3",
"node-xlsx": "^0.14.1",
......@@ -54,6 +53,8 @@
"path-to-regexp": "^3.0.0",
"pdfcrowd": "^4.2.0",
"qr-image": "^3.2.0",
"qs": "^6.9.4",
"request": "^2.88.2",
"sequelize": "^4.37.8",
"sequelize-cli": "^4.1.1",
"serve-favicon": "^2.4.5",
......
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