NODE.JS
NODE.JS代碼示例
/* * * 接口類(lèi)型:達(dá)信通觸發(fā)短信接口,支持發(fā)送驗(yàn)證碼短信、訂單通知短信等。 * 賬戶(hù)注冊(cè):請(qǐng)通過(guò)該地址開(kāi)通賬戶(hù)http://sms.wx96.com/register.html * 注意事項(xiàng): *(1)調(diào)試期間,請(qǐng)用默認(rèn)的模板進(jìn)行測(cè)試,默認(rèn)模板詳見(jiàn)接口文檔; *(2)請(qǐng)使用 用戶(hù)名 及 APIkey來(lái)調(diào)用接口,APIkey在會(huì)員中心可以獲取; *(3)該代碼僅供接入達(dá)信通短信接口參考使用,客戶(hù)可根據(jù)實(shí)際需要自行編寫(xiě); */ /** * 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 查看密碼請(qǐng)登錄用戶(hù)中心->驗(yàn)證碼、通知短信->帳戶(hù)及簽名設(shè)置->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("短信發(fā)送服務(wù)器響應(yīng)失敗。")); 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;