Node.js接入云片网短信-发送短信

来源:互联网 发布:怎么查看淘宝下单时间 编辑:程序博客网 时间:2024/06/05 20:33

之前开发的公司的一个物流司机送货的app,后来需要接入短信放功能。就是当司机开始送货的时候,就发送一个短信给客户,提示他,他的货物将在3小时内送达。为此当初在选择短信平台的时候,选择了一家武汉本地的平台–云片网。目前已经使用了3个月,还没发现上面异常。今天就把后台接入短信功能分享出来。

获取APPKEY

登录云片网

云片网。点击左上角的登录按钮,输入你的账号和密码即可。

获取APPKEY

这里写图片描述
这里我们就可以获取到APPKEY。

查看接口文档

由于云片网未提供Node.js的SDK,所以我使用的API接口对接的。
短信API接口文档。

使用

添加模板

添加模板-文档。
接口:https://sms.yunpian.com/v2/tpl/add.json
参数:
这里写图片描述
返回:

{    "tpl_id": 1,                 //模板id    "tpl_content": "【云片网】您的验证码是#code#", //模板内容    "check_status": "CHECKING",     //审核状态:CHECKING/SUCCESS/FAIL    "reason": null                  //审核未通过的原因}

代码实例:

router.all('/api/add', function(req, res, next) {    var urlStr = 'https://sms.yunpian.com/v2/tpl/add.json';    request.post({        url: urlStr,        form: {            apikey: APIKEY,            tpl_content: '模板内容',        }},        function(error, response, body){            if (!error && response.statusCode == 200) {                var moban = {};                var jsBody = JSON.parse(body);                 if (jsBody.check_status == 'CHECKING') {                    res.end(JSON.stringify({                        msg: '短信模板新建成功',                        status: 100                    }));                } else{                    res.end(JSON.stringify({                        msg: '短信模板新建失败',                        status: 101                    }));                }            }else{                res.end(JSON.stringify({                    msg: '短信模板新建失败',                    status: 102                }));            }        }    )})

上面的需要注意tpl_id模板id这个。后面再发送短信的时候需要用到。

获取短息模板

取模板-文档。
接口:https://sms.yunpian.com/v2/tpl/get.json
参数:
这里写图片描述
返回:
1)指定id时,调用成功的返回值示例:

{    "tpl_id": 1,    "tpl_content": "您的验证码是#code#",    "check_status": "FAIL",    "reason": "模板开头必须带签名,如【云片网络】" //审核未通过的原因}

2)未指定id时,调用成功的返回值示例:

[{    "tpl_id": 1,    "tpl_content": "您的验证码是#code#",    "check_status": "FAIL",    "reason ": "模板开头必须带签名,如【云片网】"},{    "tpl_id": 2,    "tpl_content": "【云片网】您的验证码是#code#。如非本人操作,请忽略本短信",    "check_status": "SUCCESS",    "reason ": null}]

代码实例:

router.all('/api/sendMessage', function(req, res, next) {    var param = req.query || req.params;     var tel = param.tel; // 获取用户手机号      if (tel == undefined || tel.length < 11) {        res.end(JSON.stringify({            msg: '请传入正确的参数',            status: 103        }));        return;    }    // 取模板接口  POST    var urlStr1 = 'https://sms.yunpian.com/v2/tpl/get.json';    // 国内单条  发送短信    var urlStr2 = 'https://sms.yunpian.com/v2/sms/single_send.json';    request.post({        url: urlStr1,        form: {            apikey: APIKEY        }},        function(error, response, body){            if (!error && response.statusCode == 200) {                var moban = {};                var jsBody = JSON.parse(body);                 moban.status = 100;                moban.msg = '操作成功';                moban.list = jsBody                var duanxin = moban.list[1].tpl_content;                // 发送短信                sendSingleMessage(urlStr2,tel,duanxin,res);            }else{                res.end(JSON.stringify({                    msg: '获取短信模板失败',                    status: 102                }));            }        }    )});

这里我的云片里面不知一个短信模板,所以我们传模板id,由于用户不需要知道后端的取模板操作,所以,我直接写在了发送里面。实际是在发送之前有个取模板的操作,前端只需要传递用户的手机号即可。

单条发送

接口:https://sms.yunpian.com/v2/sms/single_send.json
参数:
这里写图片描述
代码实例:
这个需要结合上线的获取模板操作一个看。

function sendSingleMessage(urlStr,mobile,duanxin,res){    // 发送短信    request.post({        url: urlStr,        form: {            apikey: APIKEY,            mobile: mobile,            text: duanxin        }},        function(error, response, body){            if (!error && response.statusCode == 200) {                var xuanxin = {};                var jsBody = JSON.parse(body);                 xuanxin.status = 100;                xuanxin.msg = '操作成功';                xuanxin.data = jsBody                res.end(JSON.stringify(xuanxin));            }else{                res.end(JSON.stringify({                    msg: '短信发送失败',                    status: 102                }));            }        }    )}

总结

总体上来说,云片网的API接口使用并不难。看稳文档即可。
但是还是request模块的使用。

原创粉丝点击