micro-account/pkg/common/verifica/nation_mobile.go

75 lines
1.5 KiB
Go
Raw Normal View History

2025-02-21 08:57:10 +00:00
package verifica
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"strings"
"time"
)
type nationAccount struct {
ak string
sk string
}
type NationMsg struct {
Apikey string `json:"apikey"`
Secret string `json:"secret"`
Content string `json:"content"`
Mobile string `json:"mobile"`
TemplateId int `json:"template_id"`
SendTime int64 `json:"send_time"`
}
const (
sendNationMsgUrl = "https://api.4321.sh/inter/send"
nationMsgTemplateId = 107570 //[$$]您此次验证码为$$60秒内有效请您尽快验证
accessKey = "I1185562576"
secretKey = "1185566b86c739e71"
)
var nationAccountObj *nationAccount
func loadEnv(ak, sk string) {
nationAccountObj = &nationAccount{
ak: ak,
sk: sk,
}
}
func SendNationMsg(telNum, content string, templateId int) error {
if templateId == 0 {
templateId = nationMsgTemplateId
}
fmt.Print("content:", content)
loadEnv(accessKey, secretKey)
//设置飞鸽发送短信需要的参数
msg := NationMsg{
Apikey: nationAccountObj.ak,
Secret: nationAccountObj.sk,
Content: content,
Mobile: telNum,
TemplateId: templateId,
SendTime: time.Now().Unix(),
}
//转json
dataJsonBytes, _ := json.Marshal(msg)
data := strings.NewReader(string(dataJsonBytes))
fmt.Println(string(dataJsonBytes))
resp, err := http.Post(sendNationMsgUrl, "application/json", data)
if err != nil {
return err
}
bodyText, err := ioutil.ReadAll(resp.Body)
if err != nil {
return err
}
fmt.Printf("%s\n", bodyText)
return nil
}