officialaccount.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. 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.SetAccessTokenHandle(NewDefaultAuthrAccessToken(opCtx, appID))
  26. return &OfficialAccount{appID: appID, OfficialAccount: officialAccount}
  27. }
  28. //DefaultAuthrAccessToken 默认获取授权ak的方法
  29. type DefaultAuthrAccessToken struct {
  30. opCtx *opContext.Context
  31. appID string
  32. }
  33. //NewDefaultAuthrAccessToken New
  34. func NewDefaultAuthrAccessToken(opCtx *opContext.Context, appID string) credential.AccessTokenHandle {
  35. return &DefaultAuthrAccessToken{
  36. opCtx: opCtx,
  37. appID: appID,
  38. }
  39. }
  40. //GetAccessToken 获取ak
  41. func (ak *DefaultAuthrAccessToken) GetAccessToken() (string, error) {
  42. return ak.opCtx.GetAuthrAccessToken(ak.appID)
  43. }