wechat.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package wechat
  2. import (
  3. "net/http"
  4. "github.com/silenceper/wechat/context"
  5. "github.com/silenceper/wechat/log"
  6. "github.com/silenceper/wechat/server"
  7. )
  8. //Wechat struct
  9. type Wechat struct {
  10. Context *context.Context
  11. }
  12. //Config for user
  13. type Config struct {
  14. AppID string
  15. AppSecret string
  16. Token string
  17. EncodingAESKey string
  18. }
  19. //NewWechat init
  20. func NewWechat(cfg *Config) *Wechat {
  21. channelLen := int64(10000)
  22. adapterName := "console"
  23. config := ""
  24. logLevel := log.LevelDebug
  25. log.InitLogger(channelLen, adapterName, config, logLevel)
  26. context := new(context.Context)
  27. copyConfigToContext(cfg, context)
  28. return &Wechat{context}
  29. }
  30. func copyConfigToContext(cfg *Config, context *context.Context) {
  31. context.AppID = cfg.AppID
  32. context.AppSecret = cfg.AppSecret
  33. context.Token = cfg.Token
  34. context.EncodingAESKey = cfg.EncodingAESKey
  35. }
  36. //GetServer init
  37. func (wc *Wechat) GetServer(req *http.Request, writer http.ResponseWriter) *server.Server {
  38. wc.Context.Request = req
  39. wc.Context.Writer = writer
  40. return server.NewServer(wc.Context)
  41. }