Skip to content

Commit 76c6853

Browse files
authored
Merge pull request #1 from sqrter/master
Adjust validateResponse to support v2
2 parents 3a22430 + 28d1a43 commit 76c6853

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

lib/util.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ function genSignatureV2 (data, secret) {
1313
const signString = secret + '|' + data
1414
return crypto.createHash('sha1').update(signString).digest('hex')
1515
}
16+
1617
/**
1718
* Generate sha1 sign
1819
* @param data
@@ -130,22 +131,27 @@ function dateFormat (date, fstr, utc) {
130131
/**
131132
* Validate Response object
132133
*/
133-
function validateResponse (data, secret) {
134-
if (!data.signature) {
134+
function validateResponse (response, secret) {
135+
if (!response.signature) {
135136
return false
136137
}
137-
if (!data.merchant_id) {
138-
return false
138+
const originSign = response.signature
139+
let calculatedSign
140+
if (response.version === '2.0') {
141+
calculatedSign = genSignatureV2(response.data, secret)
142+
} else {
143+
if (!response.merchant_id) {
144+
return false
145+
}
146+
calculatedSign = genSignature(response, secret)
139147
}
140148

141-
const originSign = data.signature
142-
const calculatedSign = genSignature(data, secret)
143-
144149
return originSign === calculatedSign
145150
}
146151

147152
module.exports = {
148153
genSignature,
154+
genSignatureV2,
149155
getConvertedData,
150156
generateOrderId,
151157
getContentHeader,

0 commit comments

Comments
 (0)