Merge branch 'master' of https://github.com/hainatravel/information-system
commit
80bebefca3
@ -0,0 +1,76 @@
|
||||
<div style="width:90%;margin:30px auto;">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">交易记录导出 <a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/train/index/ht_order_list');?>">订单列表>></a> </h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form style="width: 80%;" action="/info.php/apps/trainsystem/api/lanhai_export_excel/" method="post">
|
||||
<input type="text" name="from_date" class="date" value="<?php echo empty($from_date)?"":$from_date;?>" autocomplete="off" placeholder="开始日期"> 至
|
||||
<input type="text" name="to_date" class="date" value="<?php echo empty($to_date)?"":$to_date;?>" autocomplete="off" placeholder="结束日期">
|
||||
显示列表:<input type="checkbox" <?php echo empty($examine)?"":"checked";?> name="examine" />
|
||||
<button type="submit" id="sub" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-download-alt"></span> Download</button>
|
||||
</form>
|
||||
<p style="margin: 0 0 10px; width: 200px; float: left; line-height: 30px;">
|
||||
<!-- <table class="table table-hover" >
|
||||
<thead>
|
||||
<tr><th>时间</th><th>信息</th><th>变化值</th><th>团名</th><th>外联</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr data-id="161130252" title="Popover title" data-container="body" data-toggle="popover" data-placement="top" data-content="顶部的 Popover 中的一些内容">
|
||||
<td>2016-12-01 11:18:28</td>
|
||||
<td> 票款(有充值)</td>
|
||||
<td>-1106.00</td>
|
||||
<td>R161228-BYW161130252</td>
|
||||
<td>李毅文</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table> -->
|
||||
<div class="row <?php echo empty($examine)?"hidden":"";?>" style="width:90%;margin:0 auto;">
|
||||
<div class="">
|
||||
<table class="table table-hover" id="list_table">
|
||||
<thead>
|
||||
<tr><th>时间</th><th>信息</th><th>变化值</th><th>团名</th><th>外联</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<?php foreach ($data as $key => $value) {?>
|
||||
<tr data-id="<?php echo $value[8];?>" title="Popover title" data-container="body" data-toggle="popover" data-placement="top" data-content="顶部的 Popover 中的一些内容">
|
||||
<td><?php echo $value[2];?></td><td><?php echo $value[3];?></td><td><?php echo $value[1];?></td><td><?php echo $value[6];?></td><td><?php echo $value[7];?></td>
|
||||
</tr>
|
||||
<?php }?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="popover fade top in" role="tooltip" id="popover" style="width:auto;max-width: 100% !important;top: 139.6px; left: 50%; display: none;">
|
||||
<div class="arrow"></div>
|
||||
<h3 class="popover-title">我的支付</h3>
|
||||
<div class="popover-content">
|
||||
<table class="table" id="my_pay_data">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>序号</td><td>车次</td><td>出发日期</td><td>价格</td><td>备注</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function(){
|
||||
$(".date").datepicker({
|
||||
'dateFormat': 'yy-mm-dd',
|
||||
'autoclose': true
|
||||
});
|
||||
|
||||
})
|
||||
</script>
|
@ -0,0 +1,117 @@
|
||||
/*携程出票发送信息*/
|
||||
{
|
||||
"train": {
|
||||
"FOI_SN": 421000463,
|
||||
"DepartureCity": "Guilin",
|
||||
"ArrivalCity": "Guilin Bei (North)",
|
||||
"FOI_COLD_SN": 586000781,
|
||||
"DepartAirport": "GLZ",
|
||||
"ArrivalAirport": "GBZ",
|
||||
"FlightsNo": "G2910",
|
||||
"Aircraft": "O",
|
||||
"Cabin": "2nd Class Seat",
|
||||
"DepartureDate": "2023-04-15 00:00:00",
|
||||
"FOI_SelectedSeat": "1A,1B,1C",
|
||||
"DepartAirport_cn": "\u6842\u6797",
|
||||
"ArrivalAirport_cn": "\u6842\u6797\u5317",
|
||||
"FOI_TrainNetOrderNo": null,
|
||||
"adultcost": 6,
|
||||
"childcost": 3,
|
||||
"adultprice": 7,
|
||||
"childprice": 7,
|
||||
"ArrivalTime": "08:28AM Apr.15, 2023",
|
||||
"DepartureTime": "08:18AM Apr.15, 2023",
|
||||
"FOI_SaleDate": null
|
||||
},
|
||||
"people_list": [{
|
||||
"BPE_SN": 571000773,
|
||||
"BPE_FirstName": "",
|
||||
"BPE_MiddleName": null,
|
||||
"BPE_LastName": "AAA",
|
||||
"BPE_GuestType": 1,
|
||||
"BPE_Passport": "111",
|
||||
"BPE_PassportType": "Passport No.",
|
||||
"BPE_SEX": 100001,
|
||||
"BPE_BirthDate": "1957-03-04",
|
||||
"BPE_PassExpdate": "2023-04-14"
|
||||
}, {
|
||||
"BPE_SN": 571000774,
|
||||
"BPE_FirstName": "",
|
||||
"BPE_MiddleName": null,
|
||||
"BPE_LastName": "BBB",
|
||||
"BPE_GuestType": 1,
|
||||
"BPE_Passport": "2222",
|
||||
"BPE_PassportType": "Passport No.",
|
||||
"BPE_SEX": 100001,
|
||||
"BPE_BirthDate": "2005-03-29",
|
||||
"BPE_PassExpdate": "2025-04-08"
|
||||
}, {
|
||||
"BPE_SN": 571000775,
|
||||
"BPE_FirstName": "",
|
||||
"BPE_MiddleName": null,
|
||||
"BPE_LastName": "CCCC",
|
||||
"BPE_GuestType": 1,
|
||||
"BPE_Passport": "33333",
|
||||
"BPE_PassportType": "Passport No.",
|
||||
"BPE_SEX": 100003,
|
||||
"BPE_BirthDate": "2007-04-23",
|
||||
"BPE_PassExpdate": "2030-04-16"
|
||||
}
|
||||
],
|
||||
"email": "vivi@hainatravel.com"
|
||||
}
|
||||
|
||||
/*订单信息*/
|
||||
{
|
||||
"wl": [
|
||||
{
|
||||
"Name": "Vivi Chen",
|
||||
"OPI_Name": "陈媛明",
|
||||
"OPI_Email": "vivi@chinahighlights.com",
|
||||
"tel": "86-0773-2823567",
|
||||
"Mobile": "86-18877331805",
|
||||
"Email": "vivi@chinahighlights.com"
|
||||
}
|
||||
],
|
||||
"info": [
|
||||
{
|
||||
"people": [
|
||||
{
|
||||
"BPE_SN": 559006230,
|
||||
"BPE_FirstName": "",
|
||||
"BPE_MiddleName": null,
|
||||
"BPE_LastName": "ZHANG HAIHUA",
|
||||
"BPE_GuestType": 1,
|
||||
"BPE_Passport": "G41163238",
|
||||
"BPE_PassportType": "Passport No."
|
||||
}
|
||||
],
|
||||
"train": {
|
||||
"FOI_SN": 409004469,
|
||||
"DepartureCity": "Beijing Nan (South)",
|
||||
"ArrivalCity": "Yiwu",
|
||||
"FOI_COLD_SN": 574005898,
|
||||
"DepartAirport": "VNP",
|
||||
"ArrivalAirport": "YWH",
|
||||
"FlightsNo": "G191",
|
||||
"Aircraft": "M",
|
||||
"Cabin": "1st Class Seat",
|
||||
"DepartureDate": "2021-10-26 00:00:00",
|
||||
"FOI_SelectedSeat": "1F",
|
||||
"DepartAirport_cn": "北京南",
|
||||
"ArrivalAirport_cn": "义乌",
|
||||
"FOI_TrainNetOrderNo": null,
|
||||
"adultcost": 1061.5,
|
||||
"childcost": 530.75,
|
||||
"adultprice": 179,
|
||||
"childprice": 93,
|
||||
"ArrivalTime": "22:14 Oct.26, 2021",
|
||||
"DepartureTime": "15:18 Oct.26, 2021",
|
||||
"FOI_SaleDate": null
|
||||
},
|
||||
"status": true
|
||||
}
|
||||
],
|
||||
"cols_id": "2110265554",
|
||||
"balance": "NULL"
|
||||
}
|
@ -0,0 +1,396 @@
|
||||
|
||||
//订单提交JSON结构
|
||||
{
|
||||
"authentication": {
|
||||
"timeStamp": "2023-04-14 16:15:39",
|
||||
"serviceName": "train.addTrainOrder",
|
||||
"companyId": "1503141150",
|
||||
"messageIdentity": "1f71fab781f73caea6686c8a69600732"
|
||||
},
|
||||
"trainOrderInfo": {
|
||||
"companyId": "1503141150",
|
||||
"orderType": 2,
|
||||
"orderTicketType": 0,
|
||||
"companyOrderId": "HN1681460139569",
|
||||
"isReservationOrder": null,
|
||||
"leakCutOffTime": null,
|
||||
"orderInfo": {
|
||||
"orderTime": "2023-04-14 16:15:39",
|
||||
"ticketList": [{
|
||||
"fromStationName": "桂林",
|
||||
"toStationName": "桂林北",
|
||||
"ticketTime": "2023-04-29 08:18",
|
||||
"trainNo": "G2910",
|
||||
"allAcceptTrainNo": "",
|
||||
"acceptDepartDates": "",
|
||||
"arrivalDateTime": "2023-04-29 08:28",
|
||||
"ticketPrice": 6,
|
||||
"seatName": "二等座",
|
||||
"selectedSeat": "1A",
|
||||
"acceptSeat": "",
|
||||
"passengerList": [{
|
||||
"passengerType": 1,
|
||||
"certificateType": 1,
|
||||
"certificateNo": "oiHef47aYwngLzVN2iiBtTS80fvlfpc8",
|
||||
"certificateName": "赵鹏",
|
||||
"birthday": null,
|
||||
"realName": "赵鹏",
|
||||
"identityLimitDate": null,
|
||||
"countryCode": "",
|
||||
"contactMobile": "",
|
||||
"contactEmail": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"frontSeatFlag": 0,
|
||||
"orderRemark": ""
|
||||
},
|
||||
"contactUser": {
|
||||
"contactUserId": "",
|
||||
"contactName": "vivi",
|
||||
"companyId": "1503141150",
|
||||
"countryCode": "86",
|
||||
"contactMobile": "up3E0hBuzNbADKxufANHMg=="
|
||||
},
|
||||
"extraService": {
|
||||
"noVerifyFlag": 1,
|
||||
"lowerBerthFlag": 0,
|
||||
"lowerBerthCount": 0,
|
||||
"grabTicketRate": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//订单提交成功返回数据
|
||||
{
|
||||
"returnCode": 1,
|
||||
"returnMessage": "SUCCESS",
|
||||
"returnData": {
|
||||
"serviceName": "train.addTrainOrder",
|
||||
"companyId": "1503141150",
|
||||
"companyOrderId": "HN1681460139569",
|
||||
"operationDateTime": "2023-04-14 16:15:56",
|
||||
"orderPayDetail": {
|
||||
"orderAmount": 12.00,
|
||||
"ticketAmount": 6,
|
||||
"serveAmount": 0,
|
||||
"extraServeFees": [
|
||||
{
|
||||
"feeAmount": 6.00,
|
||||
"feeType": 141
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ResponseStatus": {
|
||||
"Timestamp": "/Date(1681460156763+0800)/",
|
||||
"Ack": "Success",
|
||||
"Errors": [],
|
||||
"Build": null,
|
||||
"Version": null,
|
||||
"Extension": [
|
||||
{
|
||||
"Id": "CLOGGING_TRACE_ID",
|
||||
"Version": null,
|
||||
"ContentType": null,
|
||||
"Value": "7715658886832531034"
|
||||
},
|
||||
{
|
||||
"Id": "RootMessageId",
|
||||
"Version": null,
|
||||
"ContentType": null,
|
||||
"Value": "100031671-0a6d18d7-467072-1571193"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//支付成功
|
||||
{
|
||||
"returnCode": 1,
|
||||
"returnMessage": "pay success",
|
||||
"returnData": {
|
||||
"serviceName": "train.companyPayOrder",
|
||||
"companyId": "1503141150",
|
||||
"companyOrderId": "HN1681700111527",
|
||||
"operationDateTime": "2023-04-17 10:55:19"
|
||||
},
|
||||
"ResponseStatus": {
|
||||
"Timestamp": "/Date(1681700119599+0800)/",
|
||||
"Ack": "Success",
|
||||
"Errors": [],
|
||||
"Build": null,
|
||||
"Version": null,
|
||||
"Extension": [{
|
||||
"Id": "CLOGGING_TRACE_ID",
|
||||
"Version": null,
|
||||
"ContentType": null,
|
||||
"Value": "489001780207311316"
|
||||
}, {
|
||||
"Id": "RootMessageId",
|
||||
"Version": null,
|
||||
"ContentType": null,
|
||||
"Value": "100031671-0a6e4a89-467138-6889241"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
//订单callback
|
||||
{
|
||||
"authentication": {
|
||||
"timeStamp": "2023-04-19 14:19:26",
|
||||
"serviceName": "notice.ticketresult",
|
||||
"messageIdentity": "8c82312e95158e289fd453f33114e0d2",
|
||||
"companyId": "1503141150"
|
||||
},
|
||||
"ticketResult": {
|
||||
"companyOrderId": "HN1681885121340",
|
||||
"resultCode": 1,
|
||||
"resultMsg": null,
|
||||
"ticketSuccTime": "2023-04-19 14:19:26",
|
||||
"operateTradeNo": "5027649989833265152",
|
||||
"orderMasterInfo": {
|
||||
"totalPayAmount": 12.00,
|
||||
"orderType": 2,
|
||||
"contactName": "vivi",
|
||||
"mobileNo": "up3E0hBuzNbADKxufANHMg==",
|
||||
"remark": ""
|
||||
},
|
||||
"passengerInfoList": [{
|
||||
"passengerId": 6197111157,
|
||||
"certificateType": 1,
|
||||
"certificateName": "赵鹏",
|
||||
"certificateNo": "oiHef47aYwngLzVN2iiBtTS80fvlfpc8",
|
||||
"birthday": null,
|
||||
"realName": "赵鹏",
|
||||
"passengerType": 1,
|
||||
"contactMobile": "7s0sfWX+Bx8=",
|
||||
"contactEmail": "7s0sfWX+Bx8="
|
||||
}
|
||||
],
|
||||
"orderRouteInfoList": [{
|
||||
"routeId": 1136901379,
|
||||
"departTime": "2023-04-30 10:16:00",
|
||||
"arrivalTime": "2023-04-30 10:26:00",
|
||||
"ticketCount": 1,
|
||||
"ticketPrice": 6.00,
|
||||
"fromStationName": "桂林",
|
||||
"toStationName": "桂林北",
|
||||
"trainNo": "D8268",
|
||||
"ticketSeat": "二等座",
|
||||
"acceptSeat": null,
|
||||
"routeNo": 1,
|
||||
"elecNo": "EJW2232127",
|
||||
"checkWindow": "检票口6"
|
||||
}
|
||||
],
|
||||
"orderTicketInfoList": [{
|
||||
"ticketId": 892585335,
|
||||
"routeId": 1136901379,
|
||||
"passengerId": 6197111157,
|
||||
"realTicketPrice": 6.00,
|
||||
"seatName": "二等座",
|
||||
"carriageNo": "7",
|
||||
"seatNo": "14B号",
|
||||
"createTime": "2023-04-19 14:19:26",
|
||||
"longElecNo": "23174648650D82685902",
|
||||
"quickPass": 0,
|
||||
"trainStatus": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*退票提交数据结构
|
||||
*/
|
||||
{
|
||||
"authentication": {
|
||||
"timeStamp": "2023-04-28 09:46:40",
|
||||
"serviceName": "train.artificialTicketReturn",
|
||||
"companyId": "1503141150",
|
||||
"messageIdentity": "a46aa9f51cb8dbe299d2584aa41be93a"
|
||||
},
|
||||
"companyOrderId": "HN1681696305456",
|
||||
"operator": "vivi",
|
||||
"returnServiceFee": "15",
|
||||
"returnTicketList": [{
|
||||
"trainNo": "G2910",
|
||||
"carriageNo": "4",
|
||||
"seatNo": "5F\u53f7",
|
||||
"longElecNo": "23383214738D84519712",
|
||||
"cardFirstImage": "",
|
||||
"cardSecondImage": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
/*退票返回的数据结构*/
|
||||
{
|
||||
"ResponseStatus": {
|
||||
"Timestamp": "/Date(1683186036147+0800)/",
|
||||
"Ack": "Success",
|
||||
"Errors": [],
|
||||
"Build": null,
|
||||
"Version": null,
|
||||
"Extension": [{
|
||||
"Id": "CLOGGING_TRACE_ID",
|
||||
"Version": null,
|
||||
"ContentType": null,
|
||||
"Value": "5184875534824024628"
|
||||
}, {
|
||||
"Id": "RootMessageId",
|
||||
"Version": null,
|
||||
"ContentType": null,
|
||||
"Value": "100031671-0a638ae3-467551-5279705"
|
||||
}
|
||||
]
|
||||
},
|
||||
"returnCode": 0,
|
||||
"returnMessage": "车票价格需要大于 19.5才能退票"
|
||||
}
|
||||
|
||||
|
||||
/*退款calback*/
|
||||
{
|
||||
"authentication": {
|
||||
"timeStamp": "2023-05-04 11:40:15",
|
||||
"serviceName": "notice.refundresult",
|
||||
"messageIdentity": "c38f06426a3e9b11d221f6402ab4fd99",
|
||||
"companyId": "1503141150"
|
||||
},
|
||||
"refundResult": {
|
||||
"companyOrderId": "HN1683171474981",
|
||||
"refundType": 5,
|
||||
"reason": null,
|
||||
"refundTime": "2023-05-04 11:40:04",
|
||||
"tradeNo": "5033045727832576000",
|
||||
"refundAmount": 12.00,
|
||||
"operateTradeNo": null,
|
||||
"refundDetailInfoList": null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*退款 多张票的情况 长订单号等有所不同*/
|
||||
{
|
||||
"authentication": {
|
||||
"timeStamp": "2023-06-01 15:06:11",
|
||||
"serviceName": "notice.refundresult",
|
||||
"messageIdentity": "9af17693f6546dd0719cfcf3f4cbd896",
|
||||
"companyId": "4003171843"
|
||||
},
|
||||
"refundResult": {
|
||||
"companyOrderId": "HN1685430938567",
|
||||
"refundType": 2,
|
||||
"reason": null,
|
||||
"refundTime": "2023-06-01 15:06:11",
|
||||
"tradeNo": "5043244432384724992",
|
||||
"refundAmount": 271.00,
|
||||
"operateTradeNo": "5042802996723978240",
|
||||
"refundDetailInfoList": [{
|
||||
"longElecNo": "24060026739G65552055",
|
||||
"refundDetailType": 20,
|
||||
"refundDetailAmount": 271.00
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
"authentication": {
|
||||
"timeStamp": "2023-06-01 15:06:11",
|
||||
"serviceName": "notice.refundresult",
|
||||
"messageIdentity": "9af17693f6546dd0719cfcf3f4cbd896",
|
||||
"companyId": "4003171843"
|
||||
},
|
||||
"refundResult": {
|
||||
"companyOrderId": "HN1685430938567",
|
||||
"refundType": 2,
|
||||
"reason": null,
|
||||
"refundTime": "2023-06-01 15:06:11",
|
||||
"tradeNo": "5043244431617167360",
|
||||
"refundAmount": 271.00,
|
||||
"operateTradeNo": "5042809037335433216",
|
||||
"refundDetailInfoList": [{
|
||||
"longElecNo": "24060026739G65552054",
|
||||
"refundDetailType": 20,
|
||||
"refundDetailAmount": 271.00
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
//澜海出票成功返回
|
||||
{
|
||||
"authentication": {
|
||||
"timeStamp": "2024-07-10 15:40:50",
|
||||
"appId": "3649601564",
|
||||
"mainOrderId": "HN1720487984255"
|
||||
},
|
||||
"bodyInfo": {
|
||||
"agentCode": "000001428",
|
||||
"contactMobile": "17722807804",
|
||||
"currentTime": "2022-09-29 10:40:50",
|
||||
"eOrderNumber": "E5W0086985",
|
||||
"failCode": 0,
|
||||
"orderPrice": "720.0",
|
||||
"orderResultCode": 200,
|
||||
"mainOrderId": "21158540860",
|
||||
"payTradeNumber": "2022092922001429951455254961",
|
||||
"resultMsg": "出票成功",
|
||||
"ticketList": [{
|
||||
"ticketCheck": "检票口13AB",
|
||||
"arriveTime": "2022-10-04 22:33:00",
|
||||
"deliveryTicketId": 76861483,
|
||||
"departTime": "2022-10-04 20:02",
|
||||
"fromStationName": "赣县北",
|
||||
"passengerList": [{
|
||||
"carriageNo": "03",
|
||||
"passengerId": 113317051,
|
||||
"passengerName": "何沙沙",
|
||||
"passengerType": 2,
|
||||
"passportNumber": "420821198609055029",
|
||||
"passportType": "1",
|
||||
"passportTypeName": "身份证",
|
||||
"realTicketPrice": "288.0",
|
||||
"seatName": "二等座",
|
||||
"seatNo": "05D"
|
||||
}, {
|
||||
"carriageNo": "03",
|
||||
"passengerId": 113317052,
|
||||
"passengerName": "刘明山",
|
||||
"passengerType": 2,
|
||||
"passportNumber": "362121197703160012",
|
||||
"passportType": "1",
|
||||
"passportTypeName": "身份证",
|
||||
"realTicketPrice": "288.0",
|
||||
"seatName": "二等座",
|
||||
"seatNo": "06C"
|
||||
}, {
|
||||
"carriageNo": "03",
|
||||
"passengerId": 113317053,
|
||||
"passengerName": "刘沛勋【儿童票】",
|
||||
"passengerType": 3,
|
||||
"passportNumber": "360721201007070013",
|
||||
"passportType": "1",
|
||||
"passportTypeName": "身份证",
|
||||
"realTicketPrice": "144.0",
|
||||
"seatName": "二等座",
|
||||
"seatNo": "09F"
|
||||
}
|
||||
],
|
||||
"ticketCount": 3,
|
||||
"ticketPrice": "288.0",
|
||||
"toStationName": "深圳北",
|
||||
"trainNumber": "G2793"
|
||||
}
|
||||
],
|
||||
"ticketSuccessTime": "2022-09-29 10:40:50",
|
||||
"userId": 65
|
||||
}
|
||||
}
|
@ -0,0 +1,133 @@
|
||||
/*澜海返回*/
|
||||
{
|
||||
"bodyInfo": "HEYIbCfmv/d057K+gdHTKpv7FVeC4QYpF178Zu69jv0lxaHZbPc6GyiuJFTf1ZT9dFZCWKnHw0tFTZkNepGH7oLkt0CS2h1IEiSs0XPwnzKN9g/RlEaiMPh7rl9ZuBIFxaWRvyKK1cxjxb5CZxrjaIaV/Cm3hmdsIFum2vSGsuTy3FwjRty6RvI+d1rMy+XcInKWewzd9eCUgpA5u68SL9IJJ9TzbKpHI0f9ab/Cu28m2v7ZpQPWC3DgqYgP84x6NFniu0Js/PXU3e5a2lZz1z+a4gX2NvGNINMvNsClpzRzikEVTWqxhz/apLcwnDEJwS2Spt8zt9g3aVgtF6jc9QOdWZYrzuNWV2DH0mdn8Cyb1gqRK+0nLtPQt/NzO0xVLHlZuCsSTW9/r7ZjDd07gX6D+EQzDXVGpKbP+TerNOu77V+SYC5VDBYycpfa+w6Z48OzLZL5D4KN/y5lFI1cWK4MQ8IMlBHd8UUu5Rurx7yCLZvKsaxAK6MzW+Kdf7hza+B18AwPrtvXZ26H66kSF6FK4s6hvrvyeGsUxj2teHdDr9XjDsEnjw8qdamUYSModr0tfQyX5HW7bENc8w8mvCHvJS+fz/eiZctPQ+p8t+RCv0OBwIEVRtivFvkTB3M8xtsAO1oM1LtX13FoSsxyzNFB2d4rTj1K1fPbhmxMKGWmxDdPy4JOzk9OEB9cbG4a22bI/vSnp+YDqu5a/Vp9EeIBOfYUNXTpqnhBaff8ORreXEehjKJzrKZ8XKKcxo7V5S5P02RV2cO9V/v5uL/rbSPBnmR+9qizb9aBBjUKedBLVXXZO1sKJOohv71qFKXauNc6ASW/1iKl08mW4MYAlR1IL1UDr0aWhw7OhYDK+fbRlh55kALEfmn98bvwltrS56QWULdzfpTYSiVnOZ165NX8ywcT+CwF1+WGY6Hj+uYNeIulZKI9XBUKcmqat5RwUEyMNKB3KAdizeiOzp6QAomCttz7XxXJ9h+mWkhDipY8jktMX2Ss3zRCuO0lGphtFxpYdJ3sPYtQnRD71wSUeMVnNzSBcmYBwG3l2tlBrjtIddHp60ZUIYnUcFMKriPn7iO3UWWlVz/XX0ELHrLcXQ==",
|
||||
"authentication": {
|
||||
"timeStamp": "2024-07-16 15:42:48",
|
||||
"appId": "3649601564",
|
||||
"mainOrderId": "HN1721115685991"
|
||||
}
|
||||
}
|
||||
|
||||
/*返回编译*/
|
||||
{
|
||||
"agentCode": "3649601564",
|
||||
"contactMobile": "18877331805",
|
||||
"currentTime": "2024-07-16 15:42:48",
|
||||
"eOrderNumber": "EGW1561545",
|
||||
"failCode": 0,
|
||||
"mainOrderId": "HN1721115685991",
|
||||
"orderPrice": "6.0",
|
||||
"orderResultCode": 200,
|
||||
"payTradeNumber": "1452204560486540561056048965",
|
||||
"resultMsg": "\u51fa\u7968\u6210\u529f",
|
||||
"ticketList": [{
|
||||
"arriveTime": "2024-07-18 09:23",
|
||||
"deliveryTicketId": 586043269,
|
||||
"departTime": "2024-07-18 09:13",
|
||||
"fromStationName": "\u6842\u6797",
|
||||
"passengerList": [{
|
||||
"carriageNo": "01",
|
||||
"passengerId": 571060468,
|
||||
"passengerName": "\u8d75\u9e4f",
|
||||
"passengerType": 1,
|
||||
"passportNumber": "450303197904120517",
|
||||
"passportType": "1",
|
||||
"passportTypeName": "\u8eab\u4efd\u8bc1",
|
||||
"realTicketPrice": "6.0",
|
||||
"seatName": "\u4e8c\u7b49\u5ea7",
|
||||
"seatNo": "2A",
|
||||
"ticketName": ""
|
||||
}
|
||||
],
|
||||
"ticketCount": 1,
|
||||
"ticketPrice": "6.0",
|
||||
"toStationName": "\u6842\u6797\u5317",
|
||||
"trainNumber": "G2910"
|
||||
}
|
||||
],
|
||||
"ticketSuccessTime": "2024-07-16 15:42:48",
|
||||
"userId": 428
|
||||
}
|
||||
/**账单列表*/
|
||||
{
|
||||
"success": true,
|
||||
"code": "0",
|
||||
"msg": "",
|
||||
- "data": {
|
||||
- "records": [
|
||||
- {
|
||||
"saveDay": "2024-07-31",
|
||||
"type": "出票",
|
||||
"mainOrderId": "HN1722438313448",
|
||||
"dataId": null,
|
||||
"ticket12306Id": "E1W1330191",
|
||||
"trainNum": "K73",
|
||||
"fromStation": "重庆北",
|
||||
"toStation": "张家界西",
|
||||
"fromTime": "2024-08-12 08:32",
|
||||
"passengerName": "ABAJO LOPEZ LUCIA",
|
||||
"price": 69,
|
||||
"oldPrice": null,
|
||||
"changeCost": null,
|
||||
"handleTime": "2024-07-31 23:08:08",
|
||||
"createTime": "2024-07-31 23:05:32"
|
||||
},
|
||||
- {
|
||||
"saveDay": "2024-07-31",
|
||||
"type": "出票",
|
||||
"mainOrderId": "HN1722438313448",
|
||||
"dataId": null,
|
||||
"ticket12306Id": "E1W1330191",
|
||||
"trainNum": "K73",
|
||||
"fromStation": "重庆北",
|
||||
"toStation": "张家界西",
|
||||
"fromTime": "2024-08-12 08:32",
|
||||
"passengerName": "ESCAMILLA QUILES MARIO",
|
||||
"price": 69,
|
||||
"oldPrice": null,
|
||||
"changeCost": null,
|
||||
"handleTime": "2024-07-31 23:08:08",
|
||||
"createTime": "2024-07-31 23:05:32"
|
||||
},
|
||||
- {
|
||||
"saveDay": "2024-08-01",
|
||||
"type": "出票",
|
||||
"mainOrderId": "HN1722441803173",
|
||||
"dataId": null,
|
||||
"ticket12306Id": "E2W4589927",
|
||||
"trainNum": "D954",
|
||||
"fromStation": "宜昌东",
|
||||
"toStation": "上海",
|
||||
"fromTime": "2024-08-13 14:06",
|
||||
"passengerName": " PALOMA PALENCIA GRANDE",
|
||||
"price": 676,
|
||||
"oldPrice": null,
|
||||
"changeCost": null,
|
||||
"handleTime": "2024-08-01 00:06:37",
|
||||
"createTime": "2024-08-01 00:03:56"
|
||||
},
|
||||
- {
|
||||
"saveDay": "2024-08-01",
|
||||
"type": "出票",
|
||||
"mainOrderId": "HN1722441803173",
|
||||
"dataId": null,
|
||||
"ticket12306Id": "E2W4589927",
|
||||
"trainNum": "D954",
|
||||
"fromStation": "宜昌东",
|
||||
"toStation": "上海",
|
||||
"fromTime": "2024-08-13 14:06",
|
||||
"passengerName": "FRANCISCO RAFAEL GARCIA TUDELA",
|
||||
"price": 676,
|
||||
"oldPrice": null,
|
||||
"changeCost": null,
|
||||
"handleTime": "2024-08-01 00:06:37",
|
||||
"createTime": "2024-08-01 00:03:56"
|
||||
}
|
||||
],
|
||||
"total": 4,
|
||||
"size": 100,
|
||||
"current": 1,
|
||||
"searchCount": true,
|
||||
"pages": 1
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
[{"id":1,"seatName":"硬座","seatItems":["硬座","无座"]},{"id":2,"seatName":"硬卧","seatItems":["硬卧上","硬卧中","硬卧下"]},{"id":3,"seatName":"软座","seatItems":["软座"]},{"id":4,"seatName":"一等软座","seatItems":["一等软座"]},{"id":5,"seatName":"二等软座","seatItems":["二等软座"]},{"id":6,"seatName":"特等软座","seatItems":["特等软座"]},{"id":7,"seatName":"软卧","seatItems":["软卧上","软卧下"]},{"id":8,"seatName":"商务座","seatItems":["商务座"]},{"id":9,"seatName":"一等包座","seatItems":["一等包座"]},{"id":10,"seatName":"观光座","seatItems":["观光座"]},{"id":11,"seatName":"特等座","seatItems":["特等座"]},{"id":12,"seatName":"一等座","seatItems":["一等座"]},{"id":13,"seatName":"二等座","seatItems":["二等座","无座"]},{"id":14,"seatName":"高级软卧","seatItems":["高级软卧上","高级软卧下"]},{"id":15,"seatName":"包厢硬卧","seatItems":["包厢硬卧上","包厢硬卧中","包厢硬卧下"]},{"id":16,"seatName":"包厢软座","seatItems":["包厢软座"]},{"id":17,"seatName":"一等卧","seatItems":["一等卧上","一等卧下"]},{"id":18,"seatName":"二等卧","seatItems":["二等卧上","二等卧中","二等卧下"]},{"id":19,"seatName":"混编软座","seatItems":["混编软座"]},{"id":20,"seatName":"动卧","seatItems":["动卧上","动卧下"]},{"id":21,"seatName":"多功能座","seatItmes":["多功能座"]},{"id":22,"seatName":"二等包座","seatItems":["二等包座"]},{"id":23,"seatName":"一人软包","seatItems":["一人软包"]},{"id":24,"seatName":"二等软包","seatItmes":["二等软包"]},{"id":25,"seatName":"高级动卧","seatItems":["高级动卧上","高级动卧下"]}]
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,552 @@
|
||||
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
|
||||
<div class="tmbottom">
|
||||
<h3 style="font-size: 24px; line-height: 22px;">Chiang Mai CAD Yi Peng Festival 2025</h3>
|
||||
<form id='ticket_form' action="https://www.asiahighlights.com/orders/lantern_save" method="post" >
|
||||
|
||||
<p style="font-size: 22px;"><strong>Select Date:</strong></p>
|
||||
<div class="selectHotl" style="margin-bottom: 20px;" id="ticket_date_november15th">
|
||||
<div class="optionLable">
|
||||
<input type="radio" value="2025-11-5" checked id="november15th" name="ticket_date">
|
||||
<label for="november15th">
|
||||
November 5th, 2025
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="optionLable" id="ticket_date_november16th">
|
||||
<input type="radio" value="2025-11-6" id="november16th" name="ticket_date">
|
||||
<label for="november16th">
|
||||
November 6th, 2025
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p style="font-size: 22px;"><strong>Select a Ticket Type:</strong></p>
|
||||
<div class="selectHotl" style="margin-bottom: 20px;">
|
||||
<div class="optionLable" id="ticket_type_premium_khomloy">
|
||||
<input type="radio" value="Premium+Transfer+Dinner" checked id="premium_khomloy" data-price="179" name="ticket_type">
|
||||
<label for="premium_khomloy" style="font-size:18px;">
|
||||
Premium+Transfer+Dinner
|
||||
<div class="selectionMemo">
|
||||
US$179 (6400THB)
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="optionLable" id="ticket_type_vip_khomloy">
|
||||
<input type="radio" value="VIP+Transfer+Dinner" id="vip_khomloy" data-price="169" name="ticket_type">
|
||||
<label for="vip_khomloy" style="font-size:18px;">
|
||||
VIP+Transfer+Dinner
|
||||
<div class="selectionMemo">
|
||||
US$169 (5900THB)
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="optionLable" id="ticket_type_standard_khomloy">
|
||||
<input type="radio" value="Standard+Transfer+Dinner" id="standard_khomloy" data-price="129" name="ticket_type">
|
||||
<label for="standard_khomloy" style="font-size:18px;">
|
||||
Standard+Transfer+Dinner
|
||||
<div class="selectionMemo">
|
||||
US$129 (4600THB)
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ticket_type_errmsg" style="display: none">
|
||||
<div class="requiredArea" style="margin-top:-10px;">Please select at least one option.</div>
|
||||
</div>
|
||||
<p style="font-size: 22px;"><strong>Select Ticket Quantity</strong></p>
|
||||
<div class="peopleSelect" style="width: auto;">
|
||||
<span class="formMemo">
|
||||
Adults and older children (8+ years old)
|
||||
</span>
|
||||
<div class="numberBtn">
|
||||
<input class="minaddBtn reduceadult" id='minusButton' type="button" value="-">
|
||||
<input class="number" id="adultNumberValue" readonly="readonly" type="text" value="1"
|
||||
name="adult" style="width: 50px;
|
||||
height: 22px;
|
||||
top: -5px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
font-size: 20px;">
|
||||
<input class="minaddBtn addadult" id='plusButton' type="button" value="+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="payonline_price">Total price: <strong id="totalPriceText">$129</strong></div>
|
||||
|
||||
<p style="margin-top: 50px;"><strong>Please provide correct personal info. Double check.</strong></p>
|
||||
<input class="FullName" id="ticket_realname" name="fullname"
|
||||
placeholder="Your name * (exactly per passport)" required="" type="text" value="" />
|
||||
<div id="ticket_realname_errmsg" style="display: none">
|
||||
<div class="requiredArea" style="margin-top:-10px;">Please enter your name.</div>
|
||||
</div>
|
||||
<input class="EmailAddress" id="ticket_email" name="email" placeholder="Email *" required="" type="text"
|
||||
value="" />
|
||||
<div id="ticket_email_errmsg" style="display: none">
|
||||
<div class="requiredArea" style="margin-top:-10px;">Please enter your email.</div>
|
||||
</div>
|
||||
<div id="ticket_email_verify_errmsg" style="display: none">
|
||||
<div class="requiredArea" style="margin-top:-10px;">Please verify your email.</div>
|
||||
</div>
|
||||
<select name="country_code" class="country_code">
|
||||
<option style="font-weight: 600;" value="United States +1">United States +1</option>
|
||||
<option style="font-weight: 600;" value="United Kingdom +44">United Kingdom +44</option>
|
||||
<option style="font-weight: 600;" value="Australia +61">Australia +61</option>
|
||||
<option style="font-weight: 600;" value="Canada +1">Canada +1</option>
|
||||
<option style="font-weight: 600;" value="France +33">France +33</option>
|
||||
<option style="font-weight: 600;" value="Germany +49">Germany +49</option>
|
||||
<option style="font-weight: 600; " value="Italy +39">Italy +39</option>
|
||||
<option style="font-weight: 600; " value="Mexico +52">Mexico +52</option>
|
||||
<option style="font-weight: 600; " value="Netherlands +31">Netherlands +31</option>
|
||||
<option style="font-weight: 600; " value="Singapore +65">Singapore +65</option>
|
||||
<option value="Afghanistan +93">Afghanistan +93</option>
|
||||
<option value="Albania +355">Albania +355</option>
|
||||
<option value="Algeria +213">Algeria +213</option>
|
||||
<option value="American Samoa +1">American Samoa +1684</option>
|
||||
<option value="Andorra +376">Andorra +376</option>
|
||||
<option value="Angola +244">Angola +244</option>
|
||||
<option value="Anguilla +1">Anguilla +1264</option>
|
||||
<option value="Australia +61">Australia +61</option>
|
||||
<option value="Antigua and Barbuda +1">Antigua and Barbuda +1268</option>
|
||||
<option value="Argentina +54">Argentina +54</option>
|
||||
<option value="Armenia +374">Armenia +374</option>
|
||||
<option value="Aruba +297">Aruba +297</option>
|
||||
<option value="Ascension Island +247">Ascension Island +247</option>
|
||||
<option value="Austria +43">Austria +43</option>
|
||||
<option value="Azerbaijan +994">Azerbaijan +994</option>
|
||||
<option value="Bahamas +1">Bahamas +1242</option>
|
||||
<option value="Bahrain +973">Bahrain +973</option>
|
||||
<option value="Bangladesh +880">Bangladesh +880</option>
|
||||
<option value="Barbados +1">Barbados +1246</option>
|
||||
<option value="Belarus +375">Belarus +375</option>
|
||||
<option value="Belgium +32">Belgium +32</option>
|
||||
<option value="Belize +501">Belize +501</option>
|
||||
<option value="Benin +229">Benin +229</option>
|
||||
<option value="Bermuda +1">Bermuda +1441</option>
|
||||
<option value="Bhutan +975">Bhutan +975</option>
|
||||
<option value="Bolivia +591">Bolivia +591</option>
|
||||
<option value="Bosnia and Herzegovina +387">Bosnia and Herzegovina +387</option>
|
||||
<option value="Botswana +267">Botswana +267</option>
|
||||
<option value="Brazil +55">Brazil +55</option>
|
||||
<option value="British Indian Ocean Territory +246">British Indian Ocean Territory +246</option>
|
||||
<option value="British Virgin Islands +1">British Virgin Islands +1284</option>
|
||||
<option value="Brunei +673">Brunei +673</option>
|
||||
<option value="Bulgaria +359">Bulgaria +359</option>
|
||||
<option value="Burkina Faso +226">Burkina Faso +226</option>
|
||||
<option value="Burundi +257">Burundi +257</option>
|
||||
<option value="Cambodia +855">Cambodia +855</option>
|
||||
<option value="Cameroon +237">Cameroon +237</option>
|
||||
<option value="Canada +1">Canada +1</option>
|
||||
<option value="Cape Verde +238">Cape Verde +238</option>
|
||||
<option value="Caribbean Netherlands +599">Caribbean Netherlands +599</option>
|
||||
<option value="Cayman Islands +1">Cayman Islands +1345</option>
|
||||
<option value="Central African Republic +236">Central African Republic +236</option>
|
||||
<option value="Chad +235">Chad +235</option>
|
||||
<option value="Chile +56">Chile +56</option>
|
||||
<option value="China +86">China +86</option>
|
||||
<option value="Christmas Island +61">Christmas Island +6189164</option>
|
||||
<option value="Cocos Islands +61">Cocos Islands +6189162</option>
|
||||
<option value="Colombia +57">Colombia +57</option>
|
||||
<option value="Comoros +269">Comoros +269</option>
|
||||
<option value="Congo +243">Congo (DRC) +243</option>
|
||||
<option value="Congo +242">Congo (Republic) +242</option>
|
||||
<option value="Cook Islands +682">Cook Islands +682</option>
|
||||
<option value="Costa Rica +506">Costa Rica +506</option>
|
||||
<option value="Côte d'Ivoire +225">Côte d'Ivoire +225</option>
|
||||
<option value="Croatia +385">Croatia +385</option>
|
||||
<option value="Cuba +53">Cuba +53</option>
|
||||
<option value="Curaçao +599">Curaçao +599</option>
|
||||
<option value="Cyprus +357">Cyprus +357</option>
|
||||
<option value="Czech Republic +420">Czech Republic +420</option>
|
||||
<option value="Denmark +45">Denmark +45</option>
|
||||
<option value="Djibouti +253">Djibouti +253</option>
|
||||
<option value="Dominica +1">Dominica +1767</option>
|
||||
<option value="Dominican Republic +1">Dominican Republic +1809</option>
|
||||
<option value="Ecuador +593">Ecuador +593</option>
|
||||
<option value="Egypt +20">Egypt +20</option>
|
||||
<option value="El Salvador +503">El Salvador +503</option>
|
||||
<option value="Equatorial Guinea +240">Equatorial Guinea +240</option>
|
||||
<option value="Eritrea +291">Eritrea +291</option>
|
||||
<option value="Estonia +372">Estonia +372</option>
|
||||
<option value="Eswatini +268">Eswatini +268</option>
|
||||
<option value="Ethiopia +251">Ethiopia +251</option>
|
||||
<option value="Falkland Islands +500">Falkland Islands +500</option>
|
||||
<option value="Faroe Islands +298">Faroe Islands +298</option>
|
||||
<option value="Fiji +679">Fiji +679</option>
|
||||
<option value="Finland +358">Finland +358</option>
|
||||
<option value="France +33">France +33</option>
|
||||
<option value="French Guiana +594">French Guiana +594</option>
|
||||
<option value="French Polynesia +689">French Polynesia +689</option>
|
||||
<option value="Gabon +241">Gabon +241</option>
|
||||
<option value="Gambia +220">Gambia +220</option>
|
||||
<option value="Georgia +995">Georgia +995</option>
|
||||
<option value="Germany +49">Germany +49</option>
|
||||
<option value="Ghana +233">Ghana +233</option>
|
||||
<option value="Gibraltar +350">Gibraltar +350</option>
|
||||
<option value="Greece +30">Greece +30</option>
|
||||
<option value="Greenland +299">Greenland +299</option>
|
||||
<option value="Grenada +1">Grenada +1473</option>
|
||||
<option value="Guadeloupe +590">Guadeloupe +590</option>
|
||||
<option value="Guam +1">Guam +1671</option>
|
||||
<option value="Guatemala +502">Guatemala +502</option>
|
||||
<option value="Guernsey +44">Guernsey +441481</option>
|
||||
<option value="Guinea +224">Guinea +224</option>
|
||||
<option value="Guinea-Bissau +245">Guinea-Bissau +245</option>
|
||||
<option value="Guyana +592">Guyana +592</option>
|
||||
<option value="Haiti +509">Haiti +509</option>
|
||||
<option value="Honduras +504">Honduras +504</option>
|
||||
<option value="Hong Kong +852">Hong Kong +852</option>
|
||||
<option value="Hungary +36">Hungary +36</option>
|
||||
<option value="Iceland +354">Iceland +354</option>
|
||||
<option value="India +91">India +91</option>
|
||||
<option value="Indonesia +62">Indonesia +62</option>
|
||||
<option value="Iran +98">Iran +98</option>
|
||||
<option value="Iraq +964">Iraq +964</option>
|
||||
<option value="Ireland +353">Ireland +353</option>
|
||||
<option value="Isle of Man +44">Isle of Man +44</option>
|
||||
<option value="Israel +972">Israel +972</option>
|
||||
<option value="Italy +39">Italy +39</option>
|
||||
<option value="Jamaica +1">Jamaica +1876</option>
|
||||
<option value="Japan +81">Japan +81</option>
|
||||
<option value="Jersey +44">Jersey +44</option>
|
||||
<option value="Jordan +962">Jordan +962</option>
|
||||
<option value="Kazakhstan +7">Kazakhstan +7</option>
|
||||
<option value="Kenya +254">Kenya +254</option>
|
||||
<option value="Kiribati +686">Kiribati +686</option>
|
||||
<option value="Kosovo +383">Kosovo +383</option>
|
||||
<option value="Kuwait +965">Kuwait +965</option>
|
||||
<option value="Kyrgyzstan +996">Kyrgyzstan +996</option>
|
||||
<option value="Laos +856">Laos +856</option>
|
||||
<option value="Latvia +371">Latvia +371</option>
|
||||
<option value="Lebanon +961">Lebanon +961</option>
|
||||
<option value="Lesotho +266">Lesotho +266</option>
|
||||
<option value="Liberia +231">Liberia +231</option>
|
||||
<option value="Libya +218">Libya +218</option>
|
||||
<option value="Liechtenstein +423">Liechtenstein +423</option>
|
||||
<option value="Lithuania +370">Lithuania +370</option>
|
||||
<option value="Luxembourg +352">Luxembourg +352</option>
|
||||
<option value="Macau +853">Macau +853</option>
|
||||
<option value="Macedonia +389">Macedonia +389</option>
|
||||
<option value="Madagascar +261">Madagascar +261</option>
|
||||
<option value="Malawi +265">Malawi +265</option>
|
||||
<option value="Malaysia +60">Malaysia +60</option>
|
||||
<option value="Maldives +960">Maldives +960</option>
|
||||
<option value="Mali +223">Mali +223</option>
|
||||
<option value="Malta +356">Malta +356</option>
|
||||
<option value="Marshall +692">Marshall Islands +692</option>
|
||||
<option value="Martinique +596">Martinique +596</option>
|
||||
<option value="Mauritania +222">Mauritania +222</option>
|
||||
<option value="Mauritius +230">Mauritius +230</option>
|
||||
<option value="Mayotte +262">Mayotte +262</option>
|
||||
<option value="Micronesia +691">Micronesia +691</option>
|
||||
<option value="Moldova +373">Moldova +373</option>
|
||||
<option value="Monaco +377">Monaco +377</option>
|
||||
<option value="Mongolia +976">Mongolia +976</option>
|
||||
<option value="Montenegro +382">Montenegro +382</option>
|
||||
<option value="Montserrat +1">Montserrat +1664</option>
|
||||
<option value="Morocco +212">Morocco +212</option>
|
||||
<option value="Mozambique +258">Mozambique +258</option>
|
||||
<option value="Myanmar +95">Myanmar +95</option>
|
||||
<option value="Namibia +264">Namibia +264</option>
|
||||
<option value="Nauru +674">Nauru +674</option>
|
||||
<option value="Nepal +977">Nepal +977</option>
|
||||
<option value="New Caledonia +687">New Caledonia +687</option>
|
||||
<option value="New Zealand +64">New Zealand +64</option>
|
||||
<option value="Nicaragua +505">Nicaragua +505</option>
|
||||
<option value="Niger +227">Niger +227</option>
|
||||
<option value="Nigeria +234">Nigeria +234</option>
|
||||
<option value="Niue +683">Niue +683</option>
|
||||
<option value="Norfolk Island +672">Norfolk Island +6723</option>
|
||||
<option value="North Korea +850">North Korea +850</option>
|
||||
<option value="Northern Mariana Islands +1">Northern Mariana Islands +1670</option>
|
||||
<option value="Norway +47">Norway +47</option>
|
||||
<option value="Oman +968">Oman +968</option>
|
||||
<option value="Pakistan +92">Pakistan +92</option>
|
||||
<option value="Palau +680">Palau +680</option>
|
||||
<option value="Palestine +970">Palestine +970</option>
|
||||
<option value="Panama +507">Panama +507</option>
|
||||
<option value="Papua New Guinea 675">Papua New Guinea +675</option>
|
||||
<option value="Paraguay +595">Paraguay +595</option>
|
||||
<option value="Peru +51">Peru +51</option>
|
||||
<option value="Philippines +63">Philippines +63</option>
|
||||
<option value="Poland +48">Poland +48</option>
|
||||
<option value="Portugal +351">Portugal +351</option>
|
||||
<option value="Puerto Rico +1">Puerto Rico +1787</option>
|
||||
<option value="Qatar +974">Qatar +974</option>
|
||||
<option value="Réunion +262">Réunion +262</option>
|
||||
<option value="Romania +40">Romania +40</option>
|
||||
<option value="Russia +7">Russia +7</option>
|
||||
<option value="Rwanda +250">Rwanda +250</option>
|
||||
<option value="Saint Barthélemy +590">Saint Barthélemy +590</option>
|
||||
<option value="Saint Helena +290">Saint Helena +290</option>
|
||||
<option value="Saint Kitts and Nevis +1">Saint Kitts and Nevis +1869</option>
|
||||
<option value="Saint Lucia +1">Saint Lucia +1758</option>
|
||||
<option value="Saint Martin +590">Saint Martin +590</option>
|
||||
<option value="Saint Pierre and Miquelon +508">Saint Pierre and Miquelon +508</option>
|
||||
<option value="Saint Vincent and the Grenadines +1">Saint Vincent and the Grenadines +1784</option>
|
||||
<option value="Samoa +685">Samoa +685</option>
|
||||
<option value="San Marino +378">San Marino +378</option>
|
||||
<option value="São Tomé and Príncipe +239">São Tomé and Príncipe +239</option>
|
||||
<option value="Saudi Arabia +966">Saudi Arabia +966</option>
|
||||
<option value="Senegal +221">Senegal +221</option>
|
||||
<option value="Serbia +381">Serbia +381</option>
|
||||
<option value="Seychelles +248">Seychelles +248</option>
|
||||
<option value="Sierra Leone +232">Sierra Leone +232</option>
|
||||
<option value="Sint Maarten +1">Sint Maarten +1721</option>
|
||||
<option value="Slovakia +421">Slovakia +421</option>
|
||||
<option value="Slovenia +386">Slovenia +386</option>
|
||||
<option value="Solomon Islands +677">Solomon Islands +677</option>
|
||||
<option value="Somalia +252">Somalia +252</option>
|
||||
<option value="South Africa +27">South Africa +27</option>
|
||||
<option value="South Korea +82">South Korea +82</option>
|
||||
<option value="South Sudan +211">South Sudan +211</option>
|
||||
<option value="Spain +34">Spain +34</option>
|
||||
<option value="Sri Lanka +94">Sri Lanka +94</option>
|
||||
<option value="Sudan +249">Sudan +249</option>
|
||||
<option value="Suriname">Suriname +597</option>
|
||||
<option value="Svalbard and Jan Mayen +47">Svalbard and Jan Mayen +47</option>
|
||||
<option value="Sweden +46">Sweden +46</option>
|
||||
<option value="Switzerland +41">Switzerland +41</option>
|
||||
<option value="Syria +963">Syria +963</option>
|
||||
<option value="Taiwan +886">Taiwan +886</option>
|
||||
<option value="Tajikistan +992">Tajikistan +992</option>
|
||||
<option value="Tanzania +255">Tanzania +255</option>
|
||||
<option value="Thailand +66">Thailand +66</option>
|
||||
<option value="Timor-Leste +670">Timor-Leste +670</option>
|
||||
<option value="Togo +228">Togo +228</option>
|
||||
<option value="Tokelau +690">Tokelau +690</option>
|
||||
<option value="Tonga +676">Tonga +676</option>
|
||||
<option value="Trinidad and Tobago +1">Trinidad and Tobago +1868</option>
|
||||
<option value="Tunisia +216">Tunisia +216</option>
|
||||
<option value="Turkey +90">Turkey +90</option>
|
||||
<option value="Turkmenistan +993">Turkmenistan +993</option>
|
||||
<option value="Turks and Caicos Islands +1">Turks and Caicos Islands +1649</option>
|
||||
<option value="Tuvalu +688">Tuvalu +688</option>
|
||||
<option value="U.S. Virgin Islands +1">U.S. Virgin Islands +1340</option>
|
||||
<option value="Uganda +256">Uganda +256</option>
|
||||
<option value="Ukraine +380">Ukraine +380</option>
|
||||
<option value="United Arab Emirates +971">United Arab Emirates +971</option>
|
||||
<option value="United Kingdom +44">United Kingdom +44</option>
|
||||
<option value="United States +1">United States +1</option>
|
||||
<option value="Uruguay +598">Uruguay +598</option>
|
||||
<option value="Uzbekistan +998">Uzbekistan +998</option>
|
||||
<option value="Vanuatu +678">Vanuatu +678</option>
|
||||
<option value="Vatican City +39">Vatican City +379</option>
|
||||
<option value="Venezuela +58">Venezuela +58</option>
|
||||
<option value="Vietnam +84">Vietnam +84</option>
|
||||
<option value="Wallis and Futuna +681">Wallis and Futuna +681</option>
|
||||
<option value="Western Sahara +212">Western Sahara +21228</option>
|
||||
<option value="Yemen +967">Yemen +967</option>
|
||||
<option value="Zambia +260">Zambia +260</option>
|
||||
<option value="Zimbabwe +263">Zimbabwe +263</option>
|
||||
<option value="Åland Islands +385">Åland Islands +35818</option>
|
||||
</select>
|
||||
<input class="Inquiryphone" id="ticket_PhoneNo" name="PhoneNo"
|
||||
placeholder="Phone number *" type="tel" value="" />
|
||||
<div id="ticket_contact_errmsg" style="display: none">
|
||||
<div class="requiredArea" style="margin-top:-10px;">Please enter your phone number.</div>
|
||||
</div>
|
||||
<textarea name="other_travelers_names" placeholder="If booking two or more tickets,please fill in other traveler name(s) here:(per passport, e.g.Smith Sarah Jean)."></textarea>
|
||||
|
||||
|
||||
<input name="total_price" id="totalPriceHidden" type="hidden" value="10000" />
|
||||
<input name="product_code" id="cli_no" type="hidden" value="YDFW-AH"/>
|
||||
<input name="itinerary" type="hidden" value="<?php echo $information->ic_title; ?>" />
|
||||
<button class="sendButton" id="submit_ticket_button" name="submit_ticket_form"
|
||||
type="button">Proceed to Payment</button>
|
||||
<p style=" text-align: center;
|
||||
font-style: italic;
|
||||
margin-top: -15px;
|
||||
line-height: 20px;"><strong>Once we receive your payment, our travel advisor will contact you within 24 hours and send you your e-ticket.</strong></p>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
function calcTotalPrice(ticketPrice, adultNumber) {
|
||||
var totalPrice = ticketPrice * adultNumber;
|
||||
|
||||
if (adultNumber >= 10) {
|
||||
totalPrice = totalPrice * 0.95;
|
||||
}
|
||||
|
||||
totalPrice = totalPrice.toFixed(2);
|
||||
|
||||
totalPriceHidden.value = totalPrice;
|
||||
totalPriceText.innerText = '$' + totalPrice;
|
||||
}
|
||||
|
||||
var adultNumberNode = document.getElementById("adultNumberValue");
|
||||
var ticketDateList = document.querySelectorAll("input[name='ticket_date']");
|
||||
var ticketTypeList = document.querySelectorAll("input[name='ticket_type']");
|
||||
|
||||
var ticket_type_premium_khomloy_div = document.getElementById("ticket_type_premium_khomloy");
|
||||
var ticket_type_vip_khomloy_div = document.getElementById("ticket_type_vip_khomloy");
|
||||
var ticket_type_standard_khomloy_div = document.getElementById("ticket_type_standard_khomloy");
|
||||
|
||||
var ticket_type_premium_heritage_div = document.getElementById("ticket_type_premium_heritage");
|
||||
var ticket_type_vip_heritage_div = document.getElementById("ticket_type_vip_heritage");
|
||||
|
||||
var premium_khomloy_radio = document.getElementById("premium_khomloy");
|
||||
var premium_heritage_radio = document.getElementById("premium_heritage");
|
||||
|
||||
var ticket_date_november15th = document.getElementById("ticket_date_november15th");
|
||||
var ticket_date_november16th = document.getElementById("ticket_date_november16th");
|
||||
|
||||
var venueList = document.querySelectorAll("input[name='Venue']");
|
||||
|
||||
var totalPriceText = document.getElementById("totalPriceText");
|
||||
var totalPriceHidden = document.getElementById("totalPriceHidden");
|
||||
var adultNumberValue = parseInt(adultNumberNode.value);
|
||||
var currentTicketPrice = 10000;
|
||||
|
||||
for (var i = 0; i < venueList.length; i++) {
|
||||
var venueNode = venueList[i];
|
||||
venueNode.addEventListener('click', function (event) {
|
||||
var currentTarget = event.currentTarget;
|
||||
if (currentTarget.id === 'Khomloy') {
|
||||
setKhomloyTicket();
|
||||
}
|
||||
if (currentTarget.id === 'Heritage') {
|
||||
setHeritageTicket();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
for (var i = 0; i < ticketTypeList.length; i++) {
|
||||
var ticketTypeNode = ticketTypeList[i];
|
||||
var dataPrice = parseInt(ticketTypeNode.getAttribute('data-price'));
|
||||
if (ticketTypeNode.checked) {
|
||||
currentTicketPrice = dataPrice;
|
||||
calcTotalPrice(currentTicketPrice, adultNumberValue);
|
||||
}
|
||||
ticketTypeNode.addEventListener('click', function (event) {
|
||||
var currentTarget = event.currentTarget;
|
||||
currentTicketPrice = parseInt(currentTarget.getAttribute('data-price'));
|
||||
adultNumberValue = parseInt(adultNumberNode.value);
|
||||
calcTotalPrice(currentTicketPrice, adultNumberValue);
|
||||
});
|
||||
}
|
||||
|
||||
function setKhomloyTicket() {
|
||||
ticket_type_premium_khomloy_div.style.display = '';
|
||||
ticket_type_vip_khomloy_div.style.display = '';
|
||||
ticket_type_standard_khomloy_div.style.display = '';
|
||||
|
||||
ticket_type_premium_heritage_div.style.display = 'none';
|
||||
ticket_type_vip_heritage_div.style.display = 'none';
|
||||
|
||||
ticket_date_november15th.style.display = '';
|
||||
ticket_date_november16th.style.display = '';
|
||||
|
||||
premium_khomloy_radio.checked = true;
|
||||
currentTicketPrice = parseInt(premium_khomloy_radio.getAttribute('data-price'));
|
||||
adultNumberValue = parseInt(adultNumberNode.value);
|
||||
calcTotalPrice(currentTicketPrice, adultNumberValue);
|
||||
}
|
||||
|
||||
function setHeritageTicket() {
|
||||
ticket_type_premium_khomloy_div.style.display = 'none';
|
||||
ticket_type_vip_khomloy_div.style.display = 'none';
|
||||
ticket_type_standard_khomloy_div.style.display = 'none';
|
||||
|
||||
ticket_type_premium_heritage_div.style.display = '';
|
||||
ticket_type_vip_heritage_div.style.display = '';
|
||||
|
||||
ticket_date_november15th.style.display = '';
|
||||
ticket_date_november16th.style.display = 'none';
|
||||
|
||||
premium_heritage_radio.checked = true;
|
||||
currentTicketPrice = parseInt(premium_heritage_radio.getAttribute('data-price'));
|
||||
adultNumberValue = parseInt(adultNumberNode.value);
|
||||
calcTotalPrice(currentTicketPrice, adultNumberValue);
|
||||
}
|
||||
|
||||
var plusButton = document.getElementById("plusButton");
|
||||
var minusButton = document.getElementById("minusButton");
|
||||
plusButton.addEventListener('click', function (event) {
|
||||
adultNumberValue = parseInt(adultNumberNode.value) + 1;
|
||||
adultNumberNode.value = adultNumberValue;
|
||||
calcTotalPrice(currentTicketPrice, adultNumberValue);
|
||||
});
|
||||
minusButton.addEventListener('click', function (event) {
|
||||
var beforeValue = parseInt(adultNumberNode.value);
|
||||
if (beforeValue > 1) {
|
||||
adultNumberValue = beforeValue - 1;
|
||||
adultNumberNode.value = adultNumberValue;
|
||||
calcTotalPrice(currentTicketPrice, adultNumberValue);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
var submit_ticket_button = document.getElementById("submit_ticket_button");
|
||||
var ticket_form = document.getElementById("ticket_form");
|
||||
|
||||
submit_ticket_button.addEventListener('click', function (event) {
|
||||
var validateResult = validateTicketForm();
|
||||
if (validateResult) {
|
||||
if (typeof (grecaptcha) === "undefined") {
|
||||
console.warn('grecaptcha is disabled.');
|
||||
ticket_form.submit();
|
||||
} else {
|
||||
grecaptcha.enterprise.ready(async () => {
|
||||
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', { action: 'ADD_TO_CART' });
|
||||
var el = document.createElement("input");
|
||||
el.type = "hidden";
|
||||
el.name = "__grecaptcha_token__";
|
||||
el.value = token;
|
||||
ticket_form.appendChild(el);
|
||||
ticket_form.submit();
|
||||
submit_ticket_button.innerText = "Submitted successfully";
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
function validateTicketForm() {
|
||||
var result = true;
|
||||
var realnameVal = document.getElementById("ticket_realname").value;
|
||||
var emailVal = document.getElementById("ticket_email").value;
|
||||
var contactVal = document.getElementById("ticket_PhoneNo").value;
|
||||
|
||||
var realnameErrEl = document.getElementById("ticket_realname_errmsg");
|
||||
var emailErrEl = document.getElementById("ticket_email_errmsg");
|
||||
var emailVerifyErrEl = document.getElementById("ticket_email_verify_errmsg");
|
||||
var contactErrEl = document.getElementById("ticket_contact_errmsg");
|
||||
var ticketTypeErrEl = document.getElementById("ticket_type_errmsg");
|
||||
|
||||
realnameErrEl.style.display = 'none';
|
||||
emailErrEl.style.display = 'none';
|
||||
emailVerifyErrEl.style.display = 'none';
|
||||
contactErrEl.style.display = 'none';
|
||||
ticketTypeErrEl.style.display = 'none';
|
||||
|
||||
var selectedTicketType = false;
|
||||
for (var i = 0; i < ticketTypeList.length; i++) {
|
||||
var ticketTypeNode = ticketTypeList[i];
|
||||
if (ticketTypeNode.checked) {
|
||||
selectedTicketType = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!selectedTicketType) {
|
||||
ticketTypeErrEl.style.display = '';
|
||||
result = false;
|
||||
}
|
||||
|
||||
if (realnameVal === '') {
|
||||
realnameErrEl.style.display = '';
|
||||
result = false;
|
||||
}
|
||||
if (emailVal === '') {
|
||||
emailErrEl.style.display = '';
|
||||
result = false;
|
||||
} else {
|
||||
var emailPattern = /^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/;
|
||||
if (!emailPattern.test(emailVal)) {
|
||||
emailVerifyErrEl.style.display = '';
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
if (contactVal === '') {
|
||||
contactErrEl.style.display = '';
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
</script>
|
@ -0,0 +1,34 @@
|
||||
<h3 style="text-align:center">What the Clients Say about <?php echo $advisor_name?></h3>
|
||||
<div class="visible-xs" style="margin: 20px 20px 110px 20px; ">
|
||||
<img class="img-responsive" height="69" src="https://images.chinahighlights.com/allpicture/2024/07/22bf1a7554fc4906bdeaa6536ffe514b_cut_175x68_241_1719916246.png" style="float: left; width: 150px; margin: 0 auto;
|
||||
display: block;" width="175" alt="Trip Advisor 2024 certificate">
|
||||
<img height="40" src="https://data.asiahighlights.com/image/forms/ah-ch-gh-tp-rating.png" style="width: 120px; height: auto; display: block;
|
||||
float: right;" width="211" alt="Tour Review">
|
||||
</div>
|
||||
<div class="table-responsive" style="margin-bottom: 20px; margin-top: 30px;">
|
||||
<table style="width: max-content;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="hidden-xs feedback_logo">
|
||||
<img class="img-responsive" height="69" src="https://images.chinahighlights.com/allpicture/2024/07/22bf1a7554fc4906bdeaa6536ffe514b_cut_175x68_241_1719916246.png" style="margin: 0px auto; " width="175" alt="Tour Review"> <img alt="Tour Review" class="img-responsive" height="278" src="https://images.asiahighlights.com/allpicture/2024/04/0c58b3494bc04eeb9c5d3bdf55e55fad_cut_200x111_241.jpg" style="width: 170px; display: block; margin: 10px auto 0px; " width="1133">
|
||||
</td>
|
||||
<?php foreach ($feedback_list as $index => $feedback) {?>
|
||||
<td class="tour_feedback feedback_content">
|
||||
|
||||
<strong>
|
||||
<?php echo $feedback['title'] ?>
|
||||
</strong>
|
||||
<img src="<?php if (strpos($feedback['url'], 'trustpilot.com') == true) { echo 'https://images.asiahighlights.com/allpicture/2024/04/eba8a46e43514b55bb4e1dd15d9b5712_cut_211x40_241.jpg'; } else if (strpos($feedback['url'], 'tripadvisor.com') == true) { echo 'https://images.asiahighlights.com/allpicture/2024/04/8bebcc898ce54b64a46ced58580966d4_cut_104x19_241.jpg'; } ?>" style="height: 20px; width: auto;" alt="Tour Review">
|
||||
<p>
|
||||
<?php echo $feedback['content'] ?>
|
||||
</p>
|
||||
<a href="<?php echo $feedback['url'] ?>" target="_blank" rel="nofollow">More</a>
|
||||
<div class="customer_name">
|
||||
<?php echo $feedback['customer'] ?>, <?php echo $feedback['createdOn'] ?>
|
||||
</div>
|
||||
</td>
|
||||
<?php }?>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
Loading…
Reference in New Issue