officialaccount.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package officialaccount
  2. import (
  3. "github.com/silenceper/wechat/v2/credential"
  4. "github.com/silenceper/wechat/v2/officialaccount"
  5. offConfig "github.com/silenceper/wechat/v2/officialaccount/config"
  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. }
  14. //NewOfficialAccount 实例化
  15. //appID :为授权方公众号 APPID,非开放平台第三方平台 APPID
  16. func NewOfficialAccount(opCtx *opContext.Context, appID string) *OfficialAccount {
  17. officialAccount := officialaccount.NewOfficialAccount(&offConfig.Config{
  18. AppID: opCtx.AppID,
  19. EncodingAESKey: opCtx.EncodingAESKey,
  20. Token: opCtx.Token,
  21. Cache: opCtx.Cache,
  22. })
  23. //设置获取access_token的函数
  24. officialAccount.SetAccessTokenHandle(NewDefaultAuthrAccessToken(opCtx, appID))
  25. return &OfficialAccount{appID: appID, OfficialAccount: officialAccount}
  26. }
  27. //DefaultAuthrAccessToken 默认获取授权ak的方法
  28. type DefaultAuthrAccessToken struct {
  29. opCtx *opContext.Context
  30. appID string
  31. }
  32. //NewDefaultAuthrAccessToken New
  33. func NewDefaultAuthrAccessToken(opCtx *opContext.Context, appID string) credential.AccessTokenHandle {
  34. return &DefaultAuthrAccessToken{
  35. opCtx: opCtx,
  36. appID: appID,
  37. }
  38. }
  39. //GetAccessToken 获取ak
  40. func (ak *DefaultAuthrAccessToken) GetAccessToken() (string, error) {
  41. return ak.opCtx.GetAuthrAccessToken(ak.appID)
  42. }