您的位置:首页 > Web前端 > Node.js

node封装短信发送

2017-09-06 15:18 253 查看

掌骏传媒短信接口

 请求地址的url,

http://120.77.14.55:8888/v2sms.aspx 对应UTF-8
http://120.77.14.55:8888/v2smsGBK.aspx 对应GB2312
this.api ="http://120.77.14.55:8888/v2sms.aspx"

let opts =url.parse(this.api);

上传方式用POST

opts.method ="POST";

填充上传参数

userid

企业id

企业ID

timestamp

时间戳

系统当前时间字符串,年月日时分秒,例如:20120701231212

sign

签名

使用 账号+密码+时间戳 生成MD5字符串作为签名。MD5生成32位,且需要小写

例如:

账号是test

密码是mima

时间戳是20120701231212

就需要用testmima20120701231212

来生成MD5的签名,生成的签名为5cc68982f55ac74348e3d819f868fbe1

其他参数没错的话,提示错误的时候检查加密结果对不对。

mobile

全部被叫号码

发信发送的目的号码.多个号码之间用半角逗号隔开 

content

发送内容

短信的内容,内容需要UTF-8编码

sendTime

定时发送时间

为空表示立即发送,定时发送格式2010-10-24 09:08:10

action

发送任务命令

设置为固定的:send

extno

扩展子号

请先询问配置的通道是否支持扩展子号,如果不支持,请填空。子号只能为数字,且最多10位数。

提交必须是字符串 例如:
action=send&userid=12&tamp=20120701231212&sign =5cc68982f55ac74348e3d819f868fbe1&mobile=15023239810,13527576163&content=内容&sendTime=&extno=

先定义成对象 
qs.stringify()  转义成字符串

let timestamp ="20170905152700";
let obj = {
action: "action",
userid: "",
timestamp: timestamp,
}
obj.sign =this.createSign(timestamp);
let param =qs.stringify(obj);
return this._send(param);

引入this.api的url路径

提交方法 opts.method="POST"

_send(data) {
let opts =url.parse(this.api);
opts.method ="POST";
opts.headers = {
"Content-Length":Buffer.byteLength(data),//提交时按照,计算出的data长度提交
"Content-Type":"application/x-www-form-urlencoded"
};
return newPromise((resolve,reject)=> {
            let
request = http.request(opts,function(res) {
                let
chunks = [], len =
0;
                res.on("data",function(chunk) {
                    chunks.push(chunk);
                    len +=
chunk.length;
                }).on("end",function() {
                    let
buf = Buffer.concat(chunks,len);
                    let
str = buf.toString();
                    resolve(str);
                });
            });
            request.write(data);
            request.end();
        });
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: