微信相关接口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
2.0 KiB

  1. package wechat
  2. import (
  3. "fmt"
  4. )
  5. type AppOpenIdData struct {
  6. AccessToken string `json:"access_token"`
  7. ExpiresIn int `json:"expires_in"`
  8. RefreshToken string `json:"refresh_token"`
  9. Openid string `json:"openid"`
  10. Scope string `json:"scope"`
  11. Unionid interface{} `json:"unionid"`
  12. Errcode int `json:"errcode"`
  13. Errmsg string `json:"errmsg"`
  14. }
  15. type MiniAppOpenidData struct {
  16. Openid string `json:"openid"`
  17. SessionKey interface{} `json:"session_key"`
  18. Unionid interface{} `json:"unionid"`
  19. Errcode int `json:"errcode"`
  20. Errmsg string `json:"errmsg"`
  21. }
  22. type MpOpenIdData struct {
  23. AccessToken string `json:"access_token"`
  24. ExpiresIn int `json:"expires_in"`
  25. RefreshToken string `json:"refresh_token"`
  26. Openid string `json:"openid"`
  27. Scope string `json:"scope"`
  28. Errcode int `json:"errcode"`
  29. Errmsg string `json:"errmsg"`
  30. }
  31. /**
  32. * 从微信api取openid
  33. */
  34. func GetAppOpenid(appid, secret, code string) (AppOpenIdData, error) {
  35. var data AppOpenIdData
  36. url := fmt.Sprintf(GET_APP_OPENID, appid, secret, code)
  37. data_byte, err := SendHttp("GET", url, nil)
  38. if err != nil {
  39. return data, err
  40. }
  41. err = json.Unmarshal(data_byte, &data)
  42. return data, err
  43. }
  44. /**
  45. * 从微信api取小程序openid
  46. */
  47. func GetMiniAppOpenid(appid, secret, code string) (MiniAppOpenidData, error) {
  48. url := fmt.Sprintf(GET_MINIAPP_OPENID_API, appid, secret, code)
  49. data_byte, err := SendHttp("GET", url, nil)
  50. var data MiniAppOpenidData
  51. if err != nil {
  52. return data, err
  53. }
  54. err = json.Unmarshal(data_byte, &data)
  55. return data, err
  56. }
  57. /**
  58. * 从微信api取公众号openid
  59. */
  60. func GetMpOpenid(appid, secret, code string) (MpOpenIdData, error) {
  61. url := fmt.Sprintf(GET_MP_OPENID_API, appid, secret, code)
  62. data_byte, err := SendHttp("GET", url, nil)
  63. var data MpOpenIdData
  64. if err != nil {
  65. return data, err
  66. }
  67. err = json.Unmarshal(data_byte, &data)
  68. return data, err
  69. }