配置

常用的配置参数会比较少,因为除非你有特别的定制,否则基本上默认值就可以了:

  1. use EasyWeChat\Factory;
  2. $config = [
  3. 'app_id' => 'wx3cf0f39249eb0exx',
  4. 'secret' => 'f1c242f4f28f735d4687abb469072axx',
  5. // 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名
  6. 'response_type' => 'array',
  7. //...
  8. ];
  9. $app = Factory::officialAccount($config);

下面是一个完整的配置样例:

不建议你在配置的时候弄这么多,用到啥就配置啥才是最好的,因为大部分用默认值即可。

  1. <?php
  2. return [
  3. /**
  4. * 账号基本信息,请从微信公众平台/开放平台获取
  5. */
  6. 'app_id' => 'your-app-id', // AppID
  7. 'secret' => 'your-app-secret', // AppSecret
  8. 'token' => 'your-token', // Token
  9. 'aes_key' => '', // EncodingAESKey,兼容与安全模式下请一定要填写!!!
  10. /**
  11. * 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名
  12. * 使用自定义类名时,构造函数将会接收一个 `EasyWeChat\Kernel\Http\Response` 实例
  13. */
  14. 'response_type' => 'array',
  15. /**
  16. * 日志配置
  17. *
  18. * level: 日志级别, 可选为:
  19. * debug/info/notice/warning/error/critical/alert/emergency
  20. * path:日志文件位置(绝对路径!!!),要求可写权限
  21. */
  22. 'log' => [
  23. 'default' => 'dev', // 默认使用的 channel,生产环境可以改为下面的 prod
  24. 'channels' => [
  25. // 测试环境
  26. 'dev' => [
  27. 'driver' => 'single',
  28. 'path' => '/tmp/easywechat.log',
  29. 'level' => 'debug',
  30. ],
  31. // 生产环境
  32. 'prod' => [
  33. 'driver' => 'daily',
  34. 'path' => '/tmp/easywechat.log',
  35. 'level' => 'info',
  36. ],
  37. ],
  38. ],
  39. /**
  40. * 接口请求相关配置,超时时间等,具体可用参数请参考:
  41. * http://docs.guzzlephp.org/en/stable/request-config.html
  42. *
  43. * - retries: 重试次数,默认 1,指定当 http 请求失败时重试的次数。
  44. * - retry_delay: 重试延迟间隔(单位:ms),默认 500
  45. * - log_template: 指定 HTTP 日志模板,请参考:https://github.com/guzzle/guzzle/blob/master/src/MessageFormatter.php
  46. */
  47. 'http' => [
  48. 'max_retries' => 1,
  49. 'retry_delay' => 500,
  50. 'timeout' => 5.0,
  51. // 'base_uri' => 'https://api.weixin.qq.com/', // 如果你在国外想要覆盖默认的 url 的时候才使用,根据不同的模块配置不同的 uri
  52. ],
  53. /**
  54. * OAuth 配置
  55. *
  56. * scopes:公众平台(snsapi_userinfo / snsapi_base),开放平台:snsapi_login
  57. * callback:OAuth授权完成后的回调页地址
  58. */
  59. 'oauth' => [
  60. 'scopes' => ['snsapi_userinfo'],
  61. 'callback' => '/examples/oauth_callback.php',
  62. ],
  63. ];

:heart: 安全模式下请一定要填写 aes_key

日志配置

日志有两种配置方式:

文件式

  1. 'log' => [
  2. 'level' => 'debug',
  3. 'permission' => 0777,
  4. 'file' => '/tmp/easywechat.log',
  5. ],

配置文件里的 /tmp/... 是绝对路径

如果在 windows 平台,需要把它改成 C:\foo\bar 的形式,

如果需要按日独立存储,可以配置成 'file' => storage_path('/tmp/easywechat/easywechat_'.date('Ymd').'.log'),

自定义 Handler

由于日志使用的是 Monolog,所以,除了默认的文件式日志外,你可以自定义日志处理器:

  1. use Monolog\Handler\RotatingFileHandler;
  2. $handler = new RotatingFileHandler('/path/to/wechat.log', 5, 'debug');
  3. ...
  4. 'log' => [
  5. 'level' => 'debug',
  6. 'handler' => $handler,
  7. ],