You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							1.6 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\Http\Controllers\Api;
							 | 
						|
								use App\Http\Controllers\Controller;
							 | 
						|
								use App\Models\AdminSetting;
							 | 
						|
								use EasyWeChat\Factory;
							 | 
						|
								use EasyWeChat\OpenPlatform\Server\Guard;
							 | 
						|
								use Illuminate\Http\Request;
							 | 
						|
								use Illuminate\Support\Facades\DB;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * 小程序授权等相关
							 | 
						|
								 * Class MiniProgramController
							 | 
						|
								 * @package App\Http\Controllers\Api
							 | 
						|
								 */
							 | 
						|
								class MiniProgramController extends Controller
							 | 
						|
								{
							 | 
						|
									// 第三方平台授权事件通知
							 | 
						|
									public function authEvent(Request $request)
							 | 
						|
									{
							 | 
						|
										$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'],
							 | 
						|
										];
							 | 
						|
								
							 | 
						|
										$openPlatform = Factory::openPlatform($config);
							 | 
						|
										$server = $openPlatform->server;
							 | 
						|
								
							 | 
						|
										// 处理授权成功事件
							 | 
						|
										$server->push(function ($message) {
							 | 
						|
											DB::table('auth_event')->insert([
							 | 
						|
												['response' => json_encode($message)]
							 | 
						|
											]);
							 | 
						|
										}, Guard::EVENT_AUTHORIZED);
							 | 
						|
								
							 | 
						|
										// 处理授权更新事件
							 | 
						|
										$server->push(function ($message) {
							 | 
						|
											DB::table('auth_event')->insert([
							 | 
						|
												['response' => json_encode($message)]
							 | 
						|
											]);
							 | 
						|
										}, Guard::EVENT_UPDATE_AUTHORIZED);
							 | 
						|
								
							 | 
						|
										// 处理授权取消事件
							 | 
						|
										$server->push(function ($message) {
							 | 
						|
											DB::table('auth_event')->insert([
							 | 
						|
												['response' => json_encode($message)]
							 | 
						|
											]);
							 | 
						|
										}, Guard::EVENT_UNAUTHORIZED);
							 | 
						|
								
							 | 
						|
										DB::table('auth_event')->insert([
							 | 
						|
											['response' => json_encode($request->all())]
							 | 
						|
										]);
							 | 
						|
								
							 | 
						|
										return $server->serve();
							 | 
						|
									}
							 | 
						|
								}
							 |