添加携程接收回调程序

hotfix/远程访问多媒体中心
cyc 6 years ago
parent e6e18b3ade
commit 944e6a7f40

@ -0,0 +1,83 @@
<?php
function GetPost_http($url, $data = '', $method = 'GET') {
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
if ($method == 'POST' && !empty($data)) {
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
}
curl_setopt($curl, CURLOPT_TIMEOUT, 40); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_TIMEOUT_MS, 40000); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
$errno = curl_errno($curl);
if ($errno !== 0) {
log_message('error', 'ctripost'.$errno.curl_error($curl));
}
curl_close($curl); //关闭CURL会话
return $tmpInfo; //返回数据
}
$BackXml = file_get_contents('php://input');
/*$BackXml = '';
$BackXml .= '<?xml version="1.0"?>';
$BackXml .= "<OrderProcessRequest xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>";
$BackXml .= '<Authentication>
<ServiceName>web.order.requestRefund</ServiceName>
<PartnerName>tieyou</PartnerName>
<TimeStamp>2016-05-26 16:26:47</TimeStamp>
<MessageIdentity>263A1E3FDCEBA0AEE61E49952E34C27D</MessageIdentity>
</Authentication>
<TrainOrderService>
<OrderInfo>
<OrderNumber>elonge20160526261753244</OrderNumber>
<OrderTid>882c5548-b672-4484</OrderTid>
<OrderTradeNo>882c5548-b672-4484</OrderTradeNo>
</OrderInfo>
<OrderTotleFee></OrderTotleFee>
<TotalRefundAmount>5.50</TotalRefundAmount>
<Reason>Test</Reason>
<RefundType>T</RefundType>
</TrainOrderService>
</OrderProcessRequest>';*/
$BackArr = simplexml_load_string($BackXml);
$ServiceName = $BackArr->Authentication->ServiceName;
if($ServiceName == 'web.order.returnTicketNotice'){
$OrderNumber = $BackArr->TrainOrderService->OrderNumber;
}else{
$OrderNumber = $BackArr->TrainOrderService->OrderInfo->OrderNumber;
}
$responsexml = '
<?xml version="1.0" encoding="utf-8"?>
<OrderResponse>
<ServiceName>'.$ServiceName.'</ServiceName>
<OperationDateTime>'.date('Y-m-d H:i:s').'</OperationDateTime>
<OrderNumber>'.$OrderNumber.'</OrderNumber>
<Status>SUCCESS</Status>
<ErrorResponse>
<ErrorMessage>null</ErrorMessage>
<ErrorCode/>
</ErrorResponse>
</OrderResponse>
';
echo $responsexml;
$BackJson = json_encode($BackArr);
$Url = 'http://www.mycht.cn/info.php/apps/trainsystem/callback/ctripcallback';
//发送数据
GetPost_http($Url,$BackJson,'POST');
?>
Loading…
Cancel
Save