init.go 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * Copyright (c) 2022 Yansen Zhang
  3. * wxcomponent is licensed under Mulan PSL v2.
  4. * You can use this software according to the terms and conditions of the Mulan PSL v2.
  5. * You may obtain a copy of Mulan PSL v2 at:
  6. * http://license.coscl.org.cn/MulanPSL2
  7. * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
  8. * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
  9. * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
  10. * See the Mulan PSL v2 for more details.
  11. **/
  12. package wxcomponent
  13. import (
  14. "encoding/base64"
  15. "errors"
  16. "gitee.com/yansen_zh/wxcomponent/api/authorization"
  17. "gitee.com/yansen_zh/wxcomponent/config"
  18. "gitee.com/yansen_zh/wxcomponent/utils/log"
  19. )
  20. var aesKey []byte
  21. // InitLogger 初始化 Logger
  22. func InitLogger(logger log.Logger) {
  23. log.SetLogger(logger)
  24. }
  25. // InitConfig 初始化配置
  26. func InitConfig(conf config.Config, authConfig config.AuthorizerConfig) error {
  27. err := config.Init(conf, authConfig)
  28. if err != nil {
  29. var e error
  30. aesKey, e = base64.StdEncoding.DecodeString(conf.GetAppSecret() + "=")
  31. if e != nil {
  32. return e
  33. }
  34. }
  35. return err
  36. }
  37. // Start 启动服务
  38. func Start() error {
  39. if config.GetConfiger() == nil {
  40. return errors.New("请先进行配置初始化")
  41. }
  42. if log.GetLogger() == nil {
  43. return errors.New("请先进行日志初始化")
  44. }
  45. if !config.GetPushTicketState() {
  46. // 启动ticket推送服务, 之后微信服务器会每隔 10 分钟推送 component_verify_ticket
  47. err := authorization.StartPushTicket()
  48. if err != nil {
  49. config.RefreshPushTicketState(true)
  50. }
  51. return err
  52. }
  53. return nil
  54. }