BindEvent.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Wechat\Official\Event\Scan;
  3. use App\Models\Company;
  4. use App\Models\Member;
  5. use App\Wechat\Official\Event\EventInterface;
  6. use Illuminate\Support\Facades\Cache;
  7. /**
  8. * 公众号扫码绑定事件
  9. * Class LoginEvent
  10. * @package App\Wechat\Official\Event\Scan
  11. * Auth Zhong
  12. * Date 2019-05-08
  13. */
  14. class BindEvent implements EventInterface
  15. {
  16. /**
  17. * @param array $wechatUser 从微信里获取的用户基本信息
  18. * @param bool|Company|Member $user 有没有绑定系统用户,false为未绑定,否则为对应的用户模型
  19. * @param array $payload 该事件的参数
  20. * @return mixed
  21. * @throws \App\Exceptions\ResponseException
  22. */
  23. public function handle(array $wechatUser, $user, array $payload)
  24. {
  25. if ($user) {
  26. return "您已绑定了账号, 不能再绑定其它账号:\n".
  27. "<a href='".route('mobile.auth.thirdlogin.official')."'>点此立即登录</a>";
  28. } else {
  29. Cache::put($payload['Ticket'], $wechatUser, 60);
  30. $url=route('mobile.auth.thirdlogin.official.login_to_web', ['ticket'=>$payload['Ticket']]);
  31. return <<<EOT
  32. <a href='$url'>点此立即绑定</a>
  33. EOT;
  34. }
  35. }
  36. }