sms.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package telecom
  2. import (
  3. "context"
  4. "fmt"
  5. "net/url"
  6. "strconv"
  7. "go-common/library/log"
  8. )
  9. const (
  10. _smsSendURL = "/x/internal/sms/send"
  11. )
  12. // SendSMS
  13. func (d *Dao) SendSMS(c context.Context, phone int, smsTemplate, dataJSON string) (err error) {
  14. params := url.Values{}
  15. params.Set("mobile", strconv.Itoa(phone))
  16. params.Set("country", "086")
  17. params.Set("tcode", smsTemplate)
  18. params.Set("tparam", dataJSON)
  19. var res struct {
  20. Code int `json:"code"`
  21. }
  22. if err = d.client.Post(c, d.smsSendURL, "", params, &res); err != nil {
  23. log.Error("SendSMS hots url(%s) error(%v)", d.smsSendURL+"?"+params.Encode(), err)
  24. return
  25. }
  26. if res.Code != 0 {
  27. log.Error("SendSMS hots url(%s) error(%v)", d.smsSendURL+"?"+params.Encode(), res.Code)
  28. err = fmt.Errorf("SendSMS api response code(%v)", res)
  29. return
  30. }
  31. return
  32. }
  33. // SendTelecomSMS
  34. func (d *Dao) SendTelecomSMS(c context.Context, phone int, smsTemplate string) (err error) {
  35. params := url.Values{}
  36. params.Set("mobile", strconv.Itoa(phone))
  37. params.Set("country", "086")
  38. params.Set("tcode", smsTemplate)
  39. var res struct {
  40. Code int `json:"code"`
  41. }
  42. if err = d.client.Post(c, d.smsSendURL, "", params, &res); err != nil {
  43. log.Error("SendSMS hots url(%s) model(%v) error(%v)", d.smsSendURL+"?"+params.Encode(), smsTemplate, err)
  44. return
  45. }
  46. if res.Code != 0 {
  47. log.Error("SendSMS hots url(%s) error(%v)", d.smsSendURL+"?"+params.Encode(), res.Code)
  48. err = fmt.Errorf("SendSMS api response code(%v)", res)
  49. return
  50. }
  51. return
  52. }