define(function (require, exports, module) { var parser = require("../platform/parser.js"); var ajax = require("../platform/webRequest.js"); var sessMgr = require("../account/sessionMgr.js"); var fastAddPassenger = function (type, name, idtype, id, countryCode) { var def = new $.Deferred(); var p = { passenger_name: name, passenger_id_type_code: idtype, passenger_id_no: id, passenger_type: type, country_code: countryCode || "CN" }; var request = ajax.sendPost("passengers/realAdd", "confirmPassenger/initDc", p); request.done(function () { var modal = this.model; if (!modal.data) { def.reject("网络错误"); return; } var response = modal.data; if (response.flag) { //成功? parser.processPassenger([p]); p.total_times = response.totalTimes; if (parser.canPassageAddToOrder(p)) { sessMgr.getPassengers(function (plist) { plist.push(p); sessMgr.savePassengers(); sessMgr.fireEvent("addPassenger", p); }); def.resolve(p); } else { def.reject("联系人添加成功,但是未通过12306实名认证,无法订票。"); } } else { def.reject((response && response.message) || "网络错误"); } }).fail(function () { def.reject(this + ''); }); return def.promise(); }; return { fastAddPassenger: fastAddPassenger } });