ZBLOG

腾讯云短信 GO SDK 如何限制发送短信次数 请给出 golang 示例代码

您好,对于腾讯云短信 GO SDK 的限制发送短信次数问题,可以通过设置验证码过期时间和发送间隔来实现。

以下是示例代码:

package main

import (
    "fmt"
    "time"

    "github.com/qcloudsms/qcloudsms_go"
)

func main() {
    appID := 123456789 // 自己的 AppID
    appKey := "your_app_key" // 自己的 App Key
    templateID := 100000 // 短信模板 ID
    smsSign := "" // 短信签名内容

    interval := 60 // 发送间隔(单位:秒)
    expireTime := 300 // 验证码过期时间(单位:秒)

    phoneNumber1 := "12345678901" // 手机号1
    phoneNumber2 := "12345678902" // 手机号2

    var lastSentTime1 time.Time = time.Now().Add(time.Duration(-interval) * time.Second)
    var lastSentTime2 time.Time = time.Now().Add(time.Duration(-interval) * time.Second)
    
    for {
        if time.Since(lastSentTime1).Seconds() >= float64(interval) {
            result, err := sendSMS(appID, appKey, []string{phoneNumber1}, templateID, smsSign)
            if err != nil {
                fmt.Println(err.Error())
            } else {
                fmt.Println(result)
                lastSentTime1 = time.Now()
            }
        }

        if time.Since(lastSentTime2).Seconds() >= float64(interval) {
            result, err := sendSMS(appID, appKey, []string{phoneNumber2}, templateID, smsSign)
            if err != nil {
                fmt.Println(err.Error())
            } else {
                fmt.Println(result)
                lastSentTime2 = time.Now()
            }
        }

        time.Sleep(time.Second)
    }
}

// 发送短信
func sendSMS(appID int, appKey string, phoneNumbers []string, templateID int, smsSign string) (result *qcloudsms.SendSMSResult, err error) {
    // 短信发送器
    sender := qcloudsms.NewSender(appID, appKey)

    // 指定短信模板参数
    params := []string{"123456"}

    // 创建短信请求对象
    req := qcloudsms.NewMultiSenderRequest(templateID, phoneNumbers, params)

    // 设置签名内容(若使用默认签名,可以省略此步骤)
    req.SetSign(smsSign)

    // 发送短信
    result, err = sender.MultiSend(req)
    return result, err
}

以上示例代码通过 for 循环不断地发送短信,并在每次发送前判断上一次发送时间是否超过设定的间隔时间。如果未超过,则等待一段时间后再次尝试发送。

同时,对于验证码的有效期限制,可以在生成和验证验证码时记录当前时间,并在验证时判断当前时间与生成时间之差是否超过设定的过期时间。如果超过,则提示验证码已失效。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=3132

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?