callback.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package jpush
  2. const (
  3. // CallbackTypeReceive 送达才回执
  4. CallbackTypeReceive = callbackType(1)
  5. // CallbackTypeClick 点击才回执
  6. CallbackTypeClick = callbackType(2)
  7. // CallbackTypeAll 送达和点击都回执
  8. CallbackTypeAll = callbackType(3)
  9. // StatusSwitchOn 回执时候通知栏开关状态:开
  10. StatusSwitchOn = int(1)
  11. // StatusSwitchOff 回执时候通知栏开关状态:关
  12. StatusSwitchOff = int(2)
  13. defaultCallbackURL = "https://api.bilibili.com/x/push/callback/jpush"
  14. )
  15. type callbackType int
  16. // CallbackReq 消息回执请求体
  17. type CallbackReq struct {
  18. // URL 接受回执数据的URL
  19. URL string `json:"url"`
  20. // Type 需要的回执类型
  21. Type callbackType `json:"type"`
  22. // Params 携带的自定义参数
  23. Params map[string]string `json:"params"`
  24. }
  25. // NewCallbackReq new Callback
  26. func NewCallbackReq() *CallbackReq {
  27. return &CallbackReq{
  28. URL: defaultCallbackURL,
  29. Type: CallbackTypeReceive,
  30. Params: make(map[string]string),
  31. }
  32. }
  33. // SetURL 设置接收回执的URL
  34. func (cb *CallbackReq) SetURL(url string) {
  35. if url == "" {
  36. return
  37. }
  38. cb.URL = url
  39. }
  40. // SetType 设置需要回执的类型
  41. func (cb *CallbackReq) SetType(typ callbackType) {
  42. cb.Type = typ
  43. }
  44. // SetParam 设置自定义参数
  45. func (cb *CallbackReq) SetParam(m map[string]string) {
  46. if m == nil {
  47. return
  48. }
  49. cb.Params = m
  50. }
  51. // CallbackReply 消息回执接收体
  52. type CallbackReply struct {
  53. // Token device token
  54. Token string `json:"registration_id"`
  55. // Platform android or ios
  56. Platform string `json:"platform"`
  57. // Time 消息送达或点击的秒级时间戳
  58. Time int64 `json:"sent_time"`
  59. // Switch 通知栏消息开关
  60. Switch bool `json:"notification_state"`
  61. // Type 送达或点击
  62. Type callbackType `json:"callback_type"`
  63. // Channel 下发通道
  64. Channel int `json:"channel"`
  65. // Params 自定义参数
  66. Params map[string]string `json:"params"`
  67. }