sms_notify.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package service
  2. import (
  3. "cold-delivery/conf"
  4. "encoding/json"
  5. "errors"
  6. "fmt"
  7. "net/http"
  8. "net/url"
  9. "strings"
  10. "gogs.baozhida.cn/zoie/OAuth-core/pkg/sms"
  11. )
  12. // SendSmsToDeliveryPerson 发送配送通知短信给配送员
  13. func SendSmsToDeliveryPerson(phone, orderNo string) error {
  14. vars := map[string]string{"orderNo": orderNo}
  15. varsBytes, _ := json.Marshal(vars)
  16. payload := url.Values{}
  17. payload.Set("appid", conf.ExtConfig.SubMail.Appid)
  18. payload.Set("signature", conf.ExtConfig.SubMail.Signature)
  19. payload.Set("to", phone)
  20. payload.Set("project", "gOK601")
  21. payload.Set("vars", string(varsBytes))
  22. req, err := http.NewRequest("POST", "https://api-v4.mysubmail.com/sms/xsend", strings.NewReader(payload.Encode()))
  23. if err != nil {
  24. return err
  25. }
  26. req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  27. client := &http.Client{}
  28. resp, err := client.Do(req)
  29. if err != nil {
  30. return err
  31. }
  32. defer resp.Body.Close()
  33. var res sms.XSendRes
  34. if err := json.NewDecoder(resp.Body).Decode(&res); err != nil {
  35. return err
  36. }
  37. if res.Status != sms.SUCCESS {
  38. return errors.New(res.Msg)
  39. }
  40. return nil
  41. }
  42. // BuildSmsSendLog 构建短信发送日志
  43. func BuildSmsSendLog(phone, orderNo string) string {
  44. return fmt.Sprintf("【贵州宝智达冷链科技有限公司】您有新的配送订单请及时处理,订单号:%s", orderNo)
  45. }