OfficialService.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Master\Framework\Library\Easywechat;
  3. use App\Master\Enum\RedisKeyEnum;
  4. use App\Master\Framework\Extend\Module;
  5. use App\Utils\RedisUtil;
  6. use EasyWeChat\OfficialAccount\Application;
  7. use Illuminate\Support\Facades\Cache;
  8. /**
  9. * 微信小程序开发组
  10. * class MiniAppService
  11. */
  12. class OfficialService extends EasyModule
  13. {
  14. /**
  15. * @var Application
  16. */
  17. private Application $app;
  18. private array $config;
  19. /**
  20. * 实例化
  21. * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
  22. */
  23. public function __construct()
  24. {
  25. parent::__construct();
  26. // 微信开发配置
  27. $_table = "EasywechatConfig";
  28. $config = Cache::remember("OFFICIAL_SERVICE_{$_table}", $this->ttl, function () use ($_table) {
  29. $module = Module::_SetupModule($_table);
  30. return $module['official'] ?? [];
  31. });
  32. $config = [
  33. 'app_id' => $config['app_id'] ?? '',
  34. 'secret' => $config['app_secret'] ?? '',
  35. 'token' => $config['token'] ?? '',
  36. 'aes_key' => $config['aes_key'] ?? '',
  37. /**
  38. * 接口请求相关配置,超时时间等,具体可用参数请参考:
  39. * https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php
  40. */
  41. 'http' => [
  42. 'throw' => true, // 状态码非 200、300 时是否抛出异常,默认为开启
  43. 'timeout' => 5.0,
  44. 'retry' => true, // 使用默认重试配置
  45. ],
  46. ];
  47. $this->config = $config;
  48. $this->app = new Application($config);
  49. }
  50. }