2014-09-01 13:50:43 +08:00
|
|
|
|
var NoComplete = {
|
|
|
|
|
token: '',
|
|
|
|
|
bankId: '',
|
|
|
|
|
payLoading: null,
|
|
|
|
|
curNo: '',
|
|
|
|
|
init: function() {
|
|
|
|
|
if ($('#no_complete_page').length == 0) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
Public.checkLogin(NoComplete.getOrder);
|
|
|
|
|
NoComplete.getToken();
|
|
|
|
|
|
|
|
|
|
$('[data-no]').live('click', function() {
|
|
|
|
|
NoComplete.curNo = $(this).attr('data-no');
|
|
|
|
|
NoComplete.selectBank();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('[data-fn="close_bank"]').live('click', function() {
|
|
|
|
|
Public.hideInnerPage();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#banks [data-bank]').live('click', function() {
|
|
|
|
|
NoComplete.bankId = $(this).attr('data-bank');
|
|
|
|
|
NoComplete.payLoading = Public.showLoading('正在加载');
|
|
|
|
|
NoComplete.pay();
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
getOrder: function() {
|
|
|
|
|
// Referer: https://dynamic.12306.cn/otsweb/loginAction.do?method=init
|
|
|
|
|
bootStrap.get("queryOrder/queryMyOrderNoComplete", "json", null, "queryOrder/initNoComplete").done(function(json) {
|
|
|
|
|
if (!!json['status'] && !!json['data'] && !!json['data']['orderDBList'] && json['data']['orderDBList'].length > 0) {
|
|
|
|
|
NoComplete.setHtml(json['data']['orderDBList']);
|
|
|
|
|
}
|
|
|
|
|
}).fail(function(xhr, type) {
|
|
|
|
|
console.log(xhr, type);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
getToken: function() {
|
|
|
|
|
bootStrap.post('queryOrder/initNoComplete', 'html', null, "payOrder/init").done(function(json) {
|
|
|
|
|
var token = json.match(/\S+\s+globalRepeatSubmitToken\s+=\s+\S+/)[0];
|
|
|
|
|
eval(json.match(/\S+\s+globalRepeatSubmitToken\s+=\s+\S+/)[0]);
|
|
|
|
|
if (globalRepeatSubmitToken) {
|
|
|
|
|
NoComplete.token = globalRepeatSubmitToken;
|
|
|
|
|
}
|
|
|
|
|
}).fail(function() {
|
|
|
|
|
Public.alert("12306不给力啊,唉。出现网络错误了,请重试..");
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
setHtml: function(list) {
|
|
|
|
|
var html = "",
|
|
|
|
|
payLimitTime = 0;
|
|
|
|
|
console.log(list);
|
|
|
|
|
for (var i = 0, len = list.length; i < len; i++) {
|
|
|
|
|
html += '<div class="orders_title">订单号:' + list[i]['sequence_no'] + '</div>';
|
|
|
|
|
html += '<div class="order_tickets">';
|
|
|
|
|
payLimitTime = new Date(list[i]['tickets'][0]['pay_limit_time'].replace(/\-/gi,'/')).getTime();
|
|
|
|
|
for (var j = 0; j < list[i]['tickets'].length; j++) {
|
|
|
|
|
html += '<div class="ticket">';
|
|
|
|
|
html += '<div class="ticket_title"><span class="pull_right">K2341</span>' + (new Date(list[i]['start_train_date_page'].replace(/\-/gi, '/'))).format('yyyy-M-d') + ' ' + (new Date(list[i]['start_train_date_page'].replace(/\-/gi, '/'))).day(3) + '</div>';
|
|
|
|
|
html += '<div class="stations_info">';
|
|
|
|
|
html += '<div class="station_info"><strong>' + list[i]['from_station_name_page'][0] + '</strong>' + list[i]['start_time_page'] + '</div>';
|
|
|
|
|
html += '<div class="station_info"><strong>' + list[i]['to_station_name_page'][0] + '</strong>' + list[i]['arrive_time_page'] + '</div>';
|
|
|
|
|
html += '</div>';
|
|
|
|
|
html += '<div class="ticket_passenger">';
|
|
|
|
|
html += '<strong class="text_lg">' + list[i]['tickets'][j]['passengerDTO']['passenger_name'] + '</strong>';
|
|
|
|
|
html += '<span class="text_gray">' + list[i]['tickets'][j]['passengerDTO']['passenger_id_no'] + '</span>';
|
|
|
|
|
html += '</div>';
|
|
|
|
|
html += '<div class="ticket_info"><span class="pull_right">' + list[i]['tickets'][j]['str_ticket_price_page'] + '元</span>';
|
|
|
|
|
html += list[i]['tickets'][j]['ticket_type_name'];
|
|
|
|
|
html += ' ' + list[i]['tickets'][j]['seat_type_name'];
|
|
|
|
|
html += ' ' + list[i]['tickets'][j]['coach_name'] + '车';
|
|
|
|
|
html += list[i]['tickets'][j]['seat_name'];
|
|
|
|
|
html += '</div>';
|
|
|
|
|
html += '</div>';
|
|
|
|
|
|
|
|
|
|
// html += '<p>' + list[i]['tickets'][j]['passengerDTO']['passenger_name'] +
|
|
|
|
|
// ' ' + list[i]['tickets'][j]['ticket_type_name'] +
|
|
|
|
|
// ' ' + list[i]['tickets'][j]['seat_type_name'] +
|
|
|
|
|
// ' ' + list[i]['tickets'][j]['seat_name'] +
|
|
|
|
|
// ' ' + list[i]['tickets'][j]['str_ticket_price_page'] + '</p>';
|
|
|
|
|
// html += '<p><a href="javascript:;" data-no="' + list[i]['sequence_no'] + '">支付</a></p>'
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
html += '</div>';
|
|
|
|
|
html += '<div class="order_pay_info">';
|
|
|
|
|
html += '<p>席位已成功锁定,请您在<strong class="pay_time" data-limittime="' + payLimitTime + '" data-orderno="' + list[i]['sequence_no'] + '"></strong>内进行网上支付,否则席位将自动释放给其他旅客。</p>';
|
|
|
|
|
html += '<div class="pay_info clearfix"><a href="javascript:;" class="btn btn_success pull_right" data-no="' + list[i]['sequence_no'] + '">立即支付</a><span class="pay_money">' + list[i]['ticket_total_price_page'] + '元</span></div>'
|
|
|
|
|
html += '</div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// html += '<p>订单日期:' + list[i]['order_date'] + '</p>';
|
|
|
|
|
// html += '<p>发车时间:' + list[i]['start_train_date_page'] + '</p>';
|
|
|
|
|
// html += '<p>车次:' + list[i]['train_code_page'] + '</p>';
|
|
|
|
|
// html += '<p>发到站:' + list[i]['from_station_name_page'][0] + ' dao ' + list[i]['to_station_name_page'][0] + '</p>';
|
|
|
|
|
// html += '<p>金额:' + list[i]['ticket_total_price_page'] + '</p>';
|
|
|
|
|
|
|
|
|
|
// for (var j = 0; j < list[i]['tickets'].length; j++) {
|
|
|
|
|
// html += '<p>' + list[i]['tickets'][j]['passengerDTO']['passenger_name'] +
|
|
|
|
|
// ' ' + list[i]['tickets'][j]['ticket_type_name'] +
|
|
|
|
|
// ' ' + list[i]['tickets'][j]['seat_type_name'] +
|
|
|
|
|
// ' ' + list[i]['tickets'][j]['seat_name'] +
|
|
|
|
|
// ' ' + list[i]['tickets'][j]['str_ticket_price_page'] + '</p>';
|
|
|
|
|
// html += '<p><a href="javascript:;" data-no="' + list[i]['sequence_no'] + '">支付</a></p>'
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
$('#orders').html(html);
|
|
|
|
|
NoComplete.countdown();
|
|
|
|
|
},
|
|
|
|
|
countdown: function() {
|
|
|
|
|
$('[data-limittime]').each(function(idx, el) {
|
|
|
|
|
var $this = $(el),
|
|
|
|
|
order = $this.attr('data-orderno'),
|
|
|
|
|
time = (new Date(parseInt($this.attr('data-limittime')))).getTime() - (new Date()).getTime();
|
|
|
|
|
if (time > 2700000) {
|
|
|
|
|
$this.closest('p').html('订单已过期');
|
|
|
|
|
$('[data-no="' + order + '"').html('订单已过期').addClass('btn_gray');
|
|
|
|
|
} else {
|
|
|
|
|
$this.html(NoComplete.gm(time));
|
2014-09-01 18:09:58 +08:00
|
|
|
|
$('.pay_tip_info .text_warning').html(NoComplete.gm(time));
|
2014-09-01 13:50:43 +08:00
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
setTimeout(NoComplete.countdown, 1000);
|
|
|
|
|
},
|
|
|
|
|
gm: function(n) {
|
|
|
|
|
var m = parseInt(n / 60000),
|
|
|
|
|
s = parseInt(n % 60000 / 1000);
|
|
|
|
|
if (m < 10) {
|
|
|
|
|
m = '0' + m;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (s < 10) {
|
|
|
|
|
s = '0' + s;
|
|
|
|
|
}
|
|
|
|
|
return m + ':' + s;
|
|
|
|
|
},
|
|
|
|
|
selectBank: function() {
|
|
|
|
|
// $('#banks').show();
|
|
|
|
|
Public.showInnerPage('banks');
|
|
|
|
|
},
|
|
|
|
|
pay: function(no, type) {
|
|
|
|
|
|
|
|
|
|
var data = {
|
|
|
|
|
"sequence_no": NoComplete.curNo,
|
|
|
|
|
"pay_flag": 'pay',
|
|
|
|
|
"_json_att": "",
|
|
|
|
|
"REPEAT_SUBMIT_TOKEN": NoComplete.token
|
|
|
|
|
}
|
|
|
|
|
$('span', NoComplete.payLoading).html('正在获取支付信息');
|
|
|
|
|
bootStrap.post('queryOrder/continuePayNoCompleteMyOrder', 'json', data, "queryOrder/initNoComplete").done(function(response) {
|
|
|
|
|
if (response.status) {
|
|
|
|
|
if (response.data.existError == "Y") {
|
|
|
|
|
Public.alert(response.data.errorMsg);
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
bootStrap.post('payOrder/paycheck', 'json', {
|
|
|
|
|
"_json_att": ""
|
|
|
|
|
}, "payOrder/init").done(function(json) {
|
|
|
|
|
NoComplete.submitPay(json['data']['payForm']);
|
|
|
|
|
|
|
|
|
|
}).fail(function() {
|
|
|
|
|
Public.alert("12306不给力啊,唉。出现网络错误了,请重试..");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}).fail(function() {
|
|
|
|
|
Public.alert("12306不给力啊,唉。出现网络错误了,请重试..");
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
analyzeFormData: function(text) {
|
|
|
|
|
var data = {};
|
|
|
|
|
var reg = /<input[\s\w\W]*?(name|value)="([\s\w\W]*?)"[\s\w\W]*?(name|value)=['"]([\s\w\W]*?)['"][\s\w\W]*?\/?>/g;
|
|
|
|
|
var m = null;
|
|
|
|
|
while ((m = reg.exec(text)) != null) {
|
|
|
|
|
if (m[1] == "name")
|
|
|
|
|
data[m[2]] = m[4];
|
|
|
|
|
else
|
|
|
|
|
data[m[4]] = m[2];
|
|
|
|
|
}
|
|
|
|
|
return data;
|
|
|
|
|
},
|
|
|
|
|
submitPay: function(formdata) {
|
|
|
|
|
var data = {
|
|
|
|
|
"_json_att": '',
|
|
|
|
|
"interfaceName": formdata['interfaceName'],
|
|
|
|
|
"interfaceVersion": formdata['interfaceVersion'],
|
|
|
|
|
"tranData": formdata["tranData"],
|
|
|
|
|
"merSignMsg": formdata["merSignMsg"],
|
|
|
|
|
"appId": formdata['appId'],
|
|
|
|
|
"transType": formdata['transType']
|
|
|
|
|
}
|
|
|
|
|
$('span', NoComplete.payLoading).html('正在提交支付请求');
|
|
|
|
|
bootStrap.post('https://epay.12306.cn/pay/payGateway', 'html', data, "payOrder/init").done(function(html) {
|
|
|
|
|
var data = NoComplete.analyzeFormData(html);
|
|
|
|
|
data.bankId = NoComplete.bankId;
|
|
|
|
|
bootStrap.post('https://epay.12306.cn/pay/webBusiness', 'html', data, "https://epay.12306.cn/pay/payGateway").done(function(result) {
|
|
|
|
|
var formdata = NoComplete.analyzeFormData(result);
|
|
|
|
|
var htmlbank = result.replace(/[\n\t\r]/gi, '').replace(/>\s+</gi, '><').match(/<form.*\/form>/gi);
|
|
|
|
|
if (htmlbank.length > 0) {
|
|
|
|
|
$('span', NoComplete.payLoading).html('正在向银行提交支付请求');
|
|
|
|
|
$('#hideHtml').html(htmlbank[0]);
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
$('form[name="myform"]').submit();
|
|
|
|
|
}, 1000);
|
|
|
|
|
}
|
|
|
|
|
}).fail(function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}).fail(function() {
|
|
|
|
|
Public.alert("12306不给力啊,唉。出现网络错误了,请重试..");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|