45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package smsservice
|
|
|
|
import (
|
|
"fmt"
|
|
statuscode "go-admin/common/status_code"
|
|
"go-admin/config"
|
|
"io"
|
|
"net/http"
|
|
"strings"
|
|
|
|
"github.com/bytedance/sonic"
|
|
"github.com/go-admin-team/go-admin-core/logger"
|
|
)
|
|
|
|
type InnopaasService struct {
|
|
}
|
|
|
|
func (i *InnopaasService) SendSMS(area, phoneNumber string, message string) int {
|
|
// Implement the logic to send SMS using Innopass API
|
|
params := map[string]string{
|
|
"account": config.ExtConfig.InnoPaas.ApiKey,
|
|
"password": config.ExtConfig.InnoPaas.Password,
|
|
"mobile": area + phoneNumber,
|
|
"msg": message,
|
|
}
|
|
payload, _ := sonic.MarshalString(params) // strings.NewReader("{\"account\":\"I7145744\",\"password\":\"password\",\"mobile\":\"0012012074149,0012012074142\",\"msg\":\"Your verification code is 8888\"}")
|
|
|
|
req, _ := http.NewRequest("POST", config.ExtConfig.InnoPaas.Url, strings.NewReader(payload))
|
|
|
|
req.Header.Add("accept", "application/json")
|
|
req.Header.Add("content-type", "application/json")
|
|
|
|
res, _ := http.DefaultClient.Do(req)
|
|
|
|
defer res.Body.Close()
|
|
body, err := io.ReadAll(res.Body)
|
|
if err != nil {
|
|
logger.Error("读取响应体失败:", err)
|
|
fmt.Printf("响应体: %s", string(body))
|
|
return statuscode.CaptchaFailInSend
|
|
//return fmt.Errorf("读取响应体失败: %v", err)
|
|
}
|
|
return statuscode.OK
|
|
}
|