diff --git a/api/errcode/errcode.go b/api/errcode/errcode.go index f160f619..758faa13 100644 --- a/api/errcode/errcode.go +++ b/api/errcode/errcode.go @@ -40,6 +40,7 @@ var ErrCodeMsgMap = map[ErrCode]string{ ErrCodeLoginNoChangeInAPswdReset: "新旧密码相同", ErrCodeLoginRegisterUserFail: "账号注册失败,请稍后重试", ErrCodeLoginWrongOldPswd: "旧密码错误", + ErrCodeLoginVeriCodeSendFail: "验证码发送失败:%s", ErrCodeAccountSrvFail: "账户服务错误", ErrCodeAccountNotExist: "账户信息不存在", @@ -301,6 +302,7 @@ const ( ErrCodeLoginNoChangeInAPswdReset ErrCode = -5009 //新旧密码相同 ErrCodeLoginRegisterUserFail ErrCode = -5010 //注册账户失败 ErrCodeLoginWrongOldPswd ErrCode = -5011 //旧密码错误 + ErrCodeLoginVeriCodeSendFail ErrCode = -5012 //验证码发送失败 // Account: 6xxx ErrCodeAccountSrvOk ErrCode = ErrCodeOk diff --git a/app/mix/controller/vas.go b/app/mix/controller/vas.go index 642bebaa..f8c9ef6f 100644 --- a/app/mix/controller/vas.go +++ b/app/mix/controller/vas.go @@ -337,10 +337,10 @@ func WithdrawSendVerifycode(ctx *gin.Context) { ReplyErrorMsg(ctx, "当前提现功能已冻结") return } - ec := service.DefaultService.WithdrawSendVerifycode(ctx, req) + ec, err := service.DefaultService.WithdrawSendVerifycode(ctx, req) if ec != errcode.ErrCodeVasSrvOk { logger.Error("WithdrawSendVerifycode fail, req: %v, ec: %v", util.ToJson(req), ec) - ReplyErrCodeMsg(ctx, ec) + ReplyErrCodeMsgAndDetail(ctx, errcode.ErrCodeLoginVeriCodeSendFail, err) return } ReplyOk(ctx, nil) diff --git a/app/mix/controller/vericode_api.go b/app/mix/controller/vericode_api.go index c75a5a74..2edc581a 100644 --- a/app/mix/controller/vericode_api.go +++ b/app/mix/controller/vericode_api.go @@ -12,7 +12,12 @@ import ( func ApiSendVeriCode(ctx *gin.Context) { req := ctx.MustGet("client_req").(*vericodeproto.ApiSendReq) - ec := service.DefaultService.ApiSendVeriCode(ctx, req) + ec, err := service.DefaultService.ApiSendVeriCode(ctx, req) + if ec == errcode.ErrCodeLoginVeriCodeSendFail { + logger.Error("ApiSendVeriCode fail, req: %v, ec: %v", util.ToJson(req), ec) + ReplyErrCodeMsgAndDetail(ctx, ec, err) + return + } if ec != errcode.ErrCodeLoginSrvOk { logger.Error("ApiSendVeriCode fail, req: %v, ec: %v", util.ToJson(req), ec) ReplyErrCodeMsg(ctx, ec) diff --git a/app/mix/service/apiservice.go b/app/mix/service/apiservice.go index 543d2e85..21c17375 100644 --- a/app/mix/service/apiservice.go +++ b/app/mix/service/apiservice.go @@ -66,7 +66,7 @@ import ( ) // 发送验证码 -func (s *Service) ApiSendVeriCode(ctx *gin.Context, req *vericodeproto.ApiSendReq) (ec errcode.ErrCode) { +func (s *Service) ApiSendVeriCode(ctx *gin.Context, req *vericodeproto.ApiSendReq) (ec errcode.ErrCode, err error) { ec = errcode.ErrCodeLoginSrvOk ec = s.ApiSendVeriCodeBusinessValidate(ctx, req) @@ -74,14 +74,14 @@ func (s *Service) ApiSendVeriCode(ctx *gin.Context, req *vericodeproto.ApiSendRe return } - err := _DefaultVeriCode.OpSendVeriCode(ctx, &vericodeproto.OpSendReq{ + err = _DefaultVeriCode.OpSendVeriCode(ctx, &vericodeproto.OpSendReq{ MobilePhone: req.MobilePhone, RegionCode: req.RegionCode, Trigger: req.Trigger, }) if err != nil { logger.Error("OpSendVeriCode fail, err: %v", err) - ec = errcode.ErrCodeLoginSrvFail + ec = errcode.ErrCodeLoginVeriCodeSendFail return } return diff --git a/app/mix/service/logic/veriCode.go b/app/mix/service/logic/veriCode.go index 40d84a3b..e386c7e1 100644 --- a/app/mix/service/logic/veriCode.go +++ b/app/mix/service/logic/veriCode.go @@ -5,6 +5,7 @@ import ( "math/rand" vericodeproto "service/api/proto/vericode/proto" "service/app/mix/dao" + "service/bizcommon/util" "service/dbstruct" "service/library/configcenter" "service/library/idgenerator" @@ -96,11 +97,16 @@ func (p *VeriCode) OpSendVeriCode(ctx *gin.Context, req *vericodeproto.OpSendReq TemplateCode: goproto.String(p.cfg.TemplateCode), TemplateParam: goproto.String(templateParam), } - err := sms.SendSms(request) + resp, err := sms.SendSms(request) if err != nil { logger.Error("SendSms failed : %v", err) return err } + if util.DerefString(resp.Body.Code) != "OK" { + msg := util.DerefString(resp.Body.Message) + logger.Error("SendSms failed : %v", msg) + return fmt.Errorf("%v", msg) + } return nil } diff --git a/app/mix/service/vasservice.go b/app/mix/service/vasservice.go index a0c51684..d06a9d7f 100644 --- a/app/mix/service/vasservice.go +++ b/app/mix/service/vasservice.go @@ -581,7 +581,7 @@ func (s *Service) WithdrawPage(ctx *gin.Context, req *vasproto.WithdrawPageReq) } // 提现发送验证码 -func (s *Service) WithdrawSendVerifycode(ctx *gin.Context, req *vasproto.WithdrawSendVerifycodeReq) (ec errcode.ErrCode) { +func (s *Service) WithdrawSendVerifycode(ctx *gin.Context, req *vasproto.WithdrawSendVerifycodeReq) (ec errcode.ErrCode, err error) { // 获取电话号 acntMap, _ := _DefaultAccount.GetAccountMapByMids(ctx, []int64{req.Mid}) acnt, has := acntMap[req.Mid] @@ -595,7 +595,7 @@ func (s *Service) WithdrawSendVerifycode(ctx *gin.Context, req *vasproto.Withdra phoneBs, _ := mycrypto.CryptoServiceInstance().AES.Decrypt(bytes) logger.Info("WithdrawSendVerifycode, mid: %v, phone: %v", req.Mid, string(phoneBs)) - err := _DefaultVeriCode.OpSendVeriCode(ctx, &vericodeproto.OpSendReq{ + err = _DefaultVeriCode.OpSendVeriCode(ctx, &vericodeproto.OpSendReq{ BaseRequest: req.BaseRequest, MobilePhone: string(phoneBs), RegionCode: util.DerefString(acnt.RegionCode), diff --git a/library/sms/client.go b/library/sms/client.go index d48a8490..16f2df7a 100644 --- a/library/sms/client.go +++ b/library/sms/client.go @@ -31,8 +31,8 @@ func Init(cfg *configcenter.DysmsapiConfig) (err error) { return } -func SendSms(request *dysmsapi.SendSmsRequest) (err error) { - _result, err := defaultDysmsapiClient.SendSms(request) +func SendSms(request *dysmsapi.SendSmsRequest) (_result *dysmsapi.SendSmsResponse, err error) { + _result, err = defaultDysmsapiClient.SendSms(request) logger.Info("SendSms result:%v", _result) if err != nil { logger.Error("SendSms failed : %v", err)