query.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package urllink
  2. import (
  3. "fmt"
  4. "github.com/silenceper/wechat/v2/util"
  5. )
  6. const queryURL = "https://api.weixin.qq.com/wxa/query_urllink"
  7. // ULQueryResult 返回的结果
  8. // https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.query.html 返回值
  9. type ULQueryResult struct {
  10. util.CommonError
  11. URLLinkInfo struct {
  12. Appid string `json:"appid"`
  13. Path string `json:"path"`
  14. Query string `json:"query"`
  15. CreateTime int64 `json:"create_time"`
  16. ExpireTime int64 `json:"expire_time"`
  17. EnvVersion string `json:"env_version"`
  18. CloudBase struct {
  19. Env string `json:"env"`
  20. Domain string `json:"domain"`
  21. Path string `json:"path"`
  22. Query string `json:"query"`
  23. ResourceAppid string `json:"resource_appid"`
  24. } `json:"cloud_base"`
  25. } `json:"url_link_info"`
  26. VisitOpenid string `json:"visit_openid"`
  27. }
  28. // Query 查询小程序 url_link 配置。
  29. func (u *URLLink) Query(urlLink string) (*ULQueryResult, error) {
  30. accessToken, err := u.GetAccessToken()
  31. if err != nil {
  32. return nil, err
  33. }
  34. uri := fmt.Sprintf("%s?access_token=%s", queryURL, accessToken)
  35. response, err := util.PostJSON(uri, map[string]string{"url_link": urlLink})
  36. if err != nil {
  37. return nil, err
  38. }
  39. var resp ULQueryResult
  40. err = util.DecodeWithError(response, &resp, "URLLink.Query")
  41. if err != nil {
  42. return nil, err
  43. }
  44. return &resp, nil
  45. }