From 70c68cba74e7c81ea4ef1f9ba8e7700e3899444b Mon Sep 17 00:00:00 2001 From: cyc Date: Tue, 30 Jul 2019 11:30:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=90=BA=E7=A8=8B=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E6=8E=A5=E5=8F=A3=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trainsystem/controllers/callback.php | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/application/third_party/trainsystem/controllers/callback.php b/application/third_party/trainsystem/controllers/callback.php index 2716e8fb..d4308fce 100644 --- a/application/third_party/trainsystem/controllers/callback.php +++ b/application/third_party/trainsystem/controllers/callback.php @@ -162,7 +162,7 @@ class callback extends CI_Controller{ public function ctripcallback(){ $back_json = file_get_contents('php://input'); log_message('error','携程回调信息:'.$back_json); - //$back_json = '{"@attributes":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance"},"Authentication":{"TimeStamp":"2019-07-17 12:04:27","ServiceName":"web.order.notifyTicket","MessageIdentity":"277AA64C7D2B97DB9ECEAA3ABCFE1395","PartnerName":"tieyou"},"TrainOrderService":{"OrderInfo":{"OrderNumber":"guilintravel1563336241061","ElectronicOrderNumber":"EE43125942","OrderType":"\u7535\u5b50","OrderTotleFee":"673.50","TicketInfo":{"OrderTicketFromStation":"\u4e0a\u6d77\u8679\u6865","OrderTicketToStation":"\u6d4e\u5357\u897f","OrderTicketYMD":"20190721","OrderTicketTime":"13:00","OrderTicketCheci":"G134","OrderTicketPrice":"673.50","OrderAcceptSeat":{"0":"\n "},"OrderTicketSeat":"\u4e00\u7b49\u5ea7","SeatNumber":"02\u8f66\u53a211F\u53f7","railwayTip":{"0":"\n "},"AuditTicketCount":"1","ChildTicketCount":"0","Passengers":{"Passenger":{"RealName":"CARDOSORODRIGUEZMARIOALBERTO","IdentityType":"\u62a4\u7167","NumberID":"G14201195","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"}}},"TicketInfoFinal":{"OrderTicketFromStation":"\u4e0a\u6d77\u8679\u6865","OrderTicketToStation":"\u6d4e\u5357\u897f","ChildBillid":{"0":"\n "},"ElectronicOrderNumber":"EE43125942","Result":"2","NoTicketReasons":{"0":"\n "},"OrderTicketYMD":"20190721","OrderTicketTime":"13:00","OrderTicketCheci":"G134","OrderTicketPrice":"673.50","SeatNumber":"02\u8f66\u53a211F\u53f7","railwayTip":{"0":"\n "},"TicketCheck":"\u68c0\u7968\u53e33B","IsUserAcount":"0","ReturnFlag":"0","RescheduleFlag":"0","Tickets":{"Ticket":{"OrderTicketSeat":"\u4e00\u7b49\u5ea7","TicketType":"\u6210\u4eba\u7968","OrderTicketPrice":"673.50","TicketCount":"1","DetailInfos":{"DetailInfo":{"PassengerName":"CARDOSORODRIGUEZMARIOALBERTO","IdentityType":"\u62a4\u7167","NumberID":"G14201195","SeatNo":"02\u8f66\u53a211F\u53f7"}}}}}}}}'; + //$back_json = '{"@attributes":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance"},"Authentication":{"TimeStamp":"2019-07-29 22:51:05","ServiceName":"web.order.notifyTicket","MessageIdentity":"3B077107D1B6D07729A708B5B3ADEF9C","PartnerName":"tieyou"},"TrainOrderService":{"OrderInfo":{"OrderNumber":"guilintravel1564411808120","ElectronicOrderNumber":"EC11737908","OrderType":"\u7535\u5b50","OrderTotleFee":"1870.00","TicketInfo":{"OrderTicketFromStation":"\u4e0a\u6d77","OrderTicketToStation":"\u5317\u4eac\u5357","OrderTicketYMD":"20190827","OrderTicketTime":"21:24","OrderTicketCheci":"D710","OrderTicketPrice":"623.33","OrderAcceptSeat":{"0":"\n "},"OrderTicketSeat":"\u4e00\u7b49\u5367","SeatNumber":"10\u8f66\u53a225\u53f7\u4e0b\u94fa,10\u8f66\u53a226\u53f7\u4e0a\u94fa,10\u8f66\u53a228\u53f7\u4e0a\u94fa","railwayTip":{"0":"\n "},"AuditTicketCount":"3","ChildTicketCount":"0","Passengers":{"Passenger":[{"RealName":"BRAGANTINI ALICE","IdentityType":"\u62a4\u7167","NumberID":"YB1358397","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"},{"RealName":"VACCARI ALBERTO","IdentityType":"\u62a4\u7167","NumberID":"YA2689241","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"},{"RealName":"TUNESI SIMONE","IdentityType":"\u62a4\u7167","NumberID":"YB1847839","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"}]}},"TicketInfoFinal":{"OrderTicketFromStation":"\u4e0a\u6d77","OrderTicketToStation":"\u5317\u4eac\u5357","ChildBillid":{"0":"\n "},"ElectronicOrderNumber":"EC11737908","Result":"2","NoTicketReasons":{"0":"\n "},"OrderTicketYMD":"20190827","OrderTicketTime":"21:24","OrderTicketCheci":"D710","OrderTicketPrice":"623.33","SeatNumber":"10\u8f66\u53a225\u53f7\u4e0b\u94fa","railwayTip":{"0":"\n "},"TicketCheck":"\u5019\u8f66\u5730\u70b9\uff1a\u5019\u8f66\u5ba45","IsUserAcount":"0","ReturnFlag":"0","RescheduleFlag":"0","Tickets":{"Ticket":[{"OrderTicketSeat":"\u4e00\u7b49\u5367","TicketType":"\u6210\u4eba\u7968","OrderTicketPrice":"676.00","TicketCount":"1","DetailInfos":{"DetailInfo":{"PassengerName":"BRAGANTINI ALICE","IdentityType":"\u62a4\u7167","NumberID":"YB1358397","SeatNo":"10\u8f66\u53a225\u53f7\u4e0b\u94fa"}}},{"OrderTicketSeat":"\u4e00\u7b49\u5367","TicketType":"\u6210\u4eba\u7968","OrderTicketPrice":"597.00","TicketCount":"2","DetailInfos":{"DetailInfo":[{"PassengerName":"VACCARI ALBERTO","IdentityType":"\u62a4\u7167","NumberID":"YA2689241","SeatNo":"10\u8f66\u53a226\u53f7\u4e0a\u94fa"},{"PassengerName":"TUNESI SIMONE","IdentityType":"\u62a4\u7167","NumberID":"YB1847839","SeatNo":"10\u8f66\u53a228\u53f7\u4e0a\u94fa"}]}}]}}}}}'; $ctrip_backdata = json_decode($back_json); //print_r($ctrip_backdata); @@ -244,14 +244,27 @@ class callback extends CI_Controller{ $data_passager->ordernumber = $ctrip_backdata->TrainOrderService->OrderInfo->OrderNumber; if(is_array($ctrip_backdata->TrainOrderService->OrderInfo->TicketInfoFinal->Tickets->Ticket)){ foreach($ctrip_backdata->TrainOrderService->OrderInfo->TicketInfoFinal->Tickets->Ticket as $tickets_item){ - $data_passager->realname = $tickets_item->DetailInfos->DetailInfo->PassengerName; - $data_passager->identitytype = $tickets_item->DetailInfos->DetailInfo->IdentityType; - $data_passager->numberid = $tickets_item->DetailInfos->DetailInfo->NumberID; - $data_passager->ticketype = $tickets_item->TicketType; - $data_passager->ticketprice = $tickets_item->OrderTicketPrice; - $data_passager->seatype = $tickets_item->OrderTicketSeat; - $data_passager->seatdetail = $tickets_item->DetailInfos->DetailInfo->SeatNo; - $this->train_system_model->add_passagers($data_passager); + if(is_array($tickets_item->DetailInfos->DetailInfo)){ + foreach($tickets_item->DetailInfos->DetailInfo as $ticket_item2){ + $data_passager->realname = $ticket_item2->PassengerName; + $data_passager->identitytype = $ticket_item2->IdentityType; + $data_passager->numberid = $ticket_item2->NumberID; + $data_passager->ticketype = $tickets_item->TicketType; + $data_passager->ticketprice = $tickets_item->OrderTicketPrice; + $data_passager->seatype = $tickets_item->OrderTicketSeat; + $data_passager->seatdetail = $ticket_item2->SeatNo; + $this->train_system_model->add_passagers($data_passager); + } + }else{ + $data_passager->realname = $tickets_item->DetailInfos->DetailInfo->PassengerName; + $data_passager->identitytype = $tickets_item->DetailInfos->DetailInfo->IdentityType; + $data_passager->numberid = $tickets_item->DetailInfos->DetailInfo->NumberID; + $data_passager->ticketype = $tickets_item->TicketType; + $data_passager->ticketprice = $tickets_item->OrderTicketPrice; + $data_passager->seatype = $tickets_item->OrderTicketSeat; + $data_passager->seatdetail = $tickets_item->DetailInfos->DetailInfo->SeatNo; + $this->train_system_model->add_passagers($data_passager); + } } }else{ foreach($ctrip_backdata->TrainOrderService->OrderInfo->TicketInfoFinal->Tickets->Ticket->DetailInfos->DetailInfo as $items){