officialaccount.go 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. package officialaccount
  2. import (
  3. "github.com/silenceper/wechat/v2/officialaccount"
  4. offConfig "github.com/silenceper/wechat/v2/officialaccount/config"
  5. offContext "github.com/silenceper/wechat/v2/officialaccount/context"
  6. opContext "github.com/silenceper/wechat/v2/openplatform/context"
  7. )
  8. //OfficialAccount 代公众号实现业务
  9. type OfficialAccount struct {
  10. //授权的公众号的appID
  11. appID string
  12. *officialaccount.OfficialAccount
  13. opContext *opContext.Context
  14. }
  15. //NewOfficialAccount 实例化
  16. //appID :为授权方公众号 APPID,非开放平台第三方平台 APPID
  17. func NewOfficialAccount(opCtx *opContext.Context, appID string) *OfficialAccount {
  18. officialAccount := officialaccount.NewOfficialAccount(&offConfig.Config{
  19. AppID: opCtx.AppID,
  20. EncodingAESKey: opCtx.EncodingAESKey,
  21. Token: opCtx.Token,
  22. Cache: opCtx.Cache,
  23. })
  24. //设置获取access_token的函数
  25. officialAccount.GetContext().SetGetAccessTokenFunc(func(offCtx *offContext.Context) (accessToken string, err error) {
  26. // 获取授权方的access_token
  27. return opCtx.GetAuthrAccessToken(appID)
  28. })
  29. return &OfficialAccount{appID: appID, OfficialAccount: officialAccount}
  30. }