WechatController.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Http\Controllers;
  3. use EasyWeChat\Message\News;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Config;
  6. use Log;
  7. class WechatController extends Controller
  8. {
  9. /**
  10. * 处理微信的请求消息
  11. *
  12. * @return string
  13. */
  14. public function serve()
  15. {
  16. $wechat = app('wechat');
  17. $userApi = $wechat->user;
  18. $wechat->server->setMessageHandler(function($message) use ($userApi){
  19. switch ($message->MsgType) {
  20. case 'event':
  21. # 事件消息...
  22. switch ($message->Event) {
  23. case 'subscribe':
  24. return '感谢你的关注';
  25. break;
  26. case 'CLICK':
  27. switch ($message->EventKey) {
  28. case 'VOTE':
  29. $news = new News([
  30. 'title' => '2016年四川省乡村(城市)学校少年宫专题视频节目展播网络评选',
  31. 'description' => '2016年四川省乡村(城市)学校少年宫专题视频节目展播网络评选',
  32. 'url' => Config::get('app.url').'/vote/index',
  33. 'image' => Config::get('app.url').'/images/WechatIMG5.jpeg',
  34. ]);
  35. Log::info($news->url);
  36. return $news;
  37. break;
  38. }
  39. break;
  40. }
  41. break;
  42. case 'text':
  43. break;
  44. case 'image':
  45. # 图片消息...
  46. break;
  47. case 'voice':
  48. # 语音消息...
  49. break;
  50. case 'video':
  51. # 视频消息...
  52. break;
  53. case 'location':
  54. # 坐标消息...
  55. break;
  56. case 'link':
  57. # 链接消息...
  58. break;
  59. // ... 其它消息
  60. default:
  61. # code...
  62. break;
  63. }
  64. });
  65. return $wechat->server->serve();
  66. }
  67. }