From e507f80b38ceff833bc2923681609369808f8864 Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Tue, 16 May 2023 16:40:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/v1/wechat/WechatController.php | 8 ++++ crmeb/app/api/route/v1.php | 1 + crmeb/app/services/wechat/WechatServices.php | 12 +++++ .../crmeb/services/app/MiniProgramService.php | 45 +++++++++++++++++++ 4 files changed, 66 insertions(+) diff --git a/crmeb/app/api/controller/v1/wechat/WechatController.php b/crmeb/app/api/controller/v1/wechat/WechatController.php index c92ecd90b..4dc315c8b 100644 --- a/crmeb/app/api/controller/v1/wechat/WechatController.php +++ b/crmeb/app/api/controller/v1/wechat/WechatController.php @@ -42,6 +42,14 @@ class WechatController { return $this->services->serve(); } + /** + * 微信小程序公众号服务 + * @return \think\Response + */ + public function miniServe() + { + return $this->services->miniServe(); + } /** * 支付异步回调 diff --git a/crmeb/app/api/route/v1.php b/crmeb/app/api/route/v1.php index 1ab4038ec..5aba54cd7 100644 --- a/crmeb/app/api/route/v1.php +++ b/crmeb/app/api/route/v1.php @@ -16,6 +16,7 @@ use think\Response; Route::group(function () { Route::any('wechat/serve', 'v1.wechat.WechatController/serve')->option(['real_name' => '公众号服务']);//公众号服务 + Route::any('wechat/miniServe', 'v1.wechat.WechatController/miniServe')->option(['real_name' => '小程序服务']);//公众号服务 Route::any('pay/notify/:type', 'v1.PayController/notify')->option(['real_name' => '支付回调']);//支付回调 Route::get('get_script', 'v1.PublicController/getScript')->option(['real_name' => '获取统计代码']);//获取统计代码 Route::get('version', 'v1.PublicController/getVersion')->option(['real_name' => '获取代码版本号']); diff --git a/crmeb/app/services/wechat/WechatServices.php b/crmeb/app/services/wechat/WechatServices.php index f5d1d998b..a1f83786d 100644 --- a/crmeb/app/services/wechat/WechatServices.php +++ b/crmeb/app/services/wechat/WechatServices.php @@ -17,6 +17,7 @@ use app\dao\wechat\WechatUserDao; use app\services\user\UserServices; use app\services\user\UserVisitServices; use crmeb\exceptions\ApiException; +use crmeb\services\app\MiniProgramService; use crmeb\services\CacheService; use crmeb\services\CacheService as Cache; use crmeb\services\app\WechatService as WechatAuthService; @@ -53,6 +54,17 @@ class WechatServices extends BaseServices return WechatAuthService::serve(); } + /** + * 微信公众号服务 + * @return \think\Response + * @throws \EasyWeChat\Server\BadRequestException + */ + public function miniServe() + { + ob_clean(); + return MiniProgramService::serve(); + } + /** * 支付异步回调 * @return string diff --git a/crmeb/crmeb/services/app/MiniProgramService.php b/crmeb/crmeb/services/app/MiniProgramService.php index 3f2e0a21b..7c79a364a 100644 --- a/crmeb/crmeb/services/app/MiniProgramService.php +++ b/crmeb/crmeb/services/app/MiniProgramService.php @@ -19,6 +19,7 @@ use EasyWeChat\Payment\Order; use think\facade\Log; use crmeb\utils\Hook; use think\facade\Cache; +use think\Response; /** * 微信小程序接口 @@ -848,4 +849,48 @@ class MiniProgramService } return $message ?: self::MSG_CODE[$e->getCode()] ?? $e->getMessage(); } + + + /** + * @return Response + * @throws \EasyWeChat\Server\BadRequestException + */ + public static function serve(): Response + { + $wechat = self::application(true); + $server = $wechat->server; + self::hook($server); + $response = $server->serve(); + return response($response->getContent()); + } + + private static function hook($server) + { + $server->setMessageHandler(function ($message) { + switch ($message->MsgType) { + case 'event': + switch (strtolower($message->Event)) { + case 'trade_manage_remind_access_api': + Log::error('event1'); + break; + case 'trade_manage_remind_shipping': + Log::error('event2'); + break; + case 'trade_manage_order_settlement': + Log::error('event3'); + break; + }; + break; + case 'trade_manage_remind_access_api': + Log::error('notevent1'); + break; + case 'trade_manage_remind_shipping': + Log::error('notevent2'); + break; + case 'trade_manage_order_settlement': + Log::error('notevent3'); + break; + }; + }); + } }