短信rpc
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.

63 lines
1.1 KiB

2 years ago
  1. package smsrpc
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "log"
  6. )
  7. /**
  8. * 发送联通融合通信短信
  9. * @cpcode 商户编号
  10. * @key accessKey
  11. * @excode 扩展码
  12. * @mobiles 手机号多个用逗号隔开
  13. * @templetId 模板id
  14. * @msg 模板中变量的值如果包含多个参数以半角英文逗号分隔
  15. */
  16. func SendWoSms(cpcode, key string, excode, mobiles string, templetId, msg string, url ...string) (map[string]interface{}, error) {
  17. if cpcode == "" || key == "" {
  18. return nil, errors.New("参数错误")
  19. }
  20. conn, err := rpc_server_conn(url...)
  21. if err != nil {
  22. return nil, err
  23. }
  24. defer conn.Close()
  25. arg := WoParam{cpcode, msg, mobiles, excode, templetId, key}
  26. req, err := SetReqData(arg)
  27. if err != nil {
  28. return nil, err
  29. }
  30. res := &Response{}
  31. err = conn.SendWoMsg(req, res)
  32. if err != nil {
  33. return nil, err
  34. }
  35. res_data_de, err := GetResData(res)
  36. log.Println(res_data_de, err)
  37. if err != nil {
  38. return nil, err
  39. }
  40. if res_data_de == "" {
  41. return nil, nil
  42. }
  43. var res_arr map[string]interface{}
  44. err = json.Unmarshal([]byte(res_data_de), &res_arr)
  45. if err != nil {
  46. return nil, err
  47. }
  48. return res_arr, nil
  49. }