push_ticket.go 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package service
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "gitee.com/yansen_zh/wechat-oplatform-sdk/api"
  6. "gitee.com/yansen_zh/wechat-oplatform-sdk/entities"
  7. "gitee.com/yansen_zh/wechat-oplatform-sdk/utils/request"
  8. )
  9. // PushTicketParam 启动票据推送服务参数
  10. type PushTicketParam struct {
  11. ComponentAppId string `json:"component_appid"`
  12. ComponentSecret string `json:"component_secret"`
  13. }
  14. // PushTicketResult 启动票据推送服务参数
  15. type PushTicketResult struct {
  16. entities.Error
  17. }
  18. // StartPushTicket 启动 ticket 推送服务
  19. func StartPushTicket(param PushTicketParam) (*PushTicketResult, error) {
  20. if param.ComponentAppId == "" {
  21. return nil, errors.New("启动 ticket 推送服务 第三方平台的 appid 不能为空")
  22. }
  23. if param.ComponentSecret == "" {
  24. return nil, errors.New("启动 ticket 推送服务 第三方平台的 appsecret 不能为空")
  25. }
  26. data, e1 := json.Marshal(param)
  27. if e1 != nil {
  28. return nil, e1
  29. }
  30. resp, e2 := request.PostJSON(api.StartPushTicket, data)
  31. if e2 != nil {
  32. return nil, e2
  33. }
  34. result := PushTicketResult{}
  35. if err := json.Unmarshal(resp, &result); err != nil {
  36. return nil, err
  37. }
  38. if result.Code != 0 {
  39. return &result, result.Error
  40. }
  41. return &result, nil
  42. }