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

81 lines
2.5 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\AdminSetting;
  5. use App\Models\Agent;
  6. use EasyWeChat\Factory;
  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. DB::table('mini_program_events')->insert(['response' => json_encode($request->all()), 'created_at' => now()]);
  20. $setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']);
  21. $config = [ // 第三方平台信息
  22. 'app_id' => $setting['service_appid'],
  23. 'secret' => $setting['service_appsecret'],
  24. 'token' => $setting['service_token'],
  25. 'aes_key' => $setting['service_aeskey'],
  26. ];
  27. $openPlatform = Factory::openPlatform($config);
  28. $server = $openPlatform->server;
  29. // 处理授权成功事件:Guard::EVENT_AUTHORIZED
  30. // 处理授权更新事件:Guard::EVENT_UPDATE_AUTHORIZED
  31. // 处理授权取消事件:Guard::EVENT_UNAUTHORIZED
  32. $server->push(function ($message) {
  33. DB::table('mini_program_events')->insert([
  34. 'response' => json_encode($message),
  35. 'event' => $message['InfoType'] ?? '',
  36. 'created_at' => now()
  37. ]);
  38. if (isset($message['InfoType'], $message['status'], $message['msg'], $message['info']) && $message['status'] == 0 && $message['msg'] == 'OK') {
  39. //注册成功授权通知
  40. if ($message['InfoType'] == 'notify_third_fasteregister') {
  41. Agent::where(['company_name' => $message['info']['name'], 'credit_codes' => $message['info']['code']])
  42. ->update(['appid' => $message['appid']]);
  43. }
  44. }
  45. });
  46. return $server->serve();
  47. }
  48. public function msgEvent(Request $request)
  49. {
  50. $appid = $request->route('appid');
  51. DB::table('mini_program_events')->insert(['appid' => $appid, 'response' => json_encode($request->all()), 'created_at' => now()]);
  52. $setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']);
  53. $config = [
  54. 'app_id' => $setting['service_appid'],
  55. 'secret' => $setting['service_appsecret'],
  56. 'token' => $setting['service_token'],
  57. 'aes_key' => $setting['service_aeskey'],
  58. ];
  59. $openPlatform = Factory::openPlatform($config);
  60. $server = $openPlatform->server;
  61. //接收事件
  62. $server->push(function ($message) {
  63. if (isset($message['Event'])) {
  64. }
  65. });
  66. return $server->serve();
  67. }
  68. }