Browse Source

Merge branch 'feature-wechat' of 121.36.198.49:zy_duanju/duanju_manage into feature-wechat

zhaoyang 1 year ago
parent
commit
ea6e5dc2d3

+ 17 - 12
modules/Channel/Http/Controllers/WechatOpenPlatformController.php

@@ -5,17 +5,16 @@ namespace Modules\Channel\Http\Controllers;
 use Catch\Base\CatchController;
 use EasyWeChat\OpenPlatform\Application;
 use EasyWeChat\OpenPlatform\Server\Guard;
+
 use Illuminate\Foundation\Validation\ValidatesRequests;
 use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Redis;
 use Modules\Channel\Models\WechatAuthorizationInfo;
 use Modules\Channel\Services\WechatOpenPlatform\WechatOpenPlatformService;
 use Modules\Common\Errors\Errors;
 use Modules\Common\Exceptions\CommonBusinessException;
 use Modules\User\Http\Controllers\UserTrait;
-use Symfony\Component\Cache\Adapter\RedisAdapter;
+use Modules\WechatPlatform\Services\WechatCommonService;
 
 class WechatOpenPlatformController extends CatchController
 {
@@ -123,8 +122,8 @@ class WechatOpenPlatformController extends CatchController
         $componentInfo = WechatOpenPlatformService::getComponentInfoByAppid($component_appid);
         $app = WechatOpenPlatformService::buildApplication($componentInfo);
         myLog("wx-xiaoxi")->info('-------开始处理---'.get_date());
-        $server = $app->getServer();
-        $message = $server->getDecryptedMessage();
+        $server = $app->server;
+        $message = $server->getMessage();
         myLog("wx-xiaoxi")->info([
             'authorizer_appid' => $authorizer_appid,
             'component_appid' => $component_appid,
@@ -132,15 +131,21 @@ class WechatOpenPlatformController extends CatchController
             'msg' => $message,
         ]);
         $refreshToken = WechatOpenPlatformService::getRefreshToken($authorizer_appid,$component_appid);
-        $server = $app->getOfficialAccountWithRefreshToken($authorizer_appid, $refreshToken)->getServer();
-        $server->addMessageListener('text', function($message) {
-            myLog("wx-xiaoxi")->info('----文本消息---');
-            if ($message->Content == "pk"){
-                return  $message->FromUserName;
-            }
+        $server = $app->officialAccount($authorizer_appid, $refreshToken);
+        // $server->addMessageListener('text', function($message) {
+        //       myLog("wx-xiaoxi")->info('----文本消息---');
+        //     if ($message->Content == "pk"){
+        //         return  $message->FromUserName;
+        //     }
+        // });
+
+        $server->server->push(function ($message) use($authorizer_appid,$component_appid) {
+            myLog("wx-xiaoxi")->info("----文本消息---");
+            myLog("wx-xiaoxi")->info("体消息:");
+            myLog("wx-xiaoxi")->info($message);
+            return WechatCommonService::handleMessage($authorizer_appid,$message);
         });
 
-        $server->addEventListener('subscribe', function() {  });
         myLog("wx-xiaoxi")->info('-------结束处理---'.get_date());
         return $server->serve();
     }

+ 54 - 0
modules/WechatPlatform/Services/WechatCommonService.php

@@ -26,4 +26,58 @@ class WechatCommonService extends BaseService
     {
         return ['url' =>  "/pages/video/index?video_id={$videoId}&sequence={$sequence}"];
     }
+
+    /**
+     *  微信消息推送处理
+     * name: handelMessage
+     * @param $authorizer_appid
+     * @param $message
+     * date 2023/07/10 14:53
+     */
+    public static function handleMessage($appid, $message)
+    {
+        switch ($message['MsgType']) {
+            case 'event':
+                return '收到事件消息';
+                break;
+            case 'text':
+                return self::handleTextMessage($appid,$message);
+                break;
+            case 'image':
+                return '收到图片消息';
+                break;
+            case 'voice':
+                return '收到语音消息';
+                break;
+            case 'video':
+                return '收到视频消息';
+                break;
+            case 'location':
+                return '收到坐标消息';
+                break;
+            case 'link':
+                return '收到链接消息';
+                break;
+            case 'file':
+                return '收到文件消息';
+            default:
+                return '收到其它消息';
+                break;
+        }
+    }
+
+    /**
+     *  文本纤细处理
+     * name: handleTextMessage
+     * @param $appid
+     * @param $content
+     * date 2023/07/10 15:03
+     */
+    private static function handleTextMessage($appid, $msg)
+    {
+        $content = $msg['Content'];
+        if ($content == "pk"){
+            return $msg['FromUserName'] ;
+        }
+    }
 }