Commit 81df5695 by 宋毅

tj

parent f0d6e1d3
...@@ -40,14 +40,14 @@ class utilsTlBankSve extends AppServiceBase { ...@@ -40,14 +40,14 @@ class utilsTlBankSve extends AppServiceBase {
sign_type: "RSA" sign_type: "RSA"
}; };
var signStr = await this.getCreateAliSignStr(pobj, parameters, payParam.privatekey, "sha1"); 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); parameters.sign = encodeURIComponent(signStr);
return system.getResultSuccess(parameters); return system.getResultSuccess(parameters);
} }
async getCreateAliSignStr(pobj, parameters, privateKey, algorith) { 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(); const key = new NodeRSA();
key.setOptions({ b: 1024, signingScheme: algorith }); key.setOptions({ b: 1024, signingScheme: algorith });
key.importKey(privateKey, 'pkcs8-private');//导入密钥并设定格式 key.importKey(privateKey, 'pkcs8-private');//导入密钥并设定格式
...@@ -62,6 +62,13 @@ class utilsTlBankSve extends AppServiceBase { ...@@ -62,6 +62,13 @@ class utilsTlBankSve extends AppServiceBase {
let buffer = Buffer.from(text); let buffer = Buffer.from(text);
let signature = key.sign(buffer).toString('base64'); 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; return signature;
} }
...@@ -78,6 +85,8 @@ class utilsTlBankSve extends AppServiceBase { ...@@ -78,6 +85,8 @@ class utilsTlBankSve extends AppServiceBase {
} else { } else {
sPara.push([key, params[key]]); sPara.push([key, params[key]]);
} }
// sPara.push([key, params[key]]);
} }
sPara = sPara.sort(); sPara = sPara.sort();
var prestr = ''; var prestr = '';
...@@ -93,46 +102,23 @@ class utilsTlBankSve extends AppServiceBase { ...@@ -93,46 +102,23 @@ class utilsTlBankSve extends AppServiceBase {
} }
/** async getSign(pobj, privateKey, params) {
* 生成签名 try {
* 支付宝官方文档:https://doc.open.alipay.com/docs/doc.htm?docType=1&articleId=106118 var key = "-----BEGIN PRIVATE KEY-----" + privateKey + "-----END PRIVATE KEY-----";
* 筛选排序 -> 拼接 -> 签名 var prestr = await this.getVerifyParams(params)
* var sign = crypto.createSign('RSA-SHA1');
* @param {Object} dataObj 待签名的数据对象 sign.update(prestr);
* @param {String} privateKey 私钥 sign = sign.sign(key, 'base64');
* @returns {String} let signature = encodeURIComponent(sign)
*/
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');
this.logCtl.info({ this.logCtl.info({
appid: pobj.appInfo ? pobj.appInfo.uapp_id : "", appid: pobj.appInfo ? pobj.appInfo.uapp_id : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key : "", appkey: pobj.appInfo ? pobj.appInfo.uapp_key : "",
op: "center-app/app/base/service/impl/utilsSve/utilsAlibankSve.js/generateSign", op: "center-app/app/base/service/impl/utilsSve/utilsAlibankSve.js/getCreateAliSignStr",
content: "参数:" + stringToBeSign + "返回结果signStr:" + signStr, content: "参数:" + prestr + "返回结果signStr:" + signature,
optitle: "获取钉钉支付签名信息返回", 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