You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/application/third_party/flight/libraries/API/hotel/GetOrdersCheckStatusInfo.php

63 lines
1.6 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/* PHP SDK
* @version 2.0.0
* @author magicsky0@163.com
* @copyright © 2014, Ctrip Corporation. All rights reserved.
*/
class GetOrdersCheckStatusInfo
{
public $open_api = '/Hotel/GetOrdersCheckStatusInfo.asmx';
public $order_ids; // such as: 100643639,100643640
public function __construct( $open_api, $args )
{
$this->order_ids = explode(',',$args['order_ids']);
$this->open_api = $open_api.$this->open_api; // TODO:检测open api如果不合法则覆盖重写
}
/**
* 构造请求xml字符串
* @param int $uid
* @param int $sid
* @param string $stmp
* @param string $sign
* @param stirng $type
*/
public function request_xml( $uid, $sid, $stmp, $sign, $type )
{
$request_xml =
'<?xml version="1.0" encoding="utf-8"?>'
.'<Request>'
.'<Header AllianceID="'.$uid.'" SID="'.$sid.'" TimeStamp="'.$stmp.'" RequestType="'.$type.'" Signature="'.$sign.'"/>'
.'<GetOrdersCheckStatusInfoRequest>'
.'<OrderIds>%s</OrderIds>'
.'</GetOrdersCheckStatusInfoRequest>'
.'</Request>';
$orderIds = '';
foreach($this->order_ids as $v)
{
$orderIds .= "<int>$v</int>";
}
$request_xml = sprintf($request_xml,$orderIds);
// 需要将此处的xml嵌入到外层xml中故需要将其转义
$request_xml = str_replace("<",@"&lt;",$request_xml);
$request_xml = str_replace(">",@"&gt;",$request_xml);
return $request_xml;
}
public function respond_xml( $string )
{
// 将内层xmll中转义的符号恢复
$string = str_replace("&lt;","<",$string);
$string = str_replace("&gt;",">",$string);
return simplexml_load_string($string);
}
}