安装:npm install xml2js
使用:
var xml2js = require(\'xml2js\');
var builder = new xml2js.Builder(); // JSON->xml
var parser = new xml2js.Parser({ explicitArray: false }); //xml -> json
parser.parseString(body, function(err, result) {
console.log(err)
console.log(result)
})
。。。。。
xml = builder.buildObject(json)
/********************************************************************************************************/
function ksort(o) {
let sorted = {},
keys = Object.keys(o);
keys.sort();
keys.forEach((key)=>{
sorted[key] = o[key];
})
return sorted;
}
function toXml(_json){
var xml = \'<xml>\';
for (let key in _json) {
let val = _json[key];
if (
typeof val == \'string\' ||
typeof val == \'number\'
){
xml=xml+"<"+key+">"+val+"</"+key+">";
}else{
xml=xml+"<"+key+"><![CDATA["+val+"]]></"+key+">";
}
}
xml=xml+ \'</xml>\';
return xml;
}
function xmlToJson(xml){
var xmlParser = require(\'xml2js\').Parser({explicitArray : false, ignoreAttrs : true})
var promise = new Promise(function(resolve, reject){
xmlParser.parseString(xml,function (err, result) {
resolve(result.xml);
});
});
return promise;
}
//微信支付签名
function makeSign(array,WX_KEY){
array = ksort(array);
var string = \'\';
for (let k in array) {
//console.log(k);
let v = array[k];
if(k != "sign" && v != "" && !(typeof v == \'array\') ){string=string+k+"="+v+"&";}
}
string = string.substring(0, string.length - 1);
//签名步骤二:在string后加入KEY
string = string+"&key="+WX_KEY;
//签名步骤三:MD5加密
const md5 = require(\'md5-node\');
string = md5(string);
//签名步骤四:所有字符转为大写
let result = string.toUpperCase();
return result;
}
function mrtqid(){ //随机字符串
const md5 = require(\'md5-node\');
return md5( new Date().getTime() );
}