第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Go使用網(wǎng)易云信發(fā)送短信驗(yàn)證碼

標(biāo)簽:
Go

网易云信

DEMO

1. 发送短信

// 发送验证码
const (
	SendSmBaseUrl  = "https://api.netease.im/sms/sendcode.action"
	AppSecret      = "AppSecret"
	APPKey         = "APPKey"
	SMTemplateCode = 19505317
	CodeLen        = 4
)

// VerifySmBaseUrl 校验验证码
const (
	VerifySmBaseUrl = "https://api.netease.im/sms/verifycode.action"
)

//
// BuildCheckSum
// @Description: 构建 BuildCheckSum
//
func BuildCheckSum(curTime, nonce string) (checkSum string, err error) {
	resStr := AppSecret + nonce + curTime
	t := sha1.New()
	_, err = io.WriteString(t, resStr)
	if err != nil {
		return "", err
	}
	return fmt.Sprintf("%x", t.Sum(nil)), nil
}

//
// SendSM
// @Description: 发送短信
// @param mobile:
// @return resObj: resObj
//
func SendSM(mobile int) (resObj string, err error) {
	rand.Seed(time.Now().UnixNano())
	nonce := strconv.FormatInt(int64(rand.Intn(5)), 10)
	curTime := strconv.FormatInt(time.Now().Unix(), 10)
	checkSum, err := BuildCheckSum(curTime, nonce)
	if err != nil {
		return "", err
	}
	client := http.Client{}
	body := strings.NewReader(fmt.Sprintf(`mobile=%d`, mobile))
	request, err := http.NewRequest("POST", SendSmBaseUrl, body)
	// 增加 head 选项
	request.Header.Add("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
	request.Header.Add("AppKey", APPKey)
	request.Header.Add("CurTime", curTime)
	request.Header.Add("Nonce", nonce)
	request.Header.Add("CheckSum", checkSum)
	response, err := client.Do(request)
	if err != nil {
		return "", err
	}
	defer response.Body.Close()
	resMsg, err := ioutil.ReadAll(response.Body)
	if err != nil {
		return "", err
	}
	fmt.Println(string(resMsg))
	return string(resMsg), err
}


2. 验证短信

//
// VeritySMCode
// @Description: 校验验证码
// @param msg:
// @param obj:
// @return err:
//
func VeritySMCode(mobile, code int) (resObj string, err error) {
	rand.Seed(time.Now().UnixNano())
	nonce := strconv.FormatInt(int64(rand.Intn(5)), 10)
	curTime := strconv.FormatInt(time.Now().Unix(), 10)
	checkSum, err := BuildCheckSum(curTime, nonce)
	if err != nil {
		return "", err
	}
	client := http.Client{}
	body := strings.NewReader(fmt.Sprintf(`mobile=%d&code=%d`, mobile, code))
	request, err := http.NewRequest("POST", VerifySmBaseUrl, body)
	// 增加 head 选项
	request.Header.Add("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
	request.Header.Add("AppKey", APPKey)
	request.Header.Add("CurTime", curTime)
	request.Header.Add("Nonce", nonce)
	request.Header.Add("CheckSum", checkSum)
	response, err := client.Do(request)
	if err != nil {
		return "", err
	}
	defer response.Body.Close()
	resMsg, err := ioutil.ReadAll(response.Body)
	if err != nil {
		return "", err
	}
	fmt.Println(string(resMsg))
	return string(resMsg), err
}

func main() {
	SendSM(17660626526)
	//VeritySMCode(17660626526, 2458)
}


3. 完整示例

/**
 * @date: 2022/2/17
 * @desc: ...
 */

package main

import (
	"crypto/sha1"
	"fmt"
	"io"
	"io/ioutil"
	"math/rand"
	"net/http"
	"strconv"
	"strings"
	"time"
)

// 发送验证码
const (
	SendSmBaseUrl  = "https://api.netease.im/sms/sendcode.action"
	AppSecret      = "AppSecret"
	APPKey         = "APPKey"
	SMTemplateCode = 19505317
	CodeLen        = 4
)

// VerifySmBaseUrl 校验验证码
const (
	VerifySmBaseUrl = "https://api.netease.im/sms/verifycode.action"
)

//
// BuildCheckSum
// @Description: 构建 BuildCheckSum
//
func BuildCheckSum(curTime, nonce string) (checkSum string, err error) {
	resStr := AppSecret + nonce + curTime
	t := sha1.New()
	_, err = io.WriteString(t, resStr)
	if err != nil {
		return "", err
	}
	return fmt.Sprintf("%x", t.Sum(nil)), nil
}

//
// SendSM
// @Description: 发送短信
// @param mobile:
// @return resObj: resObj
//
func SendSM(mobile int) (resObj string, err error) {
	rand.Seed(time.Now().UnixNano())
	nonce := strconv.FormatInt(int64(rand.Intn(5)), 10)
	curTime := strconv.FormatInt(time.Now().Unix(), 10)
	checkSum, err := BuildCheckSum(curTime, nonce)
	if err != nil {
		return "", err
	}
	client := http.Client{}
	body := strings.NewReader(fmt.Sprintf(`mobile=%d`, mobile))
	request, err := http.NewRequest("POST", SendSmBaseUrl, body)
	// 增加 head 选项
	request.Header.Add("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
	request.Header.Add("AppKey", APPKey)
	request.Header.Add("CurTime", curTime)
	request.Header.Add("Nonce", nonce)
	request.Header.Add("CheckSum", checkSum)
	response, err := client.Do(request)
	if err != nil {
		return "", err
	}
	defer response.Body.Close()
	resMsg, err := ioutil.ReadAll(response.Body)
	if err != nil {
		return "", err
	}
	fmt.Println(string(resMsg))
	return string(resMsg), err
}

//
// VeritySMCode
// @Description: 校验验证码
// @param msg:
// @param obj:
// @return err:
//
func VeritySMCode(mobile, code int) (resObj string, err error) {
	rand.Seed(time.Now().UnixNano())
	nonce := strconv.FormatInt(int64(rand.Intn(5)), 10)
	curTime := strconv.FormatInt(time.Now().Unix(), 10)
	checkSum, err := BuildCheckSum(curTime, nonce)
	if err != nil {
		return "", err
	}
	client := http.Client{}
	body := strings.NewReader(fmt.Sprintf(`mobile=%d&code=%d`, mobile, code))
	request, err := http.NewRequest("POST", VerifySmBaseUrl, body)
	// 增加 head 选项
	request.Header.Add("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
	request.Header.Add("AppKey", APPKey)
	request.Header.Add("CurTime", curTime)
	request.Header.Add("Nonce", nonce)
	request.Header.Add("CheckSum", checkSum)
	response, err := client.Do(request)
	if err != nil {
		return "", err
	}
	defer response.Body.Close()
	resMsg, err := ioutil.ReadAll(response.Body)
	if err != nil {
		return "", err
	}
	fmt.Println(string(resMsg))
	return string(resMsg), err
}

func main() {
	SendSM(17660626526)
	//VeritySMCode(17660626526, 2458)
}

作者微信:foolish_is_me
作者邮箱:big_ox@163.com

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消