Browse Source

审核结果消息接收

develop
李可松 4 years ago
parent
commit
1adc8a51fc
  1. 28
      app/Http/Controllers/Api/MiniProgramController.php
  2. 46
      app/Http/Controllers/Api/TestController.php

28
app/Http/Controllers/Api/MiniProgramController.php

@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\AdminSetting;
use App\Models\Agent;
use App\Models\MiniProgramUploadLog;
use EasyWeChat\Factory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
@ -90,7 +91,7 @@ class MiniProgramController extends Controller
$server = $openPlatform->miniProgram($appid, $refreshToken)->server;
//接收事件 https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/audit_event.html
$server->push(function ($message) {
$server->push(function ($message) use ($appid) {
DB::table('mini_program_events')
->insert([
'type' => 1,
@ -98,22 +99,23 @@ class MiniProgramController extends Controller
'event' => $message['MsgType'] ?? '',
'created_at' => now()
]);
if (isset($message['MsgType'], $message['Event']) && $message['MsgType'] == 'event') {
//审核结果通知
if (isset($message['MsgType'], $message['Event']) && $message['MsgType'] == 'event') {
$auditArr = [
'weapp_audit_success' => 0, //成功
'weapp_audit_fail' => 1, //拒绝
'weapp_audit_delay' => 4, //审核延后
];
$log = MiniProgramUploadLog::query()
->where('appid', $appid)
->orderBy('id', 'desc')
->first();
$log->is_success = $auditArr[$message['Event']] ?? -1;
$log->save();
}
});
//试试还是这个?
$openPlatform->server->push(function ($message) {
DB::table('mini_program_events')
->insert([
'type' => 3,
'response' => json_encode($message),
'event' => $message['MsgType'] ?? '',
'created_at' => now()
]);
});
return $server->serve();
}
}

46
app/Http/Controllers/Api/TestController.php

@ -3,6 +3,8 @@
namespace App\Http\Controllers\Api;
use App\Models\AdminSetting;
use App\Models\AgentProduct;
use App\Models\MiniProgramUploadLog;
use EasyWeChat\Factory;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
@ -17,31 +19,29 @@ class TestController
public function index()
{
$appid = 'wx5bd5789ad8f89524';
$setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']);
$config = [
'app_id' => $setting['service_appid'],
'secret' => $setting['service_appsecret'],
'token' => $setting['service_token'],
'aes_key' => $setting['service_aeskey'],
];
$app = Factory::openPlatform($config);
$refreshToken = $app->getAuthorizer($appid)['authorization_info']['authorizer_refresh_token'] ?? null;
if (!$refreshToken) {
return $this->error('获取refresh_token失败');
}
$miniProgram = $app->miniProgram($appid, $refreshToken);
$domain = $miniProgram['domain'];
$message = json_decode('{"ToUserName":"gh_f4ab40774bed","FromUserName":"o4seR5d-TVCImgh2aE6UtrQn6LIM","CreateTime":"1631670431","MsgType":"event","Event":"weapp_audit_success","SuccTime":"1631670431"}', true);
DB::table('mini_program_events')
->insert([
'type' => 1,
'response' => json_encode($message),
'event' => $message['MsgType'] ?? '',
'created_at' => now()
]);
$host = env('APP_URL');
$param = [
"action" => "add",
"requestdomain" => [$host],
"wsrequestdomain" => [str_replace('http', 'ws', $host)],
"uploaddomain" => [$host],
"downloaddomain" => [$host],
//审核结果通知
if (isset($message['MsgType'], $message['Event']) && $message['MsgType'] == 'event') {
$auditArr = [
'weapp_audit_success' => 0, //成功
'weapp_audit_fail' => 1, //拒绝
'weapp_audit_delay' => 4, //审核延后
];
return [$domain->modify($param), $domain->setWebviewDomain([env('APP_URL')])];
$log = MiniProgramUploadLog::query()
->where('appid', $appid)
->orderBy('id', 'desc')
->first();
$log->is_success = $auditArr[$message['Event']] ?? -1;
$log->save();
}
}
/**

Loading…
Cancel
Save