diff --git a/internal/libs/aliyun/sms.go b/internal/libs/aliyun/sms.go new file mode 100644 index 0000000..88cc994 --- /dev/null +++ b/internal/libs/aliyun/sms.go @@ -0,0 +1,75 @@ +package aliyun + +import ( + "encoding/json" + "errors" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk" + "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" +) + +var Sms = sms{} + +type sms struct { + client *sdk.Client +} + +/* +发送验证短信 +*/ +const ( + regionId = "cn-hangzhou" + accessKey = "LTAI4Fe9j26vbarEGVZ7Nany" + accessKeySecret = "ysEYgqgpKtPbEJmHwdZ5psKsT15nel" +) + +func init() { + c, err := sdk.NewClientWithAccessKey(regionId, accessKey, accessKeySecret) + if err != nil { + panic(err) + } + Sms.client = c +} + +type AliResp struct { + Message string + RequestId string + BizId string + Code string +} + +// SendMessage @Title 短信发送 +func (s *sms) SendMessage(mobile, loginTemplateCode string, data map[string]string) error { + marshal, _ := json.Marshal(&data) + request := returnRequest(mobile, string(marshal), loginTemplateCode) + response, err := s.client.ProcessCommonRequest(request) + if err != nil { + return errors.New(err.Error()) + } + if response.IsSuccess() { + var p AliResp + if err := json.Unmarshal(response.GetHttpContentBytes(), &p); err != nil { + return errors.New(err.Error()) + } + if p.Message != "OK" { + return errors.New("短信发送失败: " + p.Message) + } + return nil + } else { + return errors.New("短信发送失败") + } +} + +func returnRequest(mobile string, data string, templateCode string) *requests.CommonRequest { + request := requests.NewCommonRequest() + request.Method = "POST" + request.Scheme = "https" + request.Domain = "dysmsapi.aliyuncs.com" + request.Version = "2017-05-25" + request.ApiName = "SendSms" + request.QueryParams["RegionId"] = regionId + request.QueryParams["SignName"] = "瑞库客" + request.QueryParams["TemplateCode"] = templateCode + request.QueryParams["TemplateParam"] = data + request.QueryParams["PhoneNumbers"] = mobile + return request +} diff --git a/internal/v2/logic/company/company.go b/internal/v2/logic/company/company.go index 24b1c28..a1c6ceb 100644 --- a/internal/v2/logic/company/company.go +++ b/internal/v2/logic/company/company.go @@ -5,6 +5,7 @@ import ( "fmt" "math/rand" "recook/internal/define" + "recook/internal/libs/aliyun" "recook/internal/libs/bean" "recook/internal/service/baseCode" "recook/internal/v2/logic/wxapp/message" @@ -271,7 +272,7 @@ func (o logic) Sure(args CompanySureApply) error { err = fmt.Errorf("创建用户错误103:" + err.Error()) return err } - err := message.MessageLogin.SendMessage(info.Mobile, message.SUCCESS) // 发送短信 + err := aliyun.Sms.SendMessage(info.Mobile, message.SUCCESS, map[string]string{}) // 发送短信 if err != nil { return err } @@ -318,7 +319,9 @@ func (o logic) Reject(args CompanyRejectApply) error { }).Error; err != nil { return err } - err := message.MessageLogin.SendMessage(obj.Mobile, message.FAIL) + err := aliyun.Sms.SendMessage(obj.Mobile, message.FAIL, map[string]string{ + "remark": "asdfasdfasdfasdf", + }) if err != nil { return err }