nodejs 搞定 阿里云短信API 后面有适用于小白的解决方案

  • Post author:
  • Post category:其他


exports.sendSms=function(phone,content,ret){

var d={


RecNum:phone,

Action:’SingleSendSms’,

SignName:’????’,

TemplateCode:’?????’,

ParamString:'{“code”:”‘+content+'”}’,

Format:’json’,

Version:’2016-09-27′,

SignatureMethod:’HMAC-SHA1′,

SignatureNonce:Math.random()+”,

SignatureVersion:’1.0′,

AccessKeyId:’????’,

Timestamp:JSON.stringify(new Date()).replace(/\”/g,”),

}

var q=buildQueryString(d);

var key=’?????&’;

var s=’GET&%2F&’+encodeURIComponent(q);

var sign=hmac(s,key);

var href=’Signature=’+encodeURIComponent(sign)+’&’+encodeURI(buildQueryString1(d));

client = restify.createStringClient({


url: ‘https://sms.aliyuncs.com/?’+href,

});

client.get(”, function(err, req, res, data) {

ret(data);

});

}

function buildQueryString(d){


var i=0;

var ns=[];

for(var k in d){


ns[i]=k;

i++;

}

ns.sort();

var str=”

for(var i in ns){


if(str) str+=’&’;

str+=encodeURIComponent(ns[i])+’=’+encodeURIComponent(d[ns[i]]);

}

return str;

}


function buildQueryString1(d){


var i=0;

var ns=[];

for(var k in d){


ns[i]=k;

i++;

}

ns.sort();

var str=”

for(var i in ns){


if(str) str+=’&’;

str+=(ns[i])+’=’+(d[ns[i]]);

}

return str;

}

var hmac=function (s,key){


var h = crypto.createHmac(‘sha1’, key);

h.update(s);

return h.digest().toString(‘base64’);

}

有“?”的地方自己替换相应的内容。

很乐意解答相关问题,有问题请加微信 thunder_f,添加时写一下验证信息哦。

转载于:https://www.cnblogs.com/fsd1/p/6129457.html