111 lines
2.0 KiB
Go
111 lines
2.0 KiB
Go
package sms
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/hex"
|
|
"errors"
|
|
"fmt"
|
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
|
|
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
VERSION = "2024-05-30"
|
|
)
|
|
|
|
var HOST = requests.Host{
|
|
Default: "sms.gaore.com:8804",
|
|
}
|
|
|
|
type Client struct {
|
|
sdk.Client
|
|
}
|
|
|
|
func NewClient() (client *Client, err error) {
|
|
client = new(Client)
|
|
err = client.Init()
|
|
return
|
|
}
|
|
|
|
func (c *Client) SendEmail(req *SendEmailRequest) (resp *SendEmailResponse, err error) {
|
|
if len(req.Addresses) == 0 {
|
|
return nil, errors.New("addresses is empty")
|
|
}
|
|
if req.FromName == "" {
|
|
return nil, errors.New("from is empty")
|
|
}
|
|
if req.Subject == "" {
|
|
return nil, errors.New("subject is empty")
|
|
}
|
|
if req.Body == "" {
|
|
return nil, errors.New("content is empty")
|
|
}
|
|
|
|
ts, token := getToken("04573fc4c8e01999a0909ab9c00bca5a")
|
|
|
|
req.JsonParams["sign"] = token
|
|
req.JsonParams["time"] = ts
|
|
resp = CreateSendEmailResponse()
|
|
err = c.DoAction(req, resp)
|
|
return
|
|
}
|
|
|
|
func (c *Client) SendFeiShuWebHook(req *SendFeiShuWebHookRequest) (resp *SendFeiShuWebHookResponse, err error) {
|
|
if req.Content == "" {
|
|
err = errors.New("content is empty")
|
|
return
|
|
}
|
|
|
|
if req.Do == "" {
|
|
err = errors.New("webhook is empty")
|
|
return
|
|
}
|
|
|
|
if req.Token == "" {
|
|
err = errors.New("token is empty")
|
|
return
|
|
}
|
|
|
|
resp = CreateSendFeiShuWebHookResponse()
|
|
err = c.DoAction(req, resp)
|
|
return
|
|
}
|
|
|
|
func (c *Client) SendSms(req *SendSmsRequest) (resp *SendSmsResponse, err error) {
|
|
|
|
if req.Mobile == "" {
|
|
err = errors.New("mobile is empty")
|
|
return
|
|
}
|
|
|
|
if req.Type == "" {
|
|
err = errors.New("type is empty")
|
|
return
|
|
}
|
|
|
|
if req.Expired == 0 {
|
|
err = errors.New("expired is empty")
|
|
return
|
|
}
|
|
|
|
if req.Code == 0 {
|
|
err = errors.New("code is empty")
|
|
return
|
|
}
|
|
|
|
resp = CreateSendSmsResponse()
|
|
err = c.DoAction(req, resp)
|
|
return
|
|
}
|
|
|
|
func getToken(key string) (ts int64, token string) {
|
|
ts = time.Now().Unix()
|
|
hash := md5.New()
|
|
hash.Write([]byte(fmt.Sprintf("%v%v", ts, key)))
|
|
hashBytes := hash.Sum(nil)
|
|
|
|
token = hex.EncodeToString(hashBytes)
|
|
return
|
|
}
|