海南旅游SAAS
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

  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\AdminSetting;
  5. use EasyWeChat\Factory;
  6. use EasyWeChat\OpenPlatform\Server\Guard;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\DB;
  9. /**
  10. * 小程序授权等相关
  11. * Class MiniProgramController
  12. * @package App\Http\Controllers\Api
  13. */
  14. class MiniProgramController extends Controller
  15. {
  16. // 第三方平台授权事件通知
  17. public function authEvent(Request $request)
  18. {
  19. $setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']);
  20. $config = [ // 第三方平台信息
  21. 'app_id' => $setting['service_appid'],
  22. 'secret' => $setting['service_appsecret'],
  23. 'token' => $setting['service_token'],
  24. 'aes_key' => $setting['service_aeskey'],
  25. ];
  26. $openPlatform = Factory::openPlatform($config);
  27. $server = $openPlatform->server;
  28. // 处理授权成功事件
  29. $server->push(function ($message) {
  30. DB::table('auth_event')->insert([
  31. ['response' => json_encode($message)]
  32. ]);
  33. }, Guard::EVENT_AUTHORIZED);
  34. // 处理授权更新事件
  35. $server->push(function ($message) {
  36. DB::table('auth_event')->insert([
  37. ['response' => json_encode($message)]
  38. ]);
  39. }, Guard::EVENT_UPDATE_AUTHORIZED);
  40. // 处理授权取消事件
  41. $server->push(function ($message) {
  42. DB::table('auth_event')->insert([
  43. ['response' => json_encode($message)]
  44. ]);
  45. }, Guard::EVENT_UNAUTHORIZED);
  46. DB::table('auth_event')->insert([
  47. ['response' => json_encode($request->all())]
  48. ]);
  49. return $server->serve();
  50. }
  51. }