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.
 
 
 
 
 
 

198 lines
7.7 KiB

  1. <?php
  2. /*
  3. * wechat 2.0
  4. * Copyright (c) 2016 yixi wei http://zhizhuchuxing.com/
  5. * Date: 2016.7.12
  6. * Something is to pay QQ1062140302
  7. */
  8. if (ALLOW_ORIGIN)
  9. header("Access-Control-Allow-Origin:*");
  10. date_default_timezone_set('PRC');
  11. //require_once '../../zz_wxsct/Common/Mysql.php';
  12. $cancel_url = 'http://'.CS1_DOMAIN.'/api/submit-order/cancel-bus-order';
  13. $user_id =1;//$_COOKIE['user_id'] ;//getUserId();
  14. $back_order_id='0';
  15. if($_POST){
  16. $method = isset($_POST['iffirst']) ? $_POST['iffirst'] : "2";
  17. $order_id = isset($_POST['order_id']) ? $_POST['order_id'] : "452067";
  18. $ifback = "0";
  19. $to_order_id=$order_id;
  20. $pdo = conn();
  21. $sql_s = "select * from to_from where to_orderid=".$order_id." or back_orderid=".$order_id;
  22. $result=$pdo->query($sql_s);
  23. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  24. $result -> closeCursor();
  25. if($rowset){
  26. $ifback=1;
  27. $to_order_id = $rowset[0]['to_orderid'];
  28. $back_order_id = $rowset[0]['back_orderid'];
  29. if ($method == "2") {
  30. $list['to'] = Find($to_order_id);
  31. $time_cut = strtotime($list['to']['run_time'])-time();
  32. $list['back'] = Find($back_order_id);
  33. $time_cut2 = strtotime($list['back']['run_time'])-time();
  34. if($time_cut<=1800){
  35. $code ='1';
  36. $info = '开车前30分钟禁止退票';
  37. $massge = '开车前30分钟禁止退票,请刷新页面确认时间';
  38. $list = "";
  39. }else{
  40. // $sql = "CALL SP_CANCEL_ORDER(" . 0 . "," . $to_order_id . ")";
  41. // $result = $pdo -> query($sql);
  42. // $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  43. // $result -> closeCursor();
  44. // $sql = "CALL SP_CANCEL_ORDER(" . 0 . "," . $back_order_id . ")";
  45. // $result2 = $pdo -> query($sql);
  46. // $rowset2 = $result2 -> fetchAll(PDO::FETCH_ASSOC);
  47. $send_post_data = array(
  48. "order_id" => $to_order_id,
  49. "user_id" => 2,
  50. "if_link" => 0,
  51. "cancel_reason" => "过时未支付自动取消",
  52. 'opera_platform' => '微信商城'
  53. );
  54. $temp=httpRequest($cancel_url,$send_post_data);
  55. $result = json_decode($temp, true);
  56. $send_post_data = array(
  57. "order_id" => $back_order_id,
  58. "user_id" => 2,
  59. "if_link" => 0,
  60. "cancel_reason" => "过时未支付自动取消",
  61. 'opera_platform' => '微信商城'
  62. );
  63. $temp=httpRequest($cancel_url,$send_post_data);
  64. if(false != $result && isset($result['code']) && $result['code'] == 0){
  65. // $result -> closeCursor();
  66. $sql = " insert into order_refund(`order_id`,`price`,`pay_serial_number`) values(".$back_order_id.",".($list['back']['order_price']+$list['to']['order_price']).",'".$list['back']['pay_num']."')";
  67. $result = $pdo -> query($sql);
  68. $code = '0';
  69. $info = 'success';
  70. $massge = '成功';
  71. }else{
  72. $code = '1';
  73. $info = $rowset[0]['errorinfo'];
  74. $massge = $rowset[0]['errorinfo'];
  75. }
  76. }
  77. }
  78. // $time_cut = time()-strtotime($list['to']['run_time']); ///时间在开场30分钟前可以退票
  79. }else{
  80. //单程情况
  81. if ($method == "2") {
  82. $pdo = conn();
  83. $list = Find($order_id);
  84. $time_cut = strtotime($list['run_time'])-time();
  85. if($time_cut<=1800){
  86. $code ='1';
  87. $info = 'fail';
  88. $massge = '开车前30分钟禁止退票';
  89. $list = "";
  90. }else{
  91. // $sql = "CALL SP_CANCEL_ORDER(" . 0 . "," . $order_id . ")";
  92. // $result = $pdo -> query($sql);
  93. // $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  94. // $result -> closeCursor();
  95. $send_post_data = array(
  96. "order_id" => $order_id,
  97. "user_id" => 2,
  98. "if_link" => 0,
  99. "cancel_reason" => "过时未支付自动取消",
  100. 'opera_platform' => '微信商城'
  101. );
  102. $temp=httpRequest($cancel_url,$send_post_data);
  103. $result = json_decode($temp, true);
  104. if(false != $result && isset($result['code']) && $result['code'] == 0){
  105. $sql = " insert into order_refund(`order_id`,`price`,`pay_serial_number`) values(".$order_id.",".$list['order_price'].",'".$list['pay_num']."')";
  106. $pdo ->query($sql);
  107. $code = '0';
  108. $info = 'success';
  109. $massge = '订单已取消';
  110. }else{
  111. $code = '1';
  112. $info =$rowset[0]['errorinfo'];
  113. $massge = $rowset[0]['errorinfo'];
  114. }
  115. }
  116. $result -> closeCursor();
  117. }
  118. //$time_cut = time()-strtotime($list['run_time']); ///时间在开场30分钟前可以退票
  119. }
  120. } else {
  121. $code ='1';
  122. $info = 'fail';
  123. $massge = '失败';
  124. $list = "";
  125. }
  126. $json['ifback'] =$ifback;
  127. $json['code'] = $code;
  128. $json['info'] = $massge;
  129. $json['order_id']=$to_order_id;
  130. $json['back_order_id']=$back_order_id;
  131. echo json_encode($json);
  132. die;
  133. function Find($order_id){
  134. $pdo= conn();
  135. $sql = "select order_description,order_price,order_pay_main_id "
  136. . "from order_main "
  137. . "where order_id=".$order_id;
  138. $result=$pdo->query($sql);
  139. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  140. $order_price = $rowset[0];//订单总价格 订单票的数量
  141. $sql = "SELECT DISTINCT
  142. order_description,parent_order_id,run_date,run_time,PROD_START_STATION_AREA_NAME,PROD_START_STATION_RES_NAME,PROD_END_STATION_AREA_NAME,PROD_END_STATION_RES_NAME
  143. FROM `order_main`
  144. where PARENT_ORDER_ID=".$order_id;
  145. $result=$pdo->query($sql);
  146. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  147. $order_station = $rowset[0];//订单来往地址 订单时间 订单好
  148. if(empty($order_station))
  149. return false;
  150. $array_order_desc=array();
  151. $arr_temp = explode('|',$order_price['order_description']);
  152. $arr=array();
  153. foreach ($arr_temp as $k=>$v2) {
  154. if(!empty($v2))
  155. $array_order_desc[]= explode (',', $v2); //订单票 * 数量
  156. }
  157. $list = array();
  158. //上海(黄浦旅游集散站) - 乌镇(西栅1号停车场)//反的数组
  159. $list['station'] = $order_station['PROD_START_STATION_AREA_NAME'].'('.$order_station['PROD_START_STATION_RES_NAME'].')'
  160. .'-'.$order_station['PROD_END_STATION_AREA_NAME'].'('.$order_station['PROD_END_STATION_RES_NAME'].')';
  161. $list['start_station']=$order_station['PROD_START_STATION_AREA_NAME'];
  162. $list['end_station']=$order_station['PROD_END_STATION_AREA_NAME'];
  163. $list['start_res_name'] = $order_station['PROD_START_STATION_RES_NAME'];
  164. $list['end_res_name'] = $order_station['PROD_END_STATION_RES_NAME'];
  165. $list['run_date'] = $order_station['run_date'];
  166. $list['run_time'] = $order_station['run_date'].' '.$order_station['run_time'];
  167. $list['count']='';
  168. foreach ($array_order_desc as $v){
  169. $list['count'] .= ' '.$v[0].' × '.$v[2];
  170. }
  171. $list['order_price'] = $order_price['order_price'];
  172. $sql = "select pay_serial_number from order_pay_detail where pay_main_id =".$order_price['order_pay_main_id'];
  173. $result=$pdo->query($sql);
  174. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  175. $list['pay_num'] = $rowset[0]['pay_serial_number'];
  176. return $list;
  177. }