You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

130 lines
4.7 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Steven
  5. * Date: 2016/8/12
  6. * Time: 14:39
  7. * 订单查询接口
  8. */
  9. header('Content_Type: application/xml;charset=utf-8');
  10. date_default_timezone_set('Asia/Shanghai');
  11. require_once 'commonUtil.class.php';
  12. /**
  13. * @param $startPlayDate 游玩日期(开始)
  14. * @param $endPlayDate 游玩日期(结束)
  15. * @param $ticketTypeId 票型Id
  16. * @param $serialId 订单编号
  17. * @param string $travelerName 取票人姓名
  18. * @param string $travelerMobile 取票人手机
  19. * @param string $identityCard 身份证号码
  20. * @param string $page 当前页索引
  21. * @param string $pageSize 分页
  22. * @return array|bool
  23. */
  24. function getOrderInfo($zzUtils, $startPlayDate, $endPlayDate, $ticketTypeId = "", $serialId = "", $travelerName = "", $travelerMobile = "", $identityCard = "", $page = "", $pageSize = "")
  25. {
  26. //组装header
  27. $array_info['header'] = array();
  28. $base_array = $array_info['header'];
  29. $request_time = date("Y-m-d H:i:s", time()); //请求时间
  30. $array_header = array(
  31. "accountID" => app::$accountID,
  32. "serviceName" => 'GetOrderList',
  33. "digitalSign" => $zzUtils->sign_md5(app::$accountID, app::$accountPassword, $request_time),
  34. "reqTime" => $request_time);
  35. $result_array = $zzUtils->addXml($base_array, $array_header);
  36. $array_info['header'] = $result_array;
  37. //组装body
  38. $array_info['body'] = array();
  39. $base_array = $array_info['body'];
  40. $array_body = array(
  41. "startPlayDate" => $startPlayDate,
  42. "endPlayDate" => $endPlayDate,
  43. "ticketTypeId" => $ticketTypeId,
  44. "serialId" => $serialId,
  45. "travelerName" => $travelerName,
  46. "travelerMobile" => $travelerMobile,
  47. "identityCard" => $identityCard,
  48. "page" => $page,
  49. "pageSize" => $pageSize);
  50. $result_array = $zzUtils->addXml($base_array, $array_body);
  51. $array_info['body'] = $result_array;
  52. $arr_result['request'] = $array_info;
  53. $res_xml = $zzUtils->array_to_xml($arr_result);
  54. $res = $zzUtils->xml_post_request(app::$url, $res_xml);
  55. $arr_res = $zzUtils->xml_to_array($res);
  56. $arrOrderList = array();
  57. if ($arr_res['header']['rspCode'] == '0000') {
  58. foreach ($arr_res['body'] as $orderList) {
  59. $arrOrderList = $orderList;
  60. }
  61. return $arrOrderList;
  62. } else {
  63. return false;
  64. }
  65. }
  66. /** 取消订单接口
  67. * @param $startDate 游玩日期(开始)
  68. * @param $endPlayDate 游玩日期(结束)
  69. * @param $ticketTypeId 票型Id
  70. * @param $serialId 订单编号
  71. * @param $sceneryId 景区ID
  72. * @param string $travelerName 取票人姓名
  73. * @param string $travelerMobile 取票人手机
  74. * @param string $identityCard 身份证号码
  75. * @param string $page 当前页索引
  76. * @param string $pageSize 分页
  77. * @return array|mixed
  78. */
  79. function cancelOrder($zzUtils, $startDate, $endPlayDate, $ticketTypeId = "", $serialId, $sceneryId, $travelerName = "", $travelerMobile = "", $identityCard = "", $page = "", $pageSize = "")
  80. {
  81. $res_status = array();
  82. //先查询订单状态,如果是已取票状态不能取消订单
  83. $res = getOrderInfo($zzUtils, $startDate, $endPlayDate, $ticketTypeId = "", $serialId, $travelerName = "", $travelerMobile = "", $identityCard = "", $page = "", $pageSize = "");
  84. if (!$res) {
  85. $res_status['status'] = -2; //已取票,不能取消订单
  86. return $res_status;
  87. exit("订单信息拉取失败!");
  88. }
  89. if ($res['order']['orderStatus'] == "T") {
  90. $res_status['status'] = -1; //已取票,不能取消订单
  91. return $res_status;
  92. }
  93. //组装header
  94. $array_info['header'] = array();
  95. $base_array = $array_info['header'];
  96. $request_time = date("Y-m-d H:i:s", time()); //请求时间
  97. $array_header = array(
  98. "accountID" => app::$accountID,
  99. "serviceName" => 'CancelOrder',
  100. "digitalSign" => $zzUtils->sign_md5(app::$accountID, app::$accountPassword, $request_time),
  101. "reqTime" => $request_time);
  102. $result_array = $zzUtils->addXml($base_array, $array_header);
  103. $array_info['header'] = $result_array;
  104. //组装body
  105. $array_info['body'] = array();
  106. $base_array = $array_info['body'];
  107. $array_body = array(
  108. "serialId" => $serialId,
  109. "sceneryId" => $sceneryId
  110. );
  111. $result_array = $zzUtils->addXml($base_array, $array_body);
  112. $array_info['body'] = $result_array;
  113. $arr_result['request'] = $array_info;
  114. $res_xml = $zzUtils->array_to_xml($arr_result);
  115. $res = $zzUtils->xml_post_request(app::$url, $res_xml);
  116. $arr_res = $zzUtils->xml_to_array($res);
  117. if ($arr_res['header']['rspCode'] == '0000') {
  118. $res_status['status'] = 0; //取消成功
  119. return $res_status;
  120. } else {
  121. $res_status['status'] = 1; //订单取消失败
  122. return $res_status;
  123. }
  124. }