WechatCommonService.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. /**
  3. *
  4. * @file:WechatCommonSevice.php
  5. * @Date: 2023/7/7
  6. * @Time: 11:44
  7. */
  8. namespace Modules\WechatPlatform\Services;
  9. use Modules\Common\Services\BaseService;
  10. class WechatCommonService extends BaseService
  11. {
  12. /**
  13. * 播放页面地址
  14. * name: getPlayPageUrl
  15. * @param $videoId
  16. * @param $sequence
  17. * date 2023/07/07 11:52
  18. */
  19. public static function getPlayPageUrl($videoId,$sequence)
  20. {
  21. return ['url' => "/pages/video/index?video_id={$videoId}&sequence={$sequence}"];
  22. }
  23. /**
  24. * 微信消息推送处理
  25. * name: handleMessage
  26. * @param $app
  27. * @param $wechatAppId 微信公众号授权信息id
  28. * @param $message
  29. * @return string|void
  30. * date 2023/07/10 16:04
  31. */
  32. public static function handleMessage($app,$wechatAppId, $message)
  33. {
  34. switch ($message['MsgType']) {
  35. case 'event':
  36. return '收到事件消息';
  37. break;
  38. case 'text':
  39. // 更新用户活跃时间
  40. self::updateUserActivityTime($app,$message['FromUserName']);
  41. return self::handleTextMessage($wechatAppId,$message);
  42. case 'image':
  43. return '收到图片消息';
  44. break;
  45. case 'voice':
  46. return '收到语音消息';
  47. break;
  48. case 'video':
  49. return '收到视频消息';
  50. break;
  51. case 'location':
  52. return '收到坐标消息';
  53. break;
  54. case 'link':
  55. return '收到链接消息';
  56. break;
  57. case 'file':
  58. return '收到文件消息';
  59. default:
  60. return '收到其它消息';
  61. break;
  62. }
  63. }
  64. /**
  65. * 文本纤细处理
  66. * name: handleTextMessage
  67. * @param $appid
  68. * @param $content
  69. * date 2023/07/10 15:03
  70. */
  71. private static function handleTextMessage($wechatAppId, $msg)
  72. {
  73. $content = $msg['Content'];
  74. myLog("wx-xiaoxi")->info('关键词处理'.$content);
  75. myLog("wx-xiaoxi")->info($msg);
  76. if ($content == "pk"){
  77. return $msg['FromUserName'] ;
  78. }
  79. $back = WechatKeywordsService::getKeywordsByWords($content,$wechatAppId);
  80. $back = $back ?: "";
  81. myLog("wx-xiaoxi")->info(['title' => "回复信息",'wechatAppId' => $wechatAppId,'msg' => $content,'back' => $back]);
  82. return $back;
  83. }
  84. private static function updateUserActivityTime($app, $openId)
  85. {
  86. $user = $app->user->get($openId);
  87. myLog("wx-xiaoxi")->info("拉取用户信息");
  88. myLog("wx-xiaoxi")->info($user);
  89. }
  90. }