25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

144 lines
4.4 KiB

  1. <?php
  2. require_once __DIR__.'/../Common/Config.php';
  3. require_once __DIR__.'/../Common/Function.php';
  4. require_once __DIR__.'/../Common/driver_config.php';
  5. require_once __DIR__.'/../baidupush/sdk.php';
  6. $openid=isset($_COOKIE['user_openid'])?$_COOKIE['user_openid']:'';
  7. $code=isset($_GET['code'])?$_GET['code']:'';
  8. //$c = file_get_contents('php://input');
  9. //$android=json_decode($c,true);
  10. $userId=isset($_GET['userId'])?$_GET['userId']:'';
  11. $runId=isset($_GET['runId'])?$_GET['runId']:'';
  12. $busOrderId=isset($_GET['busOrderId'])?$_GET['busOrderId']:'';
  13. $stationId=isset($_GET['stationId'])?$_GET['stationId']:'';
  14. $channelId = isset($_GET['channelId'])?$_GET['channelId']:'';
  15. write_log(json_encode($_GET));
  16. if ($openid==''){
  17. if ($code ==''){
  18. $selfUrl=urlencode("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
  19. $getCodeUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".APPID."&redirect_uri=".$selfUrl."&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
  20. Header("Location: $getCodeUrl");
  21. exit();
  22. }else{
  23. $getOpenidUrl="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".APPID."&secret=".APPSECRET."&code=".$code."&grant_type=authorization_code";
  24. $response=http_request($getOpenidUrl);
  25. $openIdObj=json_decode($response);
  26. $openid=$openIdObj->openid;
  27. setcookie('user_openid', $openid, 0, '/');
  28. }
  29. }
  30. $pdo=conn();
  31. $sql="CALL driver_wechat_ticket('".$userId."','".$runId."','".$busOrderId."','".$stationId."','".$openid."')";
  32. write_log("sql".$sql);
  33. if(is_object($pdo)){
  34. $result=$pdo->query($sql);
  35. $json=$result->fetchAll(PDO::FETCH_ASSOC);
  36. $result->closeCursor();
  37. write_log($openid."==".$sql."data:::".json_encode($json));
  38. $sdk = new PushSDK();
  39. // 设置消息类型为 通知类型.
  40. $opts = array (
  41. 'msg_type' => 0
  42. );
  43. $data=array();
  44. if($json){
  45. if($json[0]['num']>0){
  46. //$data=$json[0];
  47. $data['info']='检票成功';
  48. $message = array (
  49. // 消息的标题.
  50. //'title' => 'yes',
  51. // 消息内容
  52. 'message' => "检票成功".$json[0]['num']."人"
  53. );
  54. }else{
  55. /*$data=$json[0];
  56. if($data['info']=="219"){
  57. $data['info']='检票失败';
  58. }*/
  59. $data['info']="检票失败";
  60. $message = array (
  61. // 消息的标题.
  62. //'title' => 'no',
  63. // 消息内容
  64. 'message' => "检票失败"
  65. );
  66. }
  67. }else{
  68. //$data['code']='1';
  69. $data['info']='检票失败';
  70. $message = array (
  71. // 消息的标题.
  72. //'title' => 'no',
  73. // 消息内容
  74. 'message' => "检票失败"
  75. );
  76. }
  77. $rs = $sdk -> pushMsgToSingleDevice($channelId, $message, $opts);
  78. write_log($channelId."==".json_encode($message)."==".json_encode($opts));
  79. // 判断返回值,当发送失败时, $rs的结果为false, 可以通过getError来获得错误信息.
  80. if($rs === false){
  81. write_log("云推送失败code:".$openid."==runid==".$runId."==busorderid==".$busOrderId."==station==".$stationId.json_encode($sdk->getLastErrorCode()));
  82. write_log("云推送失败msg:".$openid."==runid==".$runId."==busorderid==".$busOrderId."==station==".$stationId.json_encode($sdk->getLastErrorMsg()));
  83. }else{
  84. // 将打印出消息的id,发送时间等相关信息.
  85. write_log("云推送成功msg: openid:".$openid."==runid==".$runId."==busorderid==".$busOrderId."==station==".$stationId.json_encode($rs));
  86. }
  87. }
  88. if($data['info']=='检票失败'){
  89. header("Location: http://wx.zhizhuchuxing.com/check_fail.html");
  90. }else{
  91. $sql1="select a.PROD_NAME,a.PARENT_PROD_NAME,concat( a.RUN_DATE,' ',a.RUN_TIME)as run_date_time ,a.RUN_BUS_SEAT_NAME
  92. from order_main as a
  93. inner join(
  94. select order_id
  95. from order_weixin_bond
  96. where weixin_open_id='".$openid."'
  97. order by id desc limit 1
  98. )as b on a.PARENT_ORDER_ID=b.order_id
  99. where a.CANCEL_FLAG=0 and a.ORDER_VALID_STATUS=1";
  100. $result1=$pdo->query($sql1);
  101. $rowset1=$result1->fetchAll(PDO::FETCH_ASSOC);
  102. $result1->closeCursor();
  103. $run_date_time=$prod_name=$seat_name='';
  104. $n=0;
  105. foreach($rowset1 as $v){
  106. if(strpos($v['PROD_NAME'],'往返专用')!==false){
  107. continue;
  108. }
  109. if($run_date_time ==''){
  110. $run_date_time=$v['run_date_time'];
  111. }
  112. if($prod_name==''){
  113. $prod_name=$v['PARENT_PROD_NAME'];
  114. }
  115. $seat_name.=$v['RUN_BUS_SEAT_NAME']."、";
  116. $n+=1;
  117. }
  118. $seat_name=rtrim($seat_name,'、');
  119. $url="http://wx.zhizhuchuxing.com/check_succeed.html?line=".$prod_name."&time=".$run_date_time."&num=".$n."&seat=".$seat_name;
  120. write_log(json_encode($rowset1));
  121. write_log("url:".$url);
  122. header("Location: $url");
  123. }
  124. ?>