Commit 81df5695 by 宋毅

tj

parent f0d6e1d3
......@@ -40,14 +40,14 @@ class utilsTlBankSve extends AppServiceBase {
sign_type: "RSA"
};
var signStr = await this.getCreateAliSignStr(pobj, parameters, payParam.privatekey, "sha1");
// var signStr = await this.generateSign(pobj, parameters, payParam.privatekey, "RSA-SHA1");
// var signStr = await this.getSign(pobj,payParam.privatekey, parameters);
parameters.sign = encodeURIComponent(signStr);
return system.getResultSuccess(parameters);
}
async getCreateAliSignStr(pobj, parameters, privateKey, algorith) {
privateKey = "-----BEGIN PRIVATE KEY----- " + privateKey + " -----END PRIVATE KEY-----";
privateKey = "-----BEGIN PRIVATE KEY-----" + privateKey + "-----END PRIVATE KEY-----";
const key = new NodeRSA();
key.setOptions({ b: 1024, signingScheme: algorith });
key.importKey(privateKey, 'pkcs8-private');//导入密钥并设定格式
......@@ -62,6 +62,13 @@ class utilsTlBankSve extends AppServiceBase {
let buffer = Buffer.from(text);
let signature = key.sign(buffer).toString('base64');
this.logCtl.info({
appid: pobj.appInfo ? pobj.appInfo.uapp_id : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key : "",
op: "center-app/app/base/service/impl/utilsSve/utilsAlibankSve.js/getCreateAliSignStr",
content: "参数:" + text + "返回结果signStr:" + signature,
optitle: "获取钉钉支付签名信息返回",
});
return signature;
}
......@@ -78,6 +85,8 @@ class utilsTlBankSve extends AppServiceBase {
} else {
sPara.push([key, params[key]]);
}
// sPara.push([key, params[key]]);
}
sPara = sPara.sort();
var prestr = '';
......@@ -93,46 +102,23 @@ class utilsTlBankSve extends AppServiceBase {
}
/**
* 生成签名
* 支付宝官方文档:https://doc.open.alipay.com/docs/doc.htm?docType=1&articleId=106118
* 筛选排序 -> 拼接 -> 签名
*
* @param {Object} dataObj 待签名的数据对象
* @param {String} privateKey 私钥
* @returns {String}
*/
async generateSign(pobj, dataObj, privateKey, algorith) {
privateKey = "-----BEGIN PRIVATE KEY----- " + privateKey + " -----END PRIVATE KEY-----";
const stringToBeSign = Object.keys(dataObj).sort().reduce((acc, k) => {
if (k !== 'sign' && dataObj[k] !== undefined) {
const v = `${dataObj[k]}`;
if (v.length !== 0) {
if (acc.length === 0) {
acc += `${k}=${v}`;
} else {
acc += `&${k}=${v}`;
}
}
}
return acc;
}, '');
if (stringToBeSign.length === 0) {
throw new Error('The data to be signed is empty.');
} else {
const cryptoSign = crypto.createSign(algorith);
cryptoSign.update(stringToBeSign, 'utf8');
var signStr = cryptoSign.sign(privateKey, 'base64');
async getSign(pobj, privateKey, params) {
try {
var key = "-----BEGIN PRIVATE KEY-----" + privateKey + "-----END PRIVATE KEY-----";
var prestr = await this.getVerifyParams(params)
var sign = crypto.createSign('RSA-SHA1');
sign.update(prestr);
sign = sign.sign(key, 'base64');
let signature = encodeURIComponent(sign)
this.logCtl.info({
appid: pobj.appInfo ? pobj.appInfo.uapp_id : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key : "",
op: "center-app/app/base/service/impl/utilsSve/utilsAlibankSve.js/generateSign",
content: "参数:" + stringToBeSign + "返回结果signStr:" + signStr,
optitle: "获取钉钉支付签名信息返回",
op: "center-app/app/base/service/impl/utilsSve/utilsAlibankSve.js/getCreateAliSignStr",
content: "参数:" + prestr + "返回结果signStr:" + signature,
optitle: "获取钉钉支付签名信息返回-new1",
});
return signStr;
} catch (err) {
console.log('err', err)
}
}
......
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJB2BrvEB60lYHTx/vKmj3W27V65KjztQTqk9Rvvyx+Hugk3Kdd2NKrgAcHlpBqJ4/6irVpnzm5hGwsjj7gqM2mqwZe1aMho8VkVeqg8qx9Az6P8gCYB8ZbFZv5SAMBVrIkrckuGjNPF1ejHNu3xRJMVdjKbQ/TWnY4m+IEZ1kaPAgMBAAECgYAF2jI1oyBofE4nDrK0Y9kF/M4q+zdh1n7BAHPJmPJSqa34t5pjVy+VCJQppcL7LEDnTPHW6sOrJxXwYpVs8ZC5lGVt05s0IZ7xbk12sDjMNdvmRp1r8e/+6JnpUtJ08Wwg7plKgBpGgztmJGeKDkWzHyQ9CFyEVCDQpnIKb+wl8QJBAN/VLnxEyUcDPjG9OUI87YGf/qwEb7/7BW4hMGu+87eZjbSjMkg+hsWgqk1jiGamjvpyT+2Qk+Cbu3jT7Kfd8tkCQQClOMFyH312SsLt39tjAFQCelwUomtmUeThjxeXZ7c5NcGjJDrCnkWHA6WqjKzQvVCuBhYcJaskwgNZIO1ZhNOnAkEAo5+PT8Bo8sRoHqwYw1cOuAdhgBXuKwUxPwR8BQed2cUiVb5G75DlrGp6lAACoid3tZUC4MMjlrnBHd6tzTjuYQJAW1wx47gz+QhIF58UQf85dRFR/3r8ZlzccjlcszT/pNvr0hlDgMBh89F5dwBIwzgb986XxUKzCyVZEpzZggmnuwJAVMyARkZHu1txPHYofxtWmcVQZd+vBWWu1UvNAKun81wKmSO0KtlreYMffPoW8hTL+i15BeWbGhbJjgZciUqixA==
\ 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