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.
 
 
 
 

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