1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package wxcomponent
  2. import (
  3. "gitee.com/yansen_zh/wxcomponent/api/mp/webpage"
  4. "gitee.com/yansen_zh/wxcomponent/config"
  5. )
  6. // 代公众号服务
  7. type MPService struct {
  8. appID string
  9. }
  10. // GetMpService 获取代公众号服务
  11. func GetMpService(appID string) *MPService {
  12. return &MPService{appID: appID}
  13. }
  14. // JsapiTicket 代公众号使用js sdk
  15. func (t *MPService) JsapiTicket(url string) (*webpage.JsapiSignature, error) {
  16. ticket, err := webpage.GetJSTicket(config.GetAuthorizer().GetAccessToken(t.appID))
  17. if err != nil {
  18. return nil, err
  19. }
  20. signature := webpage.GetJSAPISignature(ticket.Ticket, url)
  21. return signature, nil
  22. }
  23. // GetOpenID 网页授权 code 换取 OpenID
  24. func (t *MPService) GetOpenID(code string) (string, error) {
  25. token, err := webpage.GetOAuthAccessToken(t.appID, code)
  26. if err != nil {
  27. return "", err
  28. }
  29. return token.OpenID, nil
  30. }
  31. // GetSnsUserInfo 网页授权, 获取用户信息
  32. func (t *MPService) GetSnsUserInfo(code string) (*webpage.SnsApiUserInfo, error) {
  33. token, err := webpage.GetOAuthAccessToken(t.appID, code)
  34. if err != nil {
  35. return nil, err
  36. }
  37. return webpage.GetSnsApiUserInfo(token.AccessToken, token.OpenID, "")
  38. }