Przeglądaj źródła

Merge branch 'v5.0.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v5.0.0dev

evoxwht 2 lat temu
rodzic
commit
51d849d920

+ 8 - 0
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();
+    }
 
     /**
      * 支付异步回调

+ 1 - 0
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' => '获取代码版本号']);

+ 12 - 0
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

+ 55 - 0
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;
+            };
+        });
+    }
 }

+ 6 - 0
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'] ?? '',