NODE.JS
NODE.JS代碼示例
/* * * 接口類型:達信通觸發短信接口,支持發送驗證碼短信、訂單通知短信等。 * 賬戶注冊:請通過該地址開通賬戶http://sms.wx96.com/register.html * 注意事項: *(1)調試期間,請用默認的模板進行測試,默認模板詳見接口文檔; *(2)請使用 用戶名 及 APIkey來調用接口,APIkey在會員中心可以獲取; *(3)該代碼僅供接入達信通短信接口參考使用,客戶可根據實際需要自行編寫; */ /** * Created by XadillaX on 14-2-12. * https://github.com/XadillaX/wx96106js
*/ 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://106.wx96.com/webservice/sms.php?method=Submit";
var _userAgent = "node-wx96106-module by 死月 (admin@xcoder.in)";
/** * wx96 constructure.
* @param account * @param password 查看密碼請登錄用戶中心->驗證碼、通知短信->帳戶及簽名設置->APIKEY */ var wx96 = function(account, password) {
this.spidex = require("spidex"); this.spidex.setDefaultUserAgent(_userAgent); this.account = account; this.password = password; }; /** * send an SMS. * @param mobile * @param content * @param callback */ wx96.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://106.wx96.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 = wx96;