正在显示
3 个修改的文件
包含
99 行增加
和
43 行删除
| 1 | package sms | 1 | package sms |
| 2 | 2 | ||
| 3 | -import ( | ||
| 4 | - "ability/protocol" | ||
| 5 | - | ||
| 6 | - "github.com/astaxie/beego" | ||
| 7 | - "github.com/astaxie/beego/httplib" | ||
| 8 | - "gitlab.fjmaimaimai.com/mmm-go/gocomm/common" | ||
| 9 | - "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" | ||
| 10 | -) | ||
| 11 | - | ||
| 12 | -type ISmsService interface { | ||
| 13 | - Send(request *protocol.SmsCodeRequest) (err error) | 3 | +type ISmsServe interface { |
| 4 | + Send() error //调用远端接口发送短信 | ||
| 5 | + TextContent() (string, error) //构建短信文本内容 | ||
| 6 | + ValidReturn() (string, error) //返回调用远端接口后的返回内容,可用于记日志 | ||
| 14 | } | 7 | } |
| 15 | 8 | ||
| 16 | -type YunPianSmsService struct{} | ||
| 17 | - | ||
| 18 | -func assertImplement() { | ||
| 19 | - var _ ISmsService = (*YunPianSmsService)(nil) | 9 | +type SmsServe struct { |
| 10 | + ToPhones []string | ||
| 11 | + Content string | ||
| 12 | + ServeReturn interface{} | ||
| 20 | } | 13 | } |
| 21 | 14 | ||
| 22 | -//发送 | ||
| 23 | - | ||
| 24 | -func (s *YunPianSmsService) Send(request *protocol.SmsCodeRequest) (err error) { | ||
| 25 | - var ( | ||
| 26 | - resp *YunPianResponse | ||
| 27 | - ) | ||
| 28 | - log.Debug("[sms] mobile:", request.Phone, " content:", request.Content) | ||
| 29 | - if beego.BConfig.RunMode != "prod" { | ||
| 30 | - return | ||
| 31 | - } | ||
| 32 | - post := httplib.Post(beego.AppConfig.String("yunpian_sms_sdk_url")) | ||
| 33 | - post.Param("apikey", beego.AppConfig.String("yunpian_app_key")) | ||
| 34 | - post.Param("mobile", request.Phone) | ||
| 35 | - post.Param("text", request.Content) | ||
| 36 | - if err = post.ToJSON(&resp); err != nil { | ||
| 37 | - return | ||
| 38 | - } | ||
| 39 | - if resp.Code != 0 || resp.Mobile != request.Phone { | ||
| 40 | - log.Error("yunpian send sms code:", resp.Code, " error msg:", resp.Msg) | ||
| 41 | - err = common.NewErrorWithMsg(1, resp.Msg) | ||
| 42 | - } | 15 | +func (s *SmsServe) Send() error { |
| 43 | return nil | 16 | return nil |
| 44 | } | 17 | } |
| 45 | 18 | ||
| 46 | -type YunPianResponse struct { | ||
| 47 | - Code int `json:"code"` //0代表发送成功,其他code代表出错,详细见"返回值说明"页面 | ||
| 48 | - Msg string `json:"msg"` //例如""发送成功"",或者相应错误信息 | ||
| 49 | - Count int `json:"count"` //发送成功短信的计费条数(计费条数:70个字一条,超出70个字时按每67字一条计费) | ||
| 50 | - Mobile string `json:"string"` //发送手机号 | ||
| 51 | - Fee float64 `json:"fee"` //扣费金额,单位:元,类型:双精度浮点型/double | ||
| 52 | - Sid int64 `json:"sid"` //短信id,64位整型 | 19 | +func (s *SmsServe) TextContent() (string, error) { |
| 20 | + return "", nil | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +func (s *SmsServe) ValidReturn() (string, error) { | ||
| 24 | + return "", nil | ||
| 53 | } | 25 | } |
services/sms/smstpl.go
0 → 100644
| 1 | +package sms | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "errors" | ||
| 5 | +) | ||
| 6 | + | ||
| 7 | +var yunPianSmsTpl = map[string]string{ | ||
| 8 | + "10001": "【云片网】您的验证码是%s", | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +const ( | ||
| 12 | + TplNotExit string = "tpl not exit" | ||
| 13 | +) | ||
| 14 | + | ||
| 15 | +func getSmsTpl(code string) (string, error) { | ||
| 16 | + if tpl, ok := yunPianSmsTpl[code]; ok { | ||
| 17 | + return tpl, nil | ||
| 18 | + } | ||
| 19 | + return "", errors.New(TplNotExit) | ||
| 20 | +} |
services/sms/yunPainSms.go
0 → 100644
| 1 | +package sms | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "ability/protocol" | ||
| 5 | + "errors" | ||
| 6 | + "fmt" | ||
| 7 | + | ||
| 8 | + "github.com/astaxie/beego" | ||
| 9 | + "github.com/astaxie/beego/httplib" | ||
| 10 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/common" | ||
| 11 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" | ||
| 12 | +) | ||
| 13 | + | ||
| 14 | +type ISmsService interface { | ||
| 15 | + Send(request *protocol.SmsCodeRequest) (err error) | ||
| 16 | + GetSmsTpl(code string, content ...interface{}) (string, error) | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +type YunPianSmsService struct{} | ||
| 20 | + | ||
| 21 | +func assertImplement() { | ||
| 22 | + var _ ISmsService = (*YunPianSmsService)(nil) | ||
| 23 | +} | ||
| 24 | + | ||
| 25 | +//发送 | ||
| 26 | + | ||
| 27 | +func (s *YunPianSmsService) Send(request *protocol.SmsCodeRequest) (err error) { | ||
| 28 | + var ( | ||
| 29 | + resp *YunPianResponse | ||
| 30 | + ) | ||
| 31 | + log.Debug("[sms] mobile:", request.Phone, " content:", request.Content) | ||
| 32 | + if beego.BConfig.RunMode != "prod" { | ||
| 33 | + return | ||
| 34 | + } | ||
| 35 | + post := httplib.Post(beego.AppConfig.String("yunpian_sms_sdk_url")) | ||
| 36 | + post.Param("apikey", beego.AppConfig.String("yunpian_app_key")) | ||
| 37 | + post.Param("mobile", request.Phone) | ||
| 38 | + post.Param("text", request.Content) | ||
| 39 | + if err = post.ToJSON(&resp); err != nil { | ||
| 40 | + return | ||
| 41 | + } | ||
| 42 | + if resp.Code != 0 || resp.Mobile != request.Phone { | ||
| 43 | + log.Error("yunpian send sms code:", resp.Code, " error msg:", resp.Msg) | ||
| 44 | + err = common.NewErrorWithMsg(1, resp.Msg) | ||
| 45 | + } | ||
| 46 | + return nil | ||
| 47 | +} | ||
| 48 | + | ||
| 49 | +func (s *YunPianSmsService) GetSmsTpl(code string, content ...interface{}) (string, error) { | ||
| 50 | + if data, ok := yunPianSmsTpl[code]; !ok { | ||
| 51 | + return fmt.Sprintf(data, content...), nil | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + return "", errors.New("GetSmsTpl err,code=" + code) | ||
| 55 | +} | ||
| 56 | + | ||
| 57 | +type YunPianResponse struct { | ||
| 58 | + Code int `json:"code"` //0代表发送成功,其他code代表出错,详细见"返回值说明"页面 | ||
| 59 | + Msg string `json:"msg"` //例如""发送成功"",或者相应错误信息 | ||
| 60 | + Count int `json:"count"` //发送成功短信的计费条数(计费条数:70个字一条,超出70个字时按每67字一条计费) | ||
| 61 | + Mobile string `json:"string"` //发送手机号 | ||
| 62 | + Fee float64 `json:"fee"` //扣费金额,单位:元,类型:双精度浮点型/double | ||
| 63 | + Sid int64 `json:"sid"` //短信id,64位整型 | ||
| 64 | +} |
-
请 注册 或 登录 后发表评论