Commit 8e8c48f2 by 宋毅

tj

parent 4892331f
......@@ -4,6 +4,8 @@ const AppServiceBase = require("../../app.base");
const querystring = require('querystring');
const md5 = require("MD5");
const NodeRSA = require('node-rsa');
const crypto = require("crypto");
class utilsTlBankSve extends AppServiceBase {
constructor() {
super();
......@@ -37,7 +39,8 @@ class utilsTlBankSve extends AppServiceBase {
body: actionBody.body_desc,
sign_type: "RSA"
};
var signStr = await this.getCreateAliSignStr(payParam, parameters);
// var signStr = await this.getCreateAliSignStr(payParam, parameters);
var signStr = await this.generateSign(pobj, parameters, payParam.privatekey, "RSA-SHA1");
parameters.sign = signStr;
return system.getResultSuccess(parameters);
}
......@@ -56,6 +59,49 @@ class utilsTlBankSve extends AppServiceBase {
return signature;
}
/**
* 生成签名
* 支付宝官方文档: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) {
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({
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: "获取钉钉支付签名信息返回",
});
return signStr;
}
}
//-------------------------------------------钉钉h5支付-----------------结束
}
......
var system = require("../../../system");
var settings = require("../../../../config/settings");
const AppServiceBase = require("../../app.base");
const cryptoJS = require("crypto");
const crypto = require("crypto");
//商标查询操作
class UtilsUserSve extends AppServiceBase {
constructor() {
......@@ -138,7 +138,7 @@ class UtilsUserSve extends AppServiceBase {
let plainTex = "jsapi_ticket=" + ticket + "&noncestr=" + nonce + "&timestamp=" + timeStamp + "&url=" + url;
var sha1 = cryptoJS.createHash('sha1');
var sha1 = crypto.createHash('sha1');
sha1.update(plainTex, 'utf8');
let signature = sha1.digest('hex');
......
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