From 3507d2ed74fa26e48b36f1977d0b406769e55b13 Mon Sep 17 00:00:00 2001 From: hoteas Date: Fri, 27 Oct 2017 09:14:15 +0000 Subject: [PATCH] --- dri/ddsms/ddsms.go | 179 +++++++++++++++++++++++---------------------- objtoobj.go | 14 +++- 2 files changed, 102 insertions(+), 91 deletions(-) diff --git a/dri/ddsms/ddsms.go b/dri/ddsms/ddsms.go index 2a154d1..c7d3f3f 100644 --- a/dri/ddsms/ddsms.go +++ b/dri/ddsms/ddsms.go @@ -1,89 +1,90 @@ -package ddsms - -import ( - "encoding/json" - "errors" - "io/ioutil" - "net/http" - "net/url" - "strings" -) - -type DDY struct { - ApiKey string - YzmUrl string - TzUrl string -} - -func (this *DDY) Init(apikey string, uzmurl string, tzurl string) { - this.ApiKey = apikey - this.YzmUrl = uzmurl - this.TzUrl = tzurl -} - -//发送短信验证码 code验证码如:123456 返回true表示发送成功flase表示发送失败 -func (this *DDY) SendYZM(umoblie string, tpt string, data map[string]string) (bool, error) { - for k, v := range data { - tpt = strings.Replace(tpt, "{"+k+"}", v, -1) - } - return this.send(this.YzmUrl, umoblie, tpt) -} - -//发送通知 -func (this *DDY) SendTz(umoblie []string, tpt string, data map[string]string) (bool, error) { - for k, v := range data { - tpt = strings.Replace(tpt, "["+k+"]", v, -1) - } - umobleStr := "" - for i, v := range umoblie { - if i == 0 { - umobleStr = v - continue - } - umobleStr += "," + v - } - return this.send(this.TzUrl, umobleStr, tpt) -} - -//发送短信 -func (this *DDY) send(mUrl string, umoblie string, content string) (bool, error) { - - data_send_sms_yzm := url.Values{"apikey": {this.ApiKey}, "mobile": {umoblie}, "content": {content}} - res, err := this.httpsPostForm(mUrl, data_send_sms_yzm) - if err != nil && res == "" { - return false, errors.New("连接错误") - } - - var msg interface{} - err1 := json.Unmarshal([]byte(res), &msg) - if err1 != nil { - return false, errors.New("json解析错误") - } - - resmsg := msg.(map[string]interface{}) - rcode := int(resmsg["code"].(float64)) - result := resmsg["msg"].(string) - if rcode != 1 { - return false, errors.New(result) - } - - return true, nil -} - -//调用url发送短信的连接 -func (this *DDY) httpsPostForm(url string, data url.Values) (string, error) { - resp, err := http.PostForm(url, data) - - if err != nil { - return "", err - } - - defer resp.Body.Close() - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return "", err - } - - return string(body), nil - -} +package ddsms + +import ( + "encoding/json" + "errors" + "io/ioutil" + "net/http" + "net/url" + "strings" +) + +type DDY struct { + ApiKey string + YzmUrl string + TzUrl string +} + +func (this *DDY) Init(apikey string) { + this.ApiKey = apikey + this.YzmUrl = "https://api.dingdongcloud.com/v1/sms/captcha/send" + this.TzUrl = "https://api.dingdongcloud.com/v1/sms/notice/multi_send" +} + +//发送短信验证码 code验证码如:123456 返回true表示发送成功flase表示发送失败 +func (this *DDY) SendYZM(umoblie string, tpt string, data map[string]string) (bool, error) { + for k, v := range data { + tpt = strings.Replace(tpt, "{"+k+"}", v, -1) + } + + return this.send(this.YzmUrl, umoblie, tpt) +} + +//发送通知 +func (this *DDY) SendTz(umoblie []string, tpt string, data map[string]string) (bool, error) { + for k, v := range data { + tpt = strings.Replace(tpt, "["+k+"]", v, -1) + } + umobleStr := "" + for i, v := range umoblie { + if i == 0 { + umobleStr = v + continue + } + umobleStr += "," + v + } + return this.send(this.TzUrl, umobleStr, tpt) +} + +//发送短信 +func (this *DDY) send(mUrl string, umoblie string, content string) (bool, error) { + + data_send_sms_yzm := url.Values{"apikey": {this.ApiKey}, "mobile": {umoblie}, "content": {content}} + res, err := this.httpsPostForm(mUrl, data_send_sms_yzm) + if err != nil && res == "" { + return false, errors.New("连接错误") + } + + var msg interface{} + err1 := json.Unmarshal([]byte(res), &msg) + if err1 != nil { + return false, errors.New("json解析错误") + } + + resmsg := msg.(map[string]interface{}) + rcode := int(resmsg["code"].(float64)) + result := resmsg["msg"].(string) + if rcode != 1 { + return false, errors.New(result) + } + + return true, nil +} + +//调用url发送短信的连接 +func (this *DDY) httpsPostForm(url string, data url.Values) (string, error) { + resp, err := http.PostForm(url, data) + + if err != nil { + return "", err + } + + defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return "", err + } + + return string(body), nil + +} diff --git a/objtoobj.go b/objtoobj.go index 6d1ece6..ed9c598 100644 --- a/objtoobj.go +++ b/objtoobj.go @@ -22,8 +22,18 @@ func ObjToMap(obj interface{}, e ...*Error) Map { case map[string]interface{}: v = obj.(map[string]interface{}) default: - v = nil - err = errors.New("没有合适的转换对象!") + data, err := json.Marshal(obj) + if err != nil { + err = errors.New("没有合适的转换对象!" + err.Error()) + v = nil + } + v = Map{} + e := json.Unmarshal(data, &v) + if e != nil { + err = errors.New("没有合适的转换对象!" + e.Error()) + v = nil + } + } } if len(e) != 0 {