WebHook.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Tools;
  3. use Illuminate\Support\Facades\Http;
  4. use Illuminate\Support\Facades\Log;
  5. class WebHook
  6. {
  7. /**
  8. * Create a new command instance.
  9. *
  10. * @return void
  11. */
  12. public function __construct() {}
  13. public function wechat($url, $title = null, $message = null)
  14. {
  15. $param['msgtype'] = 'markdown';
  16. if (empty($title) && empty($message)) {
  17. return 0;
  18. }
  19. if ($title !== null) {
  20. $param['markdown']['title'] = $title;
  21. }
  22. if ($message !== null) {
  23. $param['markdown']['content'] = $message;
  24. }
  25. return $this->send($url, $param);
  26. }
  27. public function dingtalk($url, $title = null, $message = null)
  28. {
  29. $param = [];
  30. $param['msgtype'] = 'markdown';
  31. if (empty($title) && empty($message)) {
  32. return 0;
  33. }
  34. if ($title !== null) {
  35. $param['markdown']['title'] = $title;
  36. }
  37. if ($message !== null) {
  38. $param['markdown']['text'] = $message;
  39. }
  40. return $this->send($url, $param);
  41. }
  42. private function send($url, $param)
  43. {
  44. try {
  45. $response = Http::post($url, $param);
  46. $logResponse = [
  47. 'status' => $response->status(),
  48. 'headers' => $response->headers(),
  49. 'body' => $response->body(),
  50. ];
  51. if ($response->successful()) {
  52. Log::info('webhook send to:{url} message:{message} response:{response} ',
  53. ['url' => $url, 'message' => $param, 'response' => $logResponse]);
  54. return 0;
  55. } else {
  56. Log::error('webhook send to:{url} message:{message} ',
  57. ['url' => $url, 'message' => $param, 'response' => $logResponse]);
  58. return 1;
  59. }
  60. } catch (\Exception $e) {
  61. Log::error('webhook send to:{url} message:{message} error:{error} ',
  62. ['url' => $url, 'message' => $param, $error => $e]);
  63. return 1;
  64. }
  65. return 0;
  66. }
  67. }