代码拉取完成,页面将自动刷新
package sms
import (
"encoding/json"
"errors"
)
type smsResponse struct {
Status string `json:"status"`
Msg string `json:"msg"`
SendId string `json:"send_id"`
Fee int `json:"fee"`
SmsCredits string `json:"sms_credits"`
TransactionalSmsCredits string `json:"transactional_sms_credits"`
}
func XSend(to, tempId string, data map[string]string, appId, appKey string) error {
config := map[string]string{
"appid": appId,
"appkey": appKey,
"signType": "md5",
}
s := CreateXsend(config)
ret := s.SetTo(to).SetProject(tempId).AddVars(data).Xsend()
retData := smsResponse{}
err := json.Unmarshal([]byte(ret), &retData)
if err != nil {
return err
}
if retData.Status == "error" {
return errors.New(retData.Msg)
}
return nil
}
func MultiXSend(to []string, tempId string, data map[string]string, appId, appKey string) ([]smsResponse, []string, error) {
config := map[string]string{
"appid": appId,
"appkey": appKey,
"signType": "md5",
}
s := CreateMultiXsend(config)
for _, phone := range to {
msg := CreateMulti()
msg.SetTo(phone).AddVars(data)
s.AddMulti(msg.Get())
}
ret := s.SetProject(tempId).MultiXsend()
var retData []smsResponse
failData := make([]string, len(retData))
err := json.Unmarshal([]byte(ret), &retData)
if err != nil {
return nil, failData, err
}
for _, value := range retData {
if value.Status == "error" {
failData = append(failData, value.SendId)
}
}
return retData, failData, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。