Node.js短信营销接口对接示例代码

本示例介绍如何使用php调用互亿无线短信营销接口,完成短信群发。通过简单的 HTTP POST 请求,开发者即可在业务系统中集成营销短信功能,适用于促销活动通知、会员关怀提醒、节日祝福推送等多类营销场景。

示例将展示接口请求的基本流程、参数配置以及响应解析,帮助开发者快速掌握短信营销接口的调用方式。

var http = require('http')

function post(hostname, path, json_data, callback){
    var options = {
        hostname: hostname,
        port: 80,
        path: path,
        method: 'POST',
        headers: {
            'Content-Type':'application/json',
        }
    }
    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(json_data);
    req.end();
}

var hostname = "api.ihuyi.com";
var request_uri = "/sms-yx/v1/batchSend";

//定义请求的数据
var values = {
    "api_id":"sms-yx-xxxxxxxx", //APIID(用户中心【文本短信】-【会员营销短信】-【产品总览】查看)
    "signature":"xxxxxxxxx", //请求验证加密签名(非短信签名);签名生成方式:仅公共参数以ASCII码从小到大排序值,key=value,多值以“&”隔开,拼接之后md5 32位小写; 如:md5(api_id=xxxx&api_key=xxxx&request_id=xxxxxxxx&timestamp=xxxxxxx)APIKEY(用户中心【文本短信】-【会员营销短信】-【产品总览】查看)2、动态密码(生成动态密码方式请看该文档末尾的说明)
    "timestamp":1623643787, //东八时区;10位时间戳,时间允许相差±60S
    "request_id":"xxxxxxxxxxxx", //请求方请求ID,建议使用唯一ID,比如使用uuid;我方系统会2小时内去重验证处理,防止网络重复攻击;
    "product_id":1001, //产品ID
    "phone":["18800000000","18800000001"], //手机号数组(最多1万个号码)
    "sign_name":"xxxxxxxx", //短信签名(template_id未填写则必填)
    "content":"尊敬的会员您好:${name},您的订单号是:${order_no},拒收请回复R", //template_id为空时必填;短信内容,如:您的短信群发功能已开通,请在3个工作日之内至平台进行企业认证! 短信内容和模板ID必须传入1个;当短信内容和模板ID都传入时,传入内容生效,模板ID属性失效;
    "template_id":1, //模板ID(内容为空则必填)
    "template_var":{"${name}":"张三","${order_no}":"202009041156181103"}, //选择模板时,且模板是变量模板时,可以传入变量值,需要传入json格式;
    "send_time":"2020-08-26 16:08:14", //定时发送时间
}
var json_data = JSON.stringify(values);

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