Node.js对接短信验证码接口代码示例

var http = require('http')
var querystring = require('querystring');

function post(hostname, path, post_data, callback){
    var options = {
        hostname: hostname,
        port: 80,
        path: path,
        method: 'POST',
        headers: {
            'Content-Type':'application/x-www-form-urlencoded',
        }
    }
    var req = http.request(options, function(res){
        var body ="";
        res.setEncoding('utf8');
        res.on('data', function(chunk){
            //console.log(chunk.toString());
            body += chunk;
        });
        res.on('end', function(){
            var json = JSON.parse(body);
            callback(json)
        });
    });
    req.on('error', function(e){
        console.log('msg:'+e.message);
    });
    req.write(post_data);
    req.end();
}

var hostname = "api.ihuyi.com";
var request_uri = "/sms/Submit.json";

//定义请求的数据
var values = {
    "account":"xxxxxxxx", //APIID(用户中心【文本短信】-【验证码/通知短信】-【产品总览】查看)
    "password":"xxxxxxxxx", //1、APIKEY(用户中心【文本短信】-【验证码/通知短信】-【产品总览】查看)2、动态密码(生成动态密码方式请看该文档末尾的说明)
    "mobile":"136xxxxxxxx", //根据发送方式不同:1、完整内容方式提交完整的短信内容,如:您的验证码是:1234。请不要把验证码泄露给其他人。2、模板变量方式模板中的变量内容,多个变量以英文竖线(|)隔开①单变量示例模板内容:您的验证码是:【变量】。请不要把验证码泄露给其他人。参数写法:content=1234最终短信为:您的验证码是:1234。请不要把验证码泄露给其他人。②多变量示例模板内容:订单号:【变量1】,联系人:【变量2】,手机号:【变量3】,金额:【变量4】。参数写法:content=20180515006|张三|136xxxxxxxx|100元最终短信为:订单号:20180515006,联系人:张三,手机号:136xxxxxxxx,金额:100元。支持500字以内的长短信,长短信按多条计费
    "content":"您的验证码是:1234。请不要把验证码泄露给其他人。", //短信内容
    "templateid":"1", //短信模板ID(使用模板变量方式发送时必填)调试阶段可使用系统默认模板ID:1(模板内容为:您的验证码是:【变量】。请不要把验证码泄露给其他人。)
    "time":"1623643787", //Unix时间戳(10位整型数字,当使用动态密码方式时为必填)
}
var post_data = querystring.stringify(values);

//发起请求
post(hostname, request_uri, post_data, function(json){
    //打印结果
    console.log(json);
})