50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"gitea.party/public-messag-service/common/params"
|
|
"gitea.party/public-messag-service/common/public"
|
|
"gitea.party/public-messag-service/router/web"
|
|
"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func SmsXSend(c *gin.Context) {
|
|
result := web.NewResponse()
|
|
defer web.SendResponse(c, result)()
|
|
|
|
pm := params.SmsSend{}
|
|
err := c.ShouldBindJSON(&pm)
|
|
if err != nil {
|
|
result.SetErrCode(public.RespCodeErrorParam).AddError(err)
|
|
return
|
|
}
|
|
client, err := dysmsapi.NewClientWithAccessKey(pm.RegionId, pm.AccessKeyId, pm.AccessKeySecret)
|
|
if err != nil {
|
|
fmt.Printf("初始化客户端失败: %v\n", err)
|
|
return
|
|
}
|
|
// 2. 设置请求参数
|
|
request := dysmsapi.CreateSendMessageToGlobeRequest()
|
|
request.To = "目标手机号码" // 国际号码格式,例如:+85212345678
|
|
request.Message = "1234" // 短信内容
|
|
//request.From = "你的短信签名" // 短信签名
|
|
|
|
// 3. 发送短信
|
|
res, err := client.SendMessageToGlobe(request)
|
|
if err != nil {
|
|
fmt.Printf("发送短信失败: %v\n", err)
|
|
return
|
|
}
|
|
|
|
// 4. 处理响应
|
|
if res.IsSuccess() {
|
|
fmt.Println("短信发送成功:", res.MessageId)
|
|
} else {
|
|
result.SetErrMsg(public.RespCodeErrorUnknown, fmt.Sprintf("短信发送失败: %s", res.ResponseDescription)).AddError(err)
|
|
return
|
|
}
|
|
|
|
result.SetData(nil)
|
|
}
|