feat: 添加小程序消息推送事件

This commit is contained in:
Gosowong 2023-05-16 16:40:20 +08:00
parent 9b14906262
commit e507f80b38
4 changed files with 66 additions and 0 deletions

View File

@ -42,6 +42,14 @@ class WechatController
{
return $this->services->serve();
}
/**
* 微信小程序公众号服务
* @return \think\Response
*/
public function miniServe()
{
return $this->services->miniServe();
}
/**
* 支付异步回调

View File

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

View File

@ -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

View File

@ -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;
};
});
}
}