Commit df9d1f2f by zhaoxiqing

gsb

parent eb05ec9c
...@@ -34,6 +34,8 @@ class EcontractService extends ServiceBase { ...@@ -34,6 +34,8 @@ class EcontractService extends ServiceBase {
this.redisClient = system.getObject("util.redisClient"); this.redisClient = system.getObject("util.redisClient");
this.utillbwSve = system.getObject("service.utillbwSve");
this.ydCompanyIds = [ this.ydCompanyIds = [
10173, 10173,
10174, 10174,
......
var System = require("../../system"); var System = require("../../system");
const querystring = require('querystring');
var settings = require("../../../config/settings"); 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 axios = require('axios');
const moment = require("moment");
const md5 = require("MD5");
const crypto = require('crypto');
const Qs = require('qs');
/**
//工商查询操作 *
* 兰铂旺接口
*
*/
class UitlLBWService { class UitlLBWService {
constructor() { 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) { //三要素验证 async bankthree(params, opName) { //三要素验证
// name: account.userName, console.log(opName, "兰铂旺三要素验证");
// idno: account.personsSign,
// cardno: account
var result = { var result = {
code: 1, code: 1,
message: "success", message: "success",
data: {} 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 tResult = await this.returnResult(params, reqUrl, opName, "createAccountId", result); var signStr = await this.sortParam(paramMap);
if (tResult.errCode != 0) { var sign = md5(signStr);
result.code = -110;
if (tResult.message && tResult.message.indexOf(":") > 0) { var list = {
var tmpListStr = tResult.message.split(':'); "merchantId": this.merchantId,
result.message = tmpListStr[1] ? tmpListStr[1] : tmpListStr[0]; "bizType": bizType,
} else { "merchantTraceNo": merchantTraceNo,
result.message = "三要素验证失败,错误信息[" + tResult.message + "]"; "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; return result;
} }
if (tResult.errCode == 0 && tResult.data && !tResult.data.pass) {
result.code = -120; result.code = -120;
result.message = "亲,提供的信息不正确,请验证后再试!";
return result; return result;
} }
result.data = tResult.data;
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.code = -120;
return result; return result;
} }
//
// async bankfour(params, opName) { //四要素验证
// var result = { async sortParam(paramMap) {
// code: 1, var signArr = [];
// message: "success", var keys = Object.keys(paramMap).sort();
// data: {} for (var i = 0; i < keys.length; i++) {
// }; var k = keys[i];
// var reqUrl = this.eSignBaoBankVerifyUrl + "/infoauth/psn/bankfour"; var v = paramMap[k];
// var tResult = await this.returnResult(params, reqUrl, opName, "createAccountId", result); if (!k || !v || k == 'sign') {
// if (tResult.errCode != 0) { continue;
// result.code = -110; }
// if (tResult.message && tResult.message.indexOf(":") > 0) { signArr.push(k + "=" + v);
// var tmpListStr = tResult.message.split(':'); }
// result.message = tmpListStr[1] ? tmpListStr[1] : tmpListStr[0]; var signStr = signArr.join(",");
// } else { return signStr;
// result.message = "接口请求错误"; }
// }
// return result; async getRandomCode(iun) {
// } var randStr = "";
// if (tResult.errCode == 0 && tResult.data && !tResult.data.pass) { for (var i = 0; i < iun; i++) {//此处的12为生成12位数字,可随即更改
// result.code = -120; var randItem = Math.floor(Math.random() * 10);
// result.message = "亲,提供的信息不正确,请验证后再试!"; randStr += randItem;
// return result; }
// } return randStr;
// result.data = tResult.data; }
// return result;
// }
} }
module.exports = UitlLBWService; module.exports = UitlLBWService;
...@@ -127,7 +127,7 @@ var settings = { ...@@ -127,7 +127,7 @@ var settings = {
if(settings.env == "dev") { if(settings.env == "dev") {
let domain = "https://99num.com"; let domain = "https://99num.com";
return { return {
validate_bank: `${domain}/dsp-simple/api/validate/bank`, validate_bank: `https://99num.com/dsp-simple/api/validate/bank`,
puk: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvuoB1YqsDa1oUlPWZEUe\n" + puk: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvuoB1YqsDa1oUlPWZEUe\n" +
"jK1y7Ja4W3AjTLfiqbo9Z6rY7h8ui/CbiZxpJuDg3H0cTI0k8UJWNO+CbYVioLo3\n" + "jK1y7Ja4W3AjTLfiqbo9Z6rY7h8ui/CbiZxpJuDg3H0cTI0k8UJWNO+CbYVioLo3\n" +
"bK0Hj10jYkPdzRlQsaQ6gnJaj4DMVjmAjUUsBPnimnGsKvxLwPZTUiOMsVCOWYVH\n" + "bK0Hj10jYkPdzRlQsaQ6gnJaj4DMVjmAjUUsBPnimnGsKvxLwPZTUiOMsVCOWYVH\n" +
...@@ -135,31 +135,34 @@ var settings = { ...@@ -135,31 +135,34 @@ var settings = {
"8Mnls+szyO3J9/qA4XIq4tQIp6/UklYXn2ZkIRpk+Jb3Rm57wzfAw8VxCSVFHLxd\n" + "8Mnls+szyO3J9/qA4XIq4tQIp6/UklYXn2ZkIRpk+Jb3Rm57wzfAw8VxCSVFHLxd\n" +
"z5RXFLDeyvZuqSiA/9WX41IlSWjrcuqgHhWngnsv44LF/AsDJg/LRzLxWGK2k3Xa\n" + "z5RXFLDeyvZuqSiA/9WX41IlSWjrcuqgHhWngnsv44LF/AsDJg/LRzLxWGK2k3Xa\n" +
"qwIDAQAB", "qwIDAQAB",
pik: "MIIEogIBAAKCAQEAtkFN3EfRuUwuzKXwwkEtDQ8YfmtfbTmODe0hY33l9qqk7SC3\n" + pik:"-----BEGIN PRIVATE KEY-----\n" +
"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\n" +
"gbUgyyQCj1HTT5e9Ofxrqg==\n" +
"-----END PRIVATE KEY-----"
}; };
} else { } else {
return {}; return {};
......
...@@ -46,7 +46,6 @@ ...@@ -46,7 +46,6 @@
"multer": "^1.3.0", "multer": "^1.3.0",
"mysql2": "^1.5.3", "mysql2": "^1.5.3",
"node-cron": "^2.0.1", "node-cron": "^2.0.1",
"node-rsa": "^1.0.8",
"node-uuid": "^1.4.8", "node-uuid": "^1.4.8",
"node-wxpay": "^1.1.3", "node-wxpay": "^1.1.3",
"node-xlsx": "^0.14.1", "node-xlsx": "^0.14.1",
...@@ -54,6 +53,8 @@ ...@@ -54,6 +53,8 @@
"path-to-regexp": "^3.0.0", "path-to-regexp": "^3.0.0",
"pdfcrowd": "^4.2.0", "pdfcrowd": "^4.2.0",
"qr-image": "^3.2.0", "qr-image": "^3.2.0",
"qs": "^6.9.4",
"request": "^2.88.2",
"sequelize": "^4.37.8", "sequelize": "^4.37.8",
"sequelize-cli": "^4.1.1", "sequelize-cli": "^4.1.1",
"serve-favicon": "^2.4.5", "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