SysGlobalController.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Web\Controllers;
  3. use App\Exceptions\ApiException;
  4. use App\Http\Controllers\BaseController;
  5. use App\Web\Services\GlobalConfigService;
  6. use Illuminate\Http\Request;
  7. class SysGlobalController extends BaseController
  8. {
  9. protected $service = null;
  10. /**
  11. * 构造函数
  12. * BlogController constructor.
  13. */
  14. public function __construct(GlobalConfigService $service)
  15. {
  16. $this->service = $service;
  17. }
  18. public function notificationEmail(Request $request)
  19. {
  20. $signature = $request->input('signature');
  21. $timestamp = $request->input('timestamp');
  22. $emails = [];
  23. $validTime = time() - 7200;
  24. if (!empty($signature) && !empty($timestamp) && $timestamp > $validTime) {
  25. $params = ['global_key' => 'MP_SYSTEM_MESSAGES'];
  26. $data = $this->service->getGlobalConfigInfo($params);
  27. if(!empty($data['value'])) {
  28. $mpSystemMessages = json_decode($data['value'], true);
  29. if(!empty($mpSystemMessages['sys_app_key'])
  30. && md5($mpSystemMessages['sys_app_key'].$timestamp) == $signature) {
  31. //通过校验
  32. $emails = $mpSystemMessages['to_mail'];
  33. }
  34. }
  35. } else {
  36. throw new ApiException(500);
  37. }
  38. return $this->jsonResponse(
  39. 'ok',
  40. $emails
  41. );
  42. }
  43. }