RoutineServer.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace app\routine\model\routine;
  3. use app\admin\model\system\SystemConfig;
  4. class RoutineServer{
  5. /**
  6. * curl get方式
  7. * @param string $url
  8. * @param array $options
  9. * @return mixed
  10. */
  11. public static function curlGet($url = '', $options = array())
  12. {
  13. $ch = curl_init($url);
  14. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  15. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  16. if (!empty($options)) {
  17. curl_setopt_array($ch, $options);
  18. }
  19. //https请求 不验证证书和host
  20. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  21. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  22. $data = curl_exec($ch);
  23. curl_close($ch);
  24. return $data;
  25. }
  26. /**
  27. * curl post
  28. * @param string $url
  29. * @param string $postData
  30. * @param array $options
  31. * @return mixed
  32. */
  33. public static function curlPost($url = '', $postData = '', $options = array())
  34. {
  35. if (is_array($postData)) {
  36. $postData = http_build_query($postData);
  37. }
  38. $ch = curl_init();
  39. curl_setopt($ch, CURLOPT_URL, $url);
  40. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  41. curl_setopt($ch, CURLOPT_POST, 1);
  42. curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
  43. curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置cURL允许执行的最长秒数
  44. if (!empty($options)) {
  45. curl_setopt_array($ch, $options);
  46. }
  47. //https请求 不验证证书和host
  48. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  49. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  50. $data = curl_exec($ch);
  51. curl_close($ch);
  52. return $data;
  53. }
  54. /**
  55. * 微信公众号
  56. * @param string $routineAppId
  57. * @param string $routineAppSecret
  58. * @return mixed
  59. */
  60. public static function getAccessToken($routineAppId = '',$routineAppSecret = ''){
  61. $routineAppId = SystemConfig::getValue('routine_appId');
  62. $routineAppSecret = SystemConfig::getValue('routine_appsecret');
  63. $url ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$routineAppId."&secret=".$routineAppSecret;
  64. return json_decode(self::curlGet($url),true);
  65. }
  66. /**
  67. * 获取access_token 数据库
  68. * @return mixed
  69. */
  70. public static function get_access_token(){
  71. $accessToken = db('routine_access_token')->where('id',1)->find();
  72. if($accessToken['stop_time'] > time()) return $accessToken['access_token'];
  73. else{
  74. $accessToken = self::getAccessToken();
  75. if(isset($accessToken['access_token'])){
  76. $data['access_token'] = $accessToken['access_token'];
  77. $data['stop_time'] = bcadd($accessToken['expires_in'],time(),0);
  78. db('routine_access_token')->where('id',1)->update($data);
  79. }
  80. return $accessToken['access_token'];
  81. }
  82. }
  83. }