wechat.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package wechat
  2. import (
  3. "github.com/silenceper/wechat/v2/cache"
  4. "github.com/silenceper/wechat/v2/miniprogram"
  5. miniConfig "github.com/silenceper/wechat/v2/miniprogram/config"
  6. "github.com/silenceper/wechat/v2/officialaccount"
  7. offConfig "github.com/silenceper/wechat/v2/officialaccount/config"
  8. "github.com/silenceper/wechat/v2/openplatform"
  9. openConfig "github.com/silenceper/wechat/v2/openplatform/config"
  10. "github.com/silenceper/wechat/v2/pay"
  11. payConfig "github.com/silenceper/wechat/v2/pay/config"
  12. )
  13. // Wechat struct
  14. type Wechat struct {
  15. cache cache.Cache
  16. }
  17. // NewWechat init
  18. func NewWechat() *Wechat {
  19. return &Wechat{}
  20. }
  21. //SetCache 设置cache
  22. func (wc *Wechat) SetCache(cahce cache.Cache) {
  23. wc.cache = cahce
  24. }
  25. //GetOfficialAccount 获取微信公众号实例
  26. func (wc *Wechat) GetOfficialAccount(cfg *offConfig.Config) *officialaccount.OfficialAccount {
  27. if cfg.Cache == nil {
  28. cfg.Cache = wc.cache
  29. }
  30. return officialaccount.NewOfficialAccount(cfg)
  31. }
  32. // GetMiniProgram 获取小程序的实例
  33. func (wc *Wechat) GetMiniProgram(cfg *miniConfig.Config) *miniprogram.MiniProgram {
  34. if cfg.Cache == nil {
  35. cfg.Cache = wc.cache
  36. }
  37. return miniprogram.NewMiniProgram(cfg)
  38. }
  39. // GetPay 获取微信支付的实例
  40. func (wc *Wechat) GetPay(cfg *payConfig.Config) *pay.Pay {
  41. return pay.NewPay(cfg)
  42. }
  43. // GetOpenPlatform 获取微信开放平台的实例
  44. func (wc *Wechat) GetOpenPlatform(cfg *openConfig.Config) *openplatform.OpenPlatform {
  45. return openplatform.NewOpenPlatform(cfg)
  46. }