wechat.go 876 B

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