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.
 
 
 
 

63 lines
1.8 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Qiu Song
  5. * Date: 2016/11/07
  6. * Time: 15:00
  7. */
  8. header("Content-type:text/html;charset=utf-8");
  9. require_once __DIR__.'/../Common/Mysql.php';
  10. date_default_timezone_set('Asia/Shanghai');
  11. $current_time = date("Y-m-d H:i:s");
  12. $pdo=conn();
  13. $sql = " SELECT id,send_url,send_data,send_result,success_flag ".
  14. " FROM outside_send_url ".
  15. " WHERE success_flag = 0 ";
  16. $result=$pdo->query($sql);
  17. if( false == $result ) {
  18. echo " NO DATA";
  19. exit();
  20. }
  21. $rowset = $result->fetchAll();
  22. $result->closeCursor();
  23. foreach( $rowset as $row_info ) {
  24. $send_url = $row_info["send_url"];
  25. $send_data = $row_info["send_data"];
  26. $send_result = send_post_json( $send_url, $send_data );
  27. $success_flag = 0;
  28. if( $send_result != false && $send_result[0] == 200 && isset($send_result[1]) ) {
  29. $result_array = json_decode($send_result[1],true);
  30. if( $result_array["status"] == 0 ) {
  31. $success_flag = 1;
  32. }
  33. }
  34. $send_result_txt = json_encode($send_result);
  35. $pdo_update = conn();
  36. $sql_update = " UPDATE outside_send_url set success_flag={$success_flag},send_time='{$current_time}',send_result='{$send_result_txt}' WHERE id={$row_info["id"]}";
  37. $pdo_update->exec($sql_update);
  38. }
  39. echo $current_time." END";
  40. exit();
  41. function send_post_json($url, $data_string) {
  42. $ch = curl_init();
  43. curl_setopt($ch, CURLOPT_POST, 1);
  44. curl_setopt($ch, CURLOPT_URL, $url);
  45. curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
  46. curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  47. 'Content-Type: application/json; charset=utf-8',
  48. 'Content-Length: ' . strlen($data_string))
  49. );
  50. ob_start();
  51. curl_exec($ch);
  52. $return_content = ob_get_contents();
  53. ob_end_clean();
  54. $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  55. return array($return_code, $return_content);
  56. }