名称 | 是否必须 | 示例值 | 说明 |
---|---|---|---|
请求地址 | UTF-8 | http://dc.28inter.com/sms.aspx | 如果服务器不支持解析, 请联系技术人员进行协助处理! |
名称 | 是否必须 | 示例值 | 描述 |
---|---|---|---|
发送任务命令 | 必须 | 固定设置为:send | 设置为固定的:send |
帐户 | 必须 | 28inter | 注册获或系统管理员分配取,登陆账号 |
密码 | 必须 | 123456 | 注册或系统管理员分配获取,登陆密码 |
用户ID | 必须 | 1001 | 注册或系统管理员分配获取,账户ID |
发送号码 | 必须 | 13000000000,13000000001 | 短信接收号码。支持单个或多个手机号码,传入号码为11位手机号码,不能加0或86。群发短信需传入多个号码,以英文逗号分隔,一次调用最多传入200个号码示例:13000000000,13000000001 |
发送内容 | 必须 | 【创信信息】您的验证码是:123456 | 发送短信的内容,整体做用urlencode。短信的格式为:【签名】放在内容的最前方。 |
sendtime | 可选 | 2000-12-31 00:00:10 | 短信定时发送时间。不设置默认为立即发送。格式为:YYYY-MM-DD HH:MM:SS |
rt | 可选 | json | 固定值 json,不填则为XML格式返回 |
NODE.JS实例 |
---|
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith); } else { return this.replace(reallyDo, replaceWith); } }; var dom = require('xmldom').DOMParser; var _baseUri = "http://dc.28inter.com/sms.aspx?action=send" var _userAgent = "node-cxsms" /** * sms constructure. * @param userid ID * @param account 用户名 * @param password 接口密码 */ var sms = function(userid, account, password) { this.spidex = require("spidex"); this.spidex.setDefaultUserAgent(_userAgent); this.userid = userid; this.account = account; this.password = password; }; /** * send an SMS. * @param mobile * @param content * @param callback */ sms.prototype.send = function(mobile, content, callback) { var data = { account : this.account, password : this.password, mobile : mobile, content : content }; this.spidex.post(_baseUri, function(html, status) { if(status !== 200) { callback(new Error("短信发送服务器响应失败。")); return; } html = html.replaceAll("\r", ""); html = html.replaceAll("\n", ""); html = html.replaceAll(" xmlns=\"http://dc.28inter.com/\"", "");
//console.log(html); var doc = new dom().parseFromString(html); var result = doc.lastChild; var json = {}; for(var node = result.firstChild; node !== null; node = node.nextSibling) { json[node.tagName] = node.firstChild.data; } //console.log(json); if(json.code == "2") { callback(null, json.smsid); } else { callback(new Error(json.msg, parseInt(json.code))); } }, data, "utf8").on("err", function(e) { callback(e); }); }; module.exports = sms; |