diff --git a/lib/Payment.js b/lib/Payment.js index feb2ca0..5a3fb93 100644 --- a/lib/Payment.js +++ b/lib/Payment.js @@ -723,14 +723,15 @@ class Payment { const md5Key = utils.genMD5(this.getAPISignKey()); data = utils.createBufferFromBase64(data.req_info); let decoded; - const decipher = crypto.createDecipher('aes-256-ecb', md5Key); + const decipher = crypto.createDecipheriv('aes-256-ecb', md5Key, Buffer.alloc(0)); decipher.setAutoPadding(true); decoded = decipher.update(data, 'binary', 'utf8'); decoded += decipher.final('utf8'); - const ret = JSON.parse(decoded); - return Promise.resolve({ - parsedXMLData: originalData, - decryptedData: ret, + return utils.parseXML(decoded).then(ret =>{ + return Promise.resolve({ + parsedXMLData: originalData, + decryptedData: ret, + }); }); }); }