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..eb3c14c18 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; /** * 微信小程序接口 @@ -100,6 +101,16 @@ class MiniProgramService $appId = isset($wechat['routine_appId']) ? trim($wechat['routine_appId']) : ''; $appsecret = isset($wechat['routine_appsecret']) ? trim($wechat['routine_appsecret']) : ''; } + $config = [ + 'token' => isset($wechat['wechat_token']) ? trim($wechat['wechat_token']) : '', + 'aes_key' => isset($wechat['wechat_encodingaeskey']) ? trim($wechat['wechat_encodingaeskey']) : '', + 'debug' => true, + 'log' => [ + 'level' => 'debug', + 'permission' => 0777, + 'file' => '/www/wwwroot/bz.wuht.net/crmeb/crmeb/runtime/log', + ], + ]; $config['mini_program'] = [ 'app_id' => $appId, 'secret' => $appsecret, @@ -848,4 +859,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; + }; + }); + } } diff --git a/crmeb/crmeb/services/easywechat/orderShipping/MiniOrderService.php b/crmeb/crmeb/services/easywechat/orderShipping/MiniOrderService.php index 8f84608bc..7e5bed349 100644 --- a/crmeb/crmeb/services/easywechat/orderShipping/MiniOrderService.php +++ b/crmeb/crmeb/services/easywechat/orderShipping/MiniOrderService.php @@ -25,6 +25,12 @@ class MiniOrderService { $payment = SystemConfigService::more(['routine_appId', 'routine_appsecret', 'pay_weixin_mchid', 'pay_new_weixin_open', 'pay_new_weixin_mchid']); return [ + 'debug' => true, + 'log' => [ + 'level' => 'debug', + 'permission' => 0777, + 'file' => '/www/wwwroot/bz.wuht.net/crmeb/crmeb/runtime/log', + ], 'mini_program' => [ 'app_id' => $payment['routine_appId'] ?? '', 'secret' => $payment['routine_appsecret'] ?? '',